From a07cc0df76056ce2be1d8a89f38416cf511dd03b Mon Sep 17 00:00:00 2001 From: zeripath Date: Sat, 20 Jun 2020 20:29:44 +0100 Subject: 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 * Update web_src/js/vendor/gitgraph.js --- web_src/js/vendor/gitgraph.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'web_src/js') diff --git a/web_src/js/vendor/gitgraph.js b/web_src/js/vendor/gitgraph.js index 12d7a2eddf..0a780c1eb5 100644 --- a/web_src/js/vendor/gitgraph.js +++ b/web_src/js/vendor/gitgraph.js @@ -65,7 +65,7 @@ export default function gitGraph(canvas, rawGraphList, config) { for (i = 0; i < l; i++) { midStr = rawGraphList[i].replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, ''); - + midStr = midStr.replace(/(--)|(-\.)/g,'-') maxWidth = Math.max(midStr.replace(/(_|\s)/g, '').length, maxWidth); row = midStr.split(''); @@ -343,11 +343,6 @@ export default function gitGraph(canvas, rawGraphList, config) { return (val !== ' ' && val !== '_'); }).length; - // do some clean up - if (flows.length > condenseCurrentLength) { - flows.splice(condenseCurrentLength, flows.length - condenseCurrentLength); - } - colomnIndex = 0; // a little inline analysis and draw process @@ -362,7 +357,7 @@ export default function gitGraph(canvas, rawGraphList, config) { continue; } - // inline interset + // inline intersect if ((colomn === '_' || colomn === '/') && currentRow[colomnIndex - 1] === '|' && currentRow[colomnIndex - 2] === '_') { @@ -380,6 +375,7 @@ export default function gitGraph(canvas, rawGraphList, config) { color = flows[colomnIndex].color; switch (colomn) { + case '-': case '_': drawLineRight(x, y, color); @@ -416,6 +412,11 @@ export default function gitGraph(canvas, rawGraphList, config) { y -= config.unitSize; } + + // do some clean up + if (flows.length > condenseCurrentLength) { + flows.splice(condenseCurrentLength, flows.length - condenseCurrentLength); + } }; init(); -- cgit v1.2.3