* gitview: Display the lines joining commit nodes clearly.
@ 2006-02-23 19:29 Aneesh Kumar K.V
0 siblings, 0 replies; only message in thread
From: Aneesh Kumar K.V @ 2006-02-23 19:29 UTC (permalink / raw)
To: git, Junio C Hamano, Aneesh Kumar K.V
[-- Attachment #1: Type: text/plain, Size: 0 bytes --]
[-- Attachment #2: 0001-gitview-Display-the-lines-joining-commit-nodes-clearly.txt --]
[-- Type: text/plain, Size: 3255 bytes --]
Since i wanted to limit the graph box size i was resetting
the window after an index of 5. This result in line joining
commit nodes to pass over nodes which are not related. The
changes fixes the same
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@gmail.com>
---
contrib/gitview/gitview | 48 ++++++++++++++++++++++++++++++++++-------------
1 files changed, 35 insertions(+), 13 deletions(-)
3fcd411c65b2c6f84052d69ca05766e45a34682e
diff --git a/contrib/gitview/gitview b/contrib/gitview/gitview
index 4b52eb7..b04df74 100755
--- a/contrib/gitview/gitview
+++ b/contrib/gitview/gitview
@@ -823,6 +823,7 @@ class GitView:
self.colours = {}
self.nodepos = {}
self.incomplete_line = {}
+ self.commits = []
index = 0
last_colour = 0
@@ -840,12 +841,7 @@ class GitView:
commit = Commit(commit_lines)
if (commit != None ):
- (out_line, last_colour, last_nodepos) = self.draw_graph(commit,
- index, out_line,
- last_colour,
- last_nodepos)
- self.index[commit.commit_sha1] = index
- index += 1
+ self.commits.append(commit)
# Skip the '\0
commit_lines = []
@@ -854,6 +850,14 @@ class GitView:
fp.close()
+ for commit in self.commits:
+ (out_line, last_colour, last_nodepos) = self.draw_graph(commit,
+ index, out_line,
+ last_colour,
+ last_nodepos)
+ self.index[commit.commit_sha1] = index
+ index += 1
+
self.treeview.set_model(self.model)
self.treeview.show()
@@ -869,13 +873,6 @@ class GitView:
last_nodepos = 0
# Add the incomplete lines of the last cell in this
- for sha1 in self.incomplete_line.keys():
- if ( sha1 != commit.commit_sha1):
- for pos in self.incomplete_line[sha1]:
- in_line.append((pos, pos, self.colours[sha1]))
- else:
- del self.incomplete_line[sha1]
-
try:
colour = self.colours[commit.commit_sha1]
except KeyError:
@@ -897,6 +894,14 @@ class GitView:
self.colours[commit.parent_sha1[0]] = colour
self.nodepos[commit.parent_sha1[0]] = node_pos
+ for sha1 in self.incomplete_line.keys():
+ if ( sha1 != commit.commit_sha1):
+ self.draw_incomplete_line(sha1, node_pos,
+ out_line, in_line, index)
+ else:
+ del self.incomplete_line[sha1]
+
+
in_line.append((node_pos, self.nodepos[commit.parent_sha1[0]],
self.colours[commit.parent_sha1[0]]))
@@ -936,6 +941,23 @@ class GitView:
except KeyError:
self.incomplete_line[sha1] = [self.nodepos[sha1]]
+ def draw_incomplete_line(self, sha1, node_pos, out_line, in_line, index):
+ for idx, pos in enumerate(self.incomplete_line[sha1]):
+ if(pos == node_pos):
+ out_line.append((pos,
+ pos+0.5, self.colours[sha1]))
+ self.incomplete_line[sha1][idx] = pos = pos+0.5
+ try:
+ next_commit = self.commits[index+1]
+ if (next_commit.commit_sha1 == sha1 and pos != int(pos)):
+ # join the line back to the node point
+ # This need to be done only if we modified it
+ in_line.append((pos, pos-0.5, self.colours[sha1]))
+ continue;
+ except IndexError:
+ pass
+ in_line.append((pos, pos, self.colours[sha1]))
+
def _go_clicked_cb(self, widget, revid):
"""Callback for when the go button for a parent is clicked."""
--
1.2.3.g2cf3-dirty
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2006-02-23 19:30 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-02-23 19:29 gitview: Display the lines joining commit nodes clearly Aneesh Kumar K.V
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).