{"thread":{"id":"8275","subject":"[PATCH] gitk: properly resolve ambiguity if argument is both, revision and filename","startedAt":"2007-05-22T12:42:06Z","lastAt":"2007-05-22T12:42:06Z","messageCount":1,"participants":["Gerrit Pape"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"42977","messageId":"20070522124206.11678.qmail@5d12ed598bf56a.315fe32.mid.smarden.org","threadId":"8275","inReplyTo":null,"subject":"[PATCH] gitk: properly resolve ambiguity if argument is both, revision and filename","fromName":"Gerrit Pape","fromEmail":"pape@smarden.org","sentAt":"2007-05-22T12:42:06Z","receivedAt":"2007-05-22T12:42:06Z","isPatch":true,"sender":{"key":"pape@smarden.org","avatar":"https://avatars.githubusercontent.com/u/143170252?v=4"},"body":"If a repository contains a file and a branch with the same name, have\ngitk recognize the '--' separator as final command line argument, as\ndocumented in gitk(1); previously 'gitk <name> --' failed.  Additionally\nhave gitk insert '--' automatically for views created or edited through\nthe View menu.\n\nThe bug was noticed and reported by Josh Triplett through\n http://bugs.debian.org/425491\n\nSigned-off-by: Gerrit Pape <pape@smarden.org>\n---\n gitk |   15 +++++++++------\n 1 files changed, 9 insertions(+), 6 deletions(-)\n\ndiff --git a/gitk b/gitk\nindex a57e84c..7e8d426 100755\n--- a/gitk\n+++ b/gitk\n@@ -19,15 +19,12 @@ proc gitdir {} {\n proc start_rev_list {view} {\n     global startmsecs nextupdate\n     global commfd leftover tclencoding datemode\n-    global viewargs viewfiles commitidx\n+    global viewargs viewfiles viewargsep commitidx\n \n     set startmsecs [clock clicks -milliseconds]\n     set nextupdate [expr {$startmsecs + 100}]\n     set commitidx($view) 0\n-    set args $viewargs($view)\n-    if {$viewfiles($view) ne {}} {\n-\tset args [concat $args \"--\" $viewfiles($view)]\n-    }\n+    set args [concat $viewargs($view) $viewargsep($view) $viewfiles($view)]\n     set order \"--topo-order\"\n     if {$datemode} {\n \tset order \"--date-order\"\n@@ -1536,7 +1533,7 @@ proc allviewmenus {n op args} {\n proc newviewok {top n} {\n     global nextviewnum newviewperm newviewname newishighlight\n     global viewname viewfiles viewperm selectedview curview\n-    global viewargs newviewargs viewhlmenu\n+    global viewargs viewargsep newviewargs viewhlmenu\n \n     if {[catch {\n \tset newargs [shellsplit $newviewargs($n)]\n@@ -1560,6 +1557,7 @@ proc newviewok {top n} {\n \tset viewperm($n) $newviewperm($n)\n \tset viewfiles($n) $files\n \tset viewargs($n) $newargs\n+\tset viewargsep($n) \"--\"\n \taddviewmenu $n\n \tif {!$newishighlight} {\n \t    after idle showview $n\n@@ -1579,6 +1577,7 @@ proc newviewok {top n} {\n \tif {$files ne $viewfiles($n) || $newargs ne $viewargs($n)} {\n \t    set viewfiles($n) $files\n \t    set viewargs($n) $newargs\n+\t    set viewargsep($n) \"--\"\n \t    if {$curview == $n} {\n \t\tafter idle updatecommits\n \t    }\n@@ -6316,10 +6315,12 @@ if {![file isdirectory $gitdir]} {\n }\n \n set cmdline_files {}\n+set cmdline_sep \"\"\n set i [lsearch -exact $revtreeargs \"--\"]\n if {$i >= 0} {\n     set cmdline_files [lrange $revtreeargs [expr {$i + 1}] end]\n     set revtreeargs [lrange $revtreeargs 0 [expr {$i - 1}]]\n+    set cmdline_sep \"--\"\n } elseif {$revtreeargs ne {}} {\n     if {[catch {\n \tset f [eval exec git rev-parse --no-revs --no-flags $revtreeargs]\n@@ -6357,6 +6358,7 @@ set selectedhlview None\n set viewfiles(0) {}\n set viewperm(0) 0\n set viewargs(0) {}\n+set viewargsep(0) {}\n \n set cmdlineok 0\n set stopped 0\n@@ -6375,6 +6377,7 @@ if {$cmdline_files ne {} || $revtreeargs ne {}} {\n     set viewname(1) \"Command line\"\n     set viewfiles(1) $cmdline_files\n     set viewargs(1) $revtreeargs\n+    set viewargsep(1) $cmdline_sep\n     set viewperm(1) 0\n     addviewmenu 1\n     .bar.view entryconf Edit* -state normal\n-- \n1.5.2\n"}]}