Handle multiple merges in gitgraph.js (#11996)
* Handle multiple merges in gitgraph.js There is a bug in web_src/js/vendor/gitgraph.js whereby it fails to handle multiple merges in a single commit correctly. This PR adds changes to make this work. Fix #11981 Signed-off-by: Andrew Thornton <art27@cantab.net> * Update web_src/js/vendor/gitgraph.js
This commit is contained in:
parent
d31a9c544f
commit
a07cc0df76
|
@ -2,39 +2,37 @@
|
||||||
<div class="repository commits">
|
<div class="repository commits">
|
||||||
{{template "repo/header" .}}
|
{{template "repo/header" .}}
|
||||||
<div class="ui container">
|
<div class="ui container">
|
||||||
<div id="git-graph-container" class="ui segment">
|
<div id="git-graph-container" class="ui segment">
|
||||||
<h1>{{.i18n.Tr "repo.commit_graph"}}</h1>
|
<h1>{{.i18n.Tr "repo.commit_graph"}}</h1>
|
||||||
<div id="rel-container">
|
<div id="rel-container">
|
||||||
<canvas id="graph-canvas">
|
<canvas id="graph-canvas">
|
||||||
<ul id="graph-raw-list">
|
<ul id="graph-raw-list">
|
||||||
{{ range .Graph }}
|
{{ range .Graph }}
|
||||||
<li><span class="node-relation">{{ .GraphAcii -}}</span></li>
|
<li><span class="node-relation">{{ .GraphAcii -}}</span></li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
</canvas>
|
</canvas>
|
||||||
</div>
|
</div>
|
||||||
<div id="rev-container">
|
<div id="rev-container">
|
||||||
<ul id="rev-list">
|
<ul id="rev-list">
|
||||||
{{ range .Graph }}
|
{{ range .Graph }}
|
||||||
<li>
|
<li>
|
||||||
{{ if .OnlyRelation }}
|
{{ if .OnlyRelation }}
|
||||||
<span />
|
<span />
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<code id="{{.ShortRev}}">
|
<code id="{{.ShortRev}}">
|
||||||
<a href="{{AppSubUrl}}/{{$.Username}}/{{$.Reponame}}/commit/{{.Rev}}">{{ .ShortRev}}</a>
|
<a href="{{AppSubUrl}}/{{$.Username}}/{{$.Reponame}}/commit/{{.Rev}}">{{ .ShortRev}}</a>
|
||||||
</code>
|
</code>
|
||||||
<strong> {{.Branch}}</strong>
|
<strong> {{.Branch}}</strong>
|
||||||
<span>{{RenderCommitMessage .Subject $.RepoLink $.Repository.ComposeMetas}}</span> by
|
<span>{{RenderCommitMessage .Subject $.RepoLink $.Repository.ComposeMetas}}</span> by
|
||||||
<span class="author">
|
<span class="author">{{.Author}}</span>
|
||||||
{{.Author}}
|
<span class="time">{{.Date}}</span>
|
||||||
</span>
|
{{ end }}
|
||||||
<span class="time">{{.Date}}</span>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</li>
|
</ul>
|
||||||
{{ end }}
|
</div>
|
||||||
</ul>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{template "base/paginate" .}}
|
{{template "base/paginate" .}}
|
||||||
|
|
15
web_src/js/vendor/gitgraph.js
vendored
15
web_src/js/vendor/gitgraph.js
vendored
|
@ -65,7 +65,7 @@ export default function gitGraph(canvas, rawGraphList, config) {
|
||||||
|
|
||||||
for (i = 0; i < l; i++) {
|
for (i = 0; i < l; i++) {
|
||||||
midStr = rawGraphList[i].replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, '');
|
midStr = rawGraphList[i].replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, '');
|
||||||
|
midStr = midStr.replace(/(--)|(-\.)/g,'-')
|
||||||
maxWidth = Math.max(midStr.replace(/(_|\s)/g, '').length, maxWidth);
|
maxWidth = Math.max(midStr.replace(/(_|\s)/g, '').length, maxWidth);
|
||||||
|
|
||||||
row = midStr.split('');
|
row = midStr.split('');
|
||||||
|
@ -343,11 +343,6 @@ export default function gitGraph(canvas, rawGraphList, config) {
|
||||||
return (val !== ' ' && val !== '_');
|
return (val !== ' ' && val !== '_');
|
||||||
}).length;
|
}).length;
|
||||||
|
|
||||||
// do some clean up
|
|
||||||
if (flows.length > condenseCurrentLength) {
|
|
||||||
flows.splice(condenseCurrentLength, flows.length - condenseCurrentLength);
|
|
||||||
}
|
|
||||||
|
|
||||||
colomnIndex = 0;
|
colomnIndex = 0;
|
||||||
|
|
||||||
// a little inline analysis and draw process
|
// a little inline analysis and draw process
|
||||||
|
@ -362,7 +357,7 @@ export default function gitGraph(canvas, rawGraphList, config) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// inline interset
|
// inline intersect
|
||||||
if ((colomn === '_' || colomn === '/')
|
if ((colomn === '_' || colomn === '/')
|
||||||
&& currentRow[colomnIndex - 1] === '|'
|
&& currentRow[colomnIndex - 1] === '|'
|
||||||
&& currentRow[colomnIndex - 2] === '_') {
|
&& currentRow[colomnIndex - 2] === '_') {
|
||||||
|
@ -380,6 +375,7 @@ export default function gitGraph(canvas, rawGraphList, config) {
|
||||||
color = flows[colomnIndex].color;
|
color = flows[colomnIndex].color;
|
||||||
|
|
||||||
switch (colomn) {
|
switch (colomn) {
|
||||||
|
case '-':
|
||||||
case '_':
|
case '_':
|
||||||
drawLineRight(x, y, color);
|
drawLineRight(x, y, color);
|
||||||
|
|
||||||
|
@ -416,6 +412,11 @@ export default function gitGraph(canvas, rawGraphList, config) {
|
||||||
|
|
||||||
y -= config.unitSize;
|
y -= config.unitSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// do some clean up
|
||||||
|
if (flows.length > condenseCurrentLength) {
|
||||||
|
flows.splice(condenseCurrentLength, flows.length - condenseCurrentLength);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
init();
|
init();
|
||||||
|
|
Loading…
Reference in a new issue