# HG changeset patch # User Sean Farley # Date 1404884154 18000 # Node ID 64659280e466ff451334e50fc040116d7ad1c3ca # Parent b75f1d0753d60db4924191e63811840f368e5ecd graph: show obsolete changesets with an 'X' diff -r b75f1d0753d6 -r 64659280e466 kallithea/lib/graphmod.py --- a/kallithea/lib/graphmod.py Sat May 16 17:03:51 2015 +0200 +++ b/kallithea/lib/graphmod.py Wed Jul 09 00:35:54 2014 -0500 @@ -150,5 +150,6 @@ # Yield and move on closing = int(repo[rev].closesbranch) - yield ((col, color), edges, closing) + obsolete = int(repo[rev].obsolete) + yield ((col, color), edges, closing, obsolete) row = nextrow diff -r b75f1d0753d6 -r 64659280e466 kallithea/lib/vcs/backends/base.py --- a/kallithea/lib/vcs/backends/base.py Sat May 16 17:03:51 2015 +0200 +++ b/kallithea/lib/vcs/backends/base.py Wed Jul 09 00:35:54 2014 -0500 @@ -667,6 +667,10 @@ def closesbranch(self): return False + @LazyProperty + def obsolete(self): + return False + class BaseWorkdir(object): """ Working directory representation of single repository. diff -r b75f1d0753d6 -r 64659280e466 kallithea/lib/vcs/backends/hg/changeset.py --- a/kallithea/lib/vcs/backends/hg/changeset.py Sat May 16 17:03:51 2015 +0200 +++ b/kallithea/lib/vcs/backends/hg/changeset.py Wed Jul 09 00:35:54 2014 -0500 @@ -43,6 +43,10 @@ return self._ctx.closesbranch() @LazyProperty + def obsolete(self): + return self._ctx.obsolete() + + @LazyProperty def bookmarks(self): return map(safe_unicode, self._ctx.bookmarks()) diff -r b75f1d0753d6 -r 64659280e466 kallithea/public/js/graph.js --- a/kallithea/public/js/graph.js Sat May 16 17:03:51 2015 +0200 +++ b/kallithea/public/js/graph.js Wed Jul 09 00:35:54 2014 -0500 @@ -105,6 +105,7 @@ node = cur[0]; in_l = cur[1]; closing = cur[2]; + obsolete_node = cur[3]; var rowY = row.offsetTop + row.offsetHeight/2; var nextY = (next == null) ? rowY + row.offsetHeight/2 : next.offsetTop + next.offsetHeight/2; @@ -178,6 +179,19 @@ x = Math.floor(base_x - box_size * column); this.setColor(color, 0.25, 0.75); + + + r = this.dot_radius + if (obsolete_node) + { + this.ctx.beginPath(); + this.ctx.moveTo(x - this.close_x, rowY - this.close_y - 3); + this.ctx.lineTo(x - this.close_x + 2*this.close_x, rowY - this.close_y + 4*this.close_y - 1); + this.ctx.moveTo(x - this.close_x, rowY - this.close_y + 4*this.close_y - 1); + this.ctx.lineTo(x - this.close_x + 2*this.close_x, rowY - this.close_y - 3); + this.ctx.stroke(); + r -= 0.5 + } if (closing) { this.ctx.fillRect(x - this.close_x, rowY - this.close_y, 2*this.close_x, 2*this.close_y); @@ -185,7 +199,7 @@ else { this.ctx.beginPath(); - this.ctx.arc(x, rowY, this.dot_radius, 0, Math.PI * 2, true); + this.ctx.arc(x, rowY, r, 0, Math.PI * 2, true); this.ctx.fill(); }