From: Paul Mackerras Date: Thu, 10 Jan 2008 10:44:39 +0000 (+1100) Subject: gitk: Fix handling of flag arguments X-Git-Tag: v1.5.6-rc0~20^2~26 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=5be25a8f8560a88145ea31f0ca530393ee2094da;p=git.git gitk: Fix handling of flag arguments Despite the name, the --revs-only flag to git rev-parse doesn't make it output only revision IDs. It makes it output only arguments that are suitable for giving to git rev-list. So make start_rev_list and updatecommits cope with arguments output by git rev-parse that aren't revision IDs. This way we won't get an error when an argument such as "-300" has been given to gitk and the view is updated. Signed-off-by: Paul Mackerras --- diff --git a/gitk b/gitk index 0dacfdadf..97d1be092 100755 --- a/gitk +++ b/gitk @@ -110,7 +110,7 @@ proc start_rev_list {view} { $viewargs($view)] set viewincl($view) {} foreach c $commits { - if {![string match "^*" $c]} { + if {[regexp {^[0-9a-fA-F]{40}$} $c]} { lappend viewincl($view) $c } } @@ -187,14 +187,17 @@ proc updatecommits {} { $viewargs($view)] set pos {} set neg {} + set flags {} foreach c $commits { if {[string match "^*" $c]} { lappend neg $c - } else { + } elseif {[regexp {^[0-9a-fA-F]{40}$} $c]} { if {!([info exists varcid($view,$c)] || [lsearch -exact $viewincl($view) $c] >= 0)} { lappend pos $c } + } else { + lappend flags $c } } if {$pos eq {}} { @@ -206,7 +209,7 @@ proc updatecommits {} { set viewincl($view) [concat $viewincl($view) $pos] if {[catch { set fd [open [concat | git log --no-color -z --pretty=raw --parents \ - --boundary $pos $neg "--" $viewfiles($view)] r] + --boundary $pos $neg $flags "--" $viewfiles($view)] r] } err]} { error_popup "Error executing git log: $err" exit 1