diff --git a/kallithea/lib/graphmod.py b/kallithea/lib/graphmod.py --- a/kallithea/lib/graphmod.py +++ b/kallithea/lib/graphmod.py @@ -103,6 +103,7 @@ def _colored(repo, dag): row = [] colors = {} + obs = {} newcolor = 1 for (rev, dagparents) in dag: @@ -111,6 +112,7 @@ def _colored(repo, dag): if rev not in row: row.append(rev) # new head colors[rev] = newcolor + obs[rev] = int(repo[rev].obsolete) newcolor += 1 col = row.index(rev) @@ -126,12 +128,14 @@ def _colored(repo, dag): nextrow.append(r) else: colors.pop(r) + obs.pop(r) # Set colors for the parents color = colors.pop(rev) if addparents: b = branch(rev) for p in reversed(addparents): + obs[p] = int(repo[p].obsolete) if b and branch(abs(p)) == b: colors[p] = color b = None @@ -143,10 +147,10 @@ def _colored(repo, dag): edges = [] for ecol, ep in enumerate(row): if ep in nextrow: - edges.append((ecol, nextrow.index(ep), colors[ep])) + edges.append((ecol, nextrow.index(ep), colors[ep], obs[ep])) elif ep == rev: for p in dagparents: - edges.append((ecol, nextrow.index(p), colors[p])) + edges.append((ecol, nextrow.index(p), colors[p], obs[p])) # Yield and move on closing = int(repo[rev].closesbranch) diff --git a/kallithea/public/js/graph.js b/kallithea/public/js/graph.js --- a/kallithea/public/js/graph.js +++ b/kallithea/public/js/graph.js @@ -115,6 +115,7 @@ function BranchRenderer(canvas_id, conte start = line[0]; end = line[1]; color = line[2]; + obsolete_line = line[3]; x = Math.floor(base_x - box_size * start); @@ -159,6 +160,11 @@ function BranchRenderer(canvas_id, conte this.ctx.lineWidth=this.line_width; this.ctx.beginPath(); + if (obsolete_line) + { + this.ctx.setLineDash([5]); + } + this.ctx.beginPath(); this.ctx.moveTo(x, rowY); if (start == end) { @@ -168,9 +174,14 @@ function BranchRenderer(canvas_id, conte { var x2 = Math.floor(base_x - box_size * end); var ymid = (rowY+nextY) / 2; + if (obsolete_node) + { + this.ctx.setLineDash([5]); + } this.ctx.bezierCurveTo (x,ymid,x2,ymid,x2,nextY); } this.ctx.stroke(); + this.ctx.setLineDash([]); // reset the dashed line, if any } column = node[0];