summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2006-03-30 07:43:51 (GMT)
committerPaul Mackerras <paulus@samba.org>2006-03-30 07:43:51 (GMT)
commit16c1ff968ac9717c958129eb05aa089cc0ca51e7 (patch)
tree02972f4a79c2c8c632b85f1a9370ce4c21ec7bcd
parent7a1d9d14c8475715c6b923f378eb72be096c7963 (diff)
downloadgit-16c1ff968ac9717c958129eb05aa089cc0ca51e7.zip
git-16c1ff968ac9717c958129eb05aa089cc0ca51e7.tar.gz
git-16c1ff968ac9717c958129eb05aa089cc0ca51e7.tar.bz2
gitk: Use the new --boundary flag to git-rev-list
With this, we can show the boundary (open-circle) commits immediately after their last child, which looks much better than putting all the boundary commits at the bottom of the graph. Signed-off-by: Paul Mackerras <paulus@samba.org>
-rwxr-xr-xgitk15
1 files changed, 12 insertions, 3 deletions
diff --git a/gitk b/gitk
index 03cd475..1989aa5 100755
--- a/gitk
+++ b/gitk
@@ -46,7 +46,7 @@ proc start_rev_list {rlargs} {
}
if {[catch {
set commfd [open [concat | git-rev-list --header $order \
- --parents $rlargs] r]
+ --parents --boundary $rlargs] r]
} err]} {
puts stderr "Error executing git-rev-list: $err"
exit 1
@@ -114,8 +114,13 @@ proc getcommitlines {commfd} {
set start [expr {$i + 1}]
set j [string first "\n" $cmit]
set ok 0
+ set listed 1
if {$j >= 0} {
set ids [string range $cmit 0 [expr {$j - 1}]]
+ if {[string range $ids 0 0] == "-"} {
+ set listed 0
+ set ids [string range $ids 1 end]
+ }
set ok 1
foreach id $ids {
if {[string length $id] != 40} {
@@ -133,8 +138,12 @@ proc getcommitlines {commfd} {
exit 1
}
set id [lindex $ids 0]
- set olds [lrange $ids 1 end]
- set commitlisted($id) 1
+ if {$listed} {
+ set olds [lrange $ids 1 end]
+ set commitlisted($id) 1
+ } else {
+ set olds {}
+ }
updatechildren $id $olds
set commitdata($id) [string range $cmit [expr {$j + 1}] end]
set commitrow($id) $commitidx