{"thread":{"id":"6794","subject":"git-gui Error","startedAt":"2007-02-13T06:56:16Z","lastAt":"2007-02-15T06:38:55Z","messageCount":11,"participants":["Martin Koegler","Shawn O. Pearce"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"34382","messageId":"20070213065616.GA4195@auto.tuwien.ac.at","threadId":"6794","inReplyTo":null,"subject":"git-gui Error","fromName":"Martin Koegler","fromEmail":"mkoegler@auto.tuwien.ac.at","sentAt":"2007-02-13T06:56:16Z","receivedAt":"2007-02-13T06:56:16Z","isPatch":false,"sender":{"key":"mkoegler@auto.tuwien.ac.at","avatar":null},"body":"Starting git-gui without any parameters display an error message instead\nof a usage message:\n\nError in startup script: child process exited abnormally\n    while executing\n\"close $fd\"\n    (procedure \"load_all_heads\" line 11)\n    invoked from within\n\"load_all_heads\"\n    invoked from within\n\"if {[is_enabled transport]} {\n        load_all_remotes\n        load_all_heads\n\n        populate_branch_menu\n        populate_fetch_menu\n        populate_push_menu\n}\"\n\nmfg Martin Kögler\n"},{"id":"34384","messageId":"20070213074519.GA32687@spearce.org","threadId":"6794","inReplyTo":"20070213065616.GA4195@auto.tuwien.ac.at","subject":"Re: git-gui Error","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2007-02-13T07:45:19Z","receivedAt":"2007-02-13T07:45:19Z","isPatch":false,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Martin Koegler <mkoegler@auto.tuwien.ac.at> wrote:\n> Starting git-gui without any parameters display an error message instead\n> of a usage message:\n\nStarting it with no parameters (`git-gui` or `git gui`) should\nwork just fine.  I do this all of the time on Mac OS X and Windows,\nas it opens a commit window and keeps it running.\n \n> Error in startup script: child process exited abnormally\n>     while executing\n> \"close $fd\"\n>     (procedure \"load_all_heads\" line 11)\n>     invoked from within\n> \"load_all_heads\"\n>     invoked from within\n> \"if {[is_enabled transport]} {\n>         load_all_remotes\n>         load_all_heads\n> \n>         populate_branch_menu\n>         populate_fetch_menu\n>         populate_push_menu\n> }\"\n\nAccording to this backtrace, we were trying to startup the UI\nand load the branches, but:\n\n  git for-each-ref --format=%(refname) refs/heads\n\nreturned a non-zero exit code or something else with it went wrong.\nIs this maybe a brand new repository?  This is most certainly a bug\nin git-gui, but I'd like to understand more about the environment\nso I can track it down.\n\n-- \nShawn.\n"},{"id":"34467","messageId":"20070213215303.GA26716@auto.tuwien.ac.at","threadId":"6794","inReplyTo":"20070213074519.GA32687@spearce.org","subject":"Re: git-gui Error","fromName":"Martin Koegler","fromEmail":"mkoegler@auto.tuwien.ac.at","sentAt":"2007-02-13T21:53:03Z","receivedAt":"2007-02-13T21:53:03Z","isPatch":false,"sender":{"key":"mkoegler@auto.tuwien.ac.at","avatar":null},"body":"On Tue, Feb 13, 2007 at 02:45:19AM -0500, Shawn O. Pearce wrote:\n> Martin Koegler <mkoegler@auto.tuwien.ac.at> wrote:\n> > Starting git-gui without any parameters display an error message instead\n> > of a usage message:\n> \n> Starting it with no parameters (`git-gui` or `git gui`) should\n> work just fine.  I do this all of the time on Mac OS X and Windows,\n> as it opens a commit window and keeps it running.\n>  \n> > Error in startup script: child process exited abnormally\n> >     while executing\n> > \"close $fd\"\n> >     (procedure \"load_all_heads\" line 11)\n> >     invoked from within\n> > \"load_all_heads\"\n> >     invoked from within\n> > \"if {[is_enabled transport]} {\n> >         load_all_remotes\n> >         load_all_heads\n> > \n> >         populate_branch_menu\n> >         populate_fetch_menu\n> >         populate_push_menu\n> > }\"\n> \n> According to this backtrace, we were trying to startup the UI\n> and load the branches, but:\n> \n>   git for-each-ref --format=%(refname) refs/heads\n> \n> returned a non-zero exit code or something else with it went wrong.\n> Is this maybe a brand new repository?  This is most certainly a bug\n> in git-gui, but I'd like to understand more about the environment\n> so I can track it down.\n\nMy fault, I had only a too old GIT core (1.4.1) in my path.\nWith the current version, the problem disapears.\n\nSome notes about using git-gui: \n\n* Fetching over ssh results in an empty dialog. The password prompt is\nonly shown in the terminal window, which is likly to be hidden by the\nthe main window of git-gui.\n\n* It there any reason, why tags are not included in the list of possible\nmerge sources in Merge/Local Merge?\n\nIt only needs one additional line in do_local_merge:\n         set cmd [list git for-each-ref]\n         lappend cmd {--format=%(objectname) %(refname)}\n         lappend cmd refs/heads\n         lappend cmd refs/remotes\n+        lappend cmd refs/tags\n         set fr_fd [open \"| $cmd\" r]\n\nmfg Martin Kögler\n"},{"id":"34492","messageId":"20070214022200.GB30884@spearce.org","threadId":"6794","inReplyTo":"20070213215303.GA26716@auto.tuwien.ac.at","subject":"Re: git-gui Error","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2007-02-14T02:22:00Z","receivedAt":"2007-02-14T02:22:00Z","isPatch":false,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Martin Koegler <mkoegler@auto.tuwien.ac.at> wrote:\n> My fault, I had only a too old GIT core (1.4.1) in my path.\n> With the current version, the problem disapears.\n\nYea, I figured (much later) it was something like that.  I still\nthink there is a bug in git-gui, namely not telling you that it\nrequires Git 1.5.x or later if it finds out the 'git' its invoking\nis older than that.  I'll probably patch it tonight, but it won't\nship that way in 1.5.0.\n \n> Some notes about using git-gui: \n> \n> * Fetching over ssh results in an empty dialog. The password prompt is\n> only shown in the terminal window, which is likly to be hidden by the\n> the main window of git-gui.\n\nThis is a \"feature\".  I only use git-gui + ssh with an ssh-agent\nand public key authentication, so I never get password prompts.\nUnfortunately Tcl does not permit me to setup bi-directional pipes\nto a process (heck, I can't get both stdout and stderr except by\ngoing through cat!), and even if it does, I think ssh would demand\nthe tty to get the password, thereby bypassing my pipe anyway.\n\nBasically I don't know how to improve this.  If someone has a bright\nidea, please pass it along!\n \n> * It there any reason, why tags are not included in the list of possible\n> merge sources in Merge/Local Merge?\n> \n> It only needs one additional line in do_local_merge:\n>          set cmd [list git for-each-ref]\n>          lappend cmd {--format=%(objectname) %(refname)}\n>          lappend cmd refs/heads\n>          lappend cmd refs/remotes\n> +        lappend cmd refs/tags\n>          set fr_fd [open \"| $cmd\" r]\n\nI just didn't consider it.  The way I use git-gui for merges, I never\nmerge tags.  But its obviously valid in plain Git.  I'll add it.\n\n-- \nShawn.\n"},{"id":"34501","messageId":"20070214060041.GA31871@spearce.org","threadId":"6794","inReplyTo":"20070214022200.GB30884@spearce.org","subject":"Re: git-gui Error","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2007-02-14T06:00:41Z","receivedAt":"2007-02-14T06:00:41Z","isPatch":false,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"\"Shawn O. Pearce\" <spearce@spearce.org> wrote:\n> Martin Koegler <mkoegler@auto.tuwien.ac.at> wrote:\n> > * It there any reason, why tags are not included in the list of possible\n> > merge sources in Merge/Local Merge?\n> > \n> > It only needs one additional line in do_local_merge:\n> >          set cmd [list git for-each-ref]\n> >          lappend cmd {--format=%(objectname) %(refname)}\n> >          lappend cmd refs/heads\n> >          lappend cmd refs/remotes\n> > +        lappend cmd refs/tags\n> >          set fr_fd [open \"| $cmd\" r]\n> \n> I just didn't consider it.  The way I use git-gui for merges, I never\n> merge tags.  But its obviously valid in plain Git.  I'll add it.\n\nThis is now pushed to repo.or.cz.  It probably won't show up in\ngit.git for at least a few weeks.  I want to push through some\nmore features (especially around the blame UI) in git-gui before\nI bother Junio with another git-gui merge.  Besides, Git 1.5.0\n(including git-gui 0.6.0.1) just shipped.  :)\n\nIt turned out to be slightly more difficult than just adding\nrefs/tags, as %(objectname) would be the name of the annotated tag,\nand we need the commit name to match against rev-list output.  So I\nhad to extend the for-each-ref call to also include %(*objectname).\n\n-- \nShawn.\n"},{"id":"34584","messageId":"20070214174635.GA21612@auto.tuwien.ac.at","threadId":"6794","inReplyTo":"20070214060041.GA31871@spearce.org","subject":"Re: git-gui Error","fromName":"Martin Koegler","fromEmail":"mkoegler@auto.tuwien.ac.at","sentAt":"2007-02-14T17:46:35Z","receivedAt":"2007-02-14T17:46:35Z","isPatch":false,"sender":{"key":"mkoegler@auto.tuwien.ac.at","avatar":null},"body":"On Wed, Feb 14, 2007 at 01:00:41AM -0500, Shawn O. Pearce wrote:\n> \"Shawn O. Pearce\" <spearce@spearce.org> wrote:\n> This is now pushed to repo.or.cz.  It probably won't show up in\n> git.git for at least a few weeks.  I want to push through some\n> more features (especially around the blame UI) in git-gui before\n> I bother Junio with another git-gui merge.  Besides, Git 1.5.0\n> (including git-gui 0.6.0.1) just shipped.  :)\n> \n> It turned out to be slightly more difficult than just adding\n> refs/tags, as %(objectname) would be the name of the annotated tag,\n> and we need the commit name to match against rev-list output.  So I\n> had to extend the for-each-ref call to also include %(*objectname).\n> \n\nI'm missing the possibility to base a new branch on a tag.\nThe following adds a tag drop down to the new branch dialog:\n\n--- git-gui.sh  2007-02-14 08:51:38.025781229 +0000\n+++ git-gui     2007-02-14 10:50:13.618870598 +0000\n@@ -1916,11 +1916,25 @@\n        return [lsort -unique $all_trackings]\n }\n\n+proc load_all_tags {} {\n+       set all_tags [list]\n+       set fd [open \"| git for-each-ref --format=%(refname) refs/tags\" r]\n+       while {[gets $fd line] > 0} {\n+               if {![regsub ^refs/tags/ $line {} name]} continue\n+               lappend all_tags $name\n+       }\n+       close $fd\n+\n+       return [lsort $all_tags]\n+}\n+\n+\n proc do_create_branch_action {w} {\n        global all_heads null_sha1 repo_config\n        global create_branch_checkout create_branch_revtype\n        global create_branch_head create_branch_trackinghead\n        global create_branch_name create_branch_revexp\n+        global create_branch_tag\n\n        set newbranch $create_branch_name\n        if {$newbranch eq {}\n@@ -1959,6 +1973,7 @@\n        switch -- $create_branch_revtype {\n        head {set rev $create_branch_head}\n        tracking {set rev $create_branch_trackinghead}\n+       tag {set rev $create_branch_tag}\n        expression {set rev $create_branch_revexp}\n        }\n        if {[catch {set cmt [git rev-parse --verify \"${rev}^0\"]}]} {\n@@ -2015,6 +2030,7 @@\n        global create_branch_checkout create_branch_revtype\n        global create_branch_head create_branch_trackinghead\n        global create_branch_name create_branch_revexp\n+        global create_branch_tag\n\n        set w .branch_editor\n        toplevel $w\n@@ -2078,6 +2094,19 @@\n                        $all_trackings\n                grid $w.from.tracking_r $w.from.tracking_m -sticky w\n        }\n+       set all_tags [load_all_tags]\n+       if {$all_tags ne {}} {\n+               set create_branch_tag [lindex $all_tags 0]\n+               radiobutton $w.from.tag_r \\\n+                       -text {Tag:} \\\n+                       -value tag \\\n+                       -variable create_branch_revtype \\\n+                       -font font_ui\n+               eval tk_optionMenu $w.from.tag_m \\\n+                       create_branch_tag \\\n+                       $all_tags\n+               grid $w.from.tag_r $w.from.tag_m -sticky w\n+       }\n        radiobutton $w.from.exp_r \\\n                -text {Revision Expression:} \\\n                -value expression \\\n\nmfg Martin Kögler\n"},{"id":"34594","messageId":"20070214180906.GB21612@auto.tuwien.ac.at","threadId":"6794","inReplyTo":"20070214022200.GB30884@spearce.org","subject":"Re: git-gui Error","fromName":"Martin Koegler","fromEmail":"mkoegler@auto.tuwien.ac.at","sentAt":"2007-02-14T18:09:06Z","receivedAt":"2007-02-14T18:09:06Z","isPatch":false,"sender":{"key":"mkoegler@auto.tuwien.ac.at","avatar":null},"body":"On Tue, Feb 13, 2007 at 09:22:00PM -0500, Shawn O. Pearce wrote:\n> Martin Koegler <mkoegler@auto.tuwien.ac.at> wrote:\n> > My fault, I had only a too old GIT core (1.4.1) in my path.\n> > With the current version, the problem disapears.\n> \n> Yea, I figured (much later) it was something like that.  I still\n> think there is a bug in git-gui, namely not telling you that it\n> requires Git 1.5.x or later if it finds out the 'git' its invoking\n> is older than that.  I'll probably patch it tonight, but it won't\n> ship that way in 1.5.0.\n>  \n> > Some notes about using git-gui: \n> > \n> > * Fetching over ssh results in an empty dialog. The password prompt is\n> > only shown in the terminal window, which is likly to be hidden by the\n> > the main window of git-gui.\n> \n> This is a \"feature\".  I only use git-gui + ssh with an ssh-agent\n> and public key authentication, so I never get password prompts.\n> Unfortunately Tcl does not permit me to setup bi-directional pipes\n> to a process (heck, I can't get both stdout and stderr except by\n> going through cat!), and even if it does, I think ssh would demand\n> the tty to get the password, thereby bypassing my pipe anyway.\n> \n> Basically I don't know how to improve this.  If someone has a bright\n> idea, please pass it along!\n\nWell, there are two way:\n\n1) SSH_ASKPASS (see ssh(1))\n    If ssh needs a passphrase, it will read the passphrase from the\n    current terminal if it was run from a terminal.  If ssh does not\n    have a terminal associated with it but DISPLAY and SSH_ASKPASS\n    are set, it will execute the program specified by SSH_ASKPASS\n    and open an X11 window to read the passphrase.  This is particu-\n    larly useful when calling ssh from a .Xsession or related\n    script.  (Note that on some machines it may be necessary to\n    redirect the input from /dev/null to make this work.)\n\nThis require, that a password helper is installed. One implementation\nis part of every linux distribution (openssh-askpass-gnome).\n\n2) Simulate user (like http://websvn.kde.org/tags/KDE/3.4.3/kdebase/kioslave/fish/fish.cpp?rev=467549&view=auto)\n\nThis requires opening a pty and running ssh on the slave of\nit. Additionally it requires some logic to determine, what type of\ninput ssh requires.\n\nI tried to implement the second way in a C program once. The interpretion\nof the ssh output is difficult, but I got it working, but after a system upgrade,\nthe logic was not working any more. So I would avoid this.\n\nmfg Martin Kögler\n"},{"id":"34673","messageId":"20070215024014.GA29865@spearce.org","threadId":"6794","inReplyTo":"20070214174635.GA21612@auto.tuwien.ac.at","subject":"Re: git-gui Error","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2007-02-15T02:40:14Z","receivedAt":"2007-02-15T02:40:14Z","isPatch":false,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Martin Koegler <mkoegler@auto.tuwien.ac.at> wrote:\n> I'm missing the possibility to base a new branch on a tag.\n> The following adds a tag drop down to the new branch dialog:\n\nYea, again, laziness on my part.  :-) You could enter the tag name\nin the SHA-1 expression field, but having it as a picklist may\nmake sense.\n \n> --- git-gui.sh  2007-02-14 08:51:38.025781229 +0000\n> +++ git-gui     2007-02-14 10:50:13.618870598 +0000\n> @@ -1916,11 +1916,25 @@\n>         return [lsort -unique $all_trackings]\n>  }\n\nUnfortunately this patch has severe whitespace damage.  All of the\ntabs were received here as spaces, so nothing applies.\n\n>  proc do_create_branch_action {w} {\n>         global all_heads null_sha1 repo_config\n>         global create_branch_checkout create_branch_revtype\n>         global create_branch_head create_branch_trackinghead\n>         global create_branch_name create_branch_revexp\n> +        global create_branch_tag\n\nThe indentation does not line up here.  All of the existing context\nlines were indented with just one tab, until the whitespace damage\nnoted above.\n\n-- \nShawn.\n"},{"id":"34676","messageId":"20070215040725.GB29944@spearce.org","threadId":"6794","inReplyTo":"20070214180906.GB21612@auto.tuwien.ac.at","subject":"Re: git-gui Error","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2007-02-15T04:07:25Z","receivedAt":"2007-02-15T04:07:25Z","isPatch":false,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Martin Koegler <mkoegler@auto.tuwien.ac.at> wrote:\n> 1) SSH_ASKPASS (see ssh(1))\n>     If ssh needs a passphrase, it will read the passphrase from the\n>     current terminal if it was run from a terminal.  If ssh does not\n>     have a terminal associated with it but DISPLAY and SSH_ASKPASS\n>     are set, it will execute the program specified by SSH_ASKPASS\n>     and open an X11 window to read the passphrase.  This is particu-\n>     larly useful when calling ssh from a .Xsession or related\n>     script.  (Note that on some machines it may be necessary to\n>     redirect the input from /dev/null to make this work.)\n> \n> This require, that a password helper is installed. One implementation\n> is part of every linux distribution (openssh-askpass-gnome).\n\nI had written a Tk based SSH_ASKPASS helper not to long ago,\nand hoped it would work here.  It doesn't work on Cygwin for\nanything except ssh-agent.  I'm not sure why.  I haven't tested\nother platforms.\n \n> 2) Simulate user (like http://websvn.kde.org/tags/KDE/3.4.3/kdebase/kioslave/fish/fish.cpp?rev=467549&view=auto)\n\nYea, that's a difficult one, and very error prone...\n\n-- \nShawn.\n"},{"id":"34678","messageId":"20070215060712.GA3761@auto.tuwien.ac.at","threadId":"6794","inReplyTo":"20070215024014.GA29865@spearce.org","subject":"Re: git-gui Error","fromName":"Martin Koegler","fromEmail":"mkoegler@auto.tuwien.ac.at","sentAt":"2007-02-15T06:07:12Z","receivedAt":"2007-02-15T06:07:12Z","isPatch":false,"sender":{"key":"mkoegler@auto.tuwien.ac.at","avatar":null},"body":"On Wed, Feb 14, 2007 at 09:40:14PM -0500, Shawn O. Pearce wrote:\n> Martin Koegler <mkoegler@auto.tuwien.ac.at> wrote:\n> > --- git-gui.sh  2007-02-14 08:51:38.025781229 +0000\n> > +++ git-gui     2007-02-14 10:50:13.618870598 +0000\n> > @@ -1916,11 +1916,25 @@\n> >         return [lsort -unique $all_trackings]\n> >  }\n> \n> Unfortunately this patch has severe whitespace damage.  All of the\n> tabs were received here as spaces, so nothing applies.\n> \n> >  proc do_create_branch_action {w} {\n> >         global all_heads null_sha1 repo_config\n> >         global create_branch_checkout create_branch_revtype\n> >         global create_branch_head create_branch_trackinghead\n> >         global create_branch_name create_branch_revexp\n> > +        global create_branch_tag\n> \n> The indentation does not line up here.  All of the existing context\n> lines were indented with just one tab, until the whitespace damage\n> noted above.\n\nThis time, the white spaces/tabs should be correct:\n\n--- git-gui.sh\t2007-02-14 09:51:38.025781229 +0100\n+++ git-gui\t2007-02-15 06:53:40.262295256 +0100\n@@ -1916,11 +1916,25 @@\n \treturn [lsort -unique $all_trackings]\n }\n \n+proc load_all_tags {} {\n+\tset all_tags [list]\n+\tset fd [open \"| git for-each-ref --format=%(refname) refs/tags\" r]\n+\twhile {[gets $fd line] > 0} {\n+\t\tif {![regsub ^refs/tags/ $line {} name]} continue\n+\t\tlappend all_tags $name\n+\t}\n+\tclose $fd\n+\n+\treturn [lsort $all_tags]\n+}\n+\n+\n proc do_create_branch_action {w} {\n \tglobal all_heads null_sha1 repo_config\n \tglobal create_branch_checkout create_branch_revtype\n \tglobal create_branch_head create_branch_trackinghead\n \tglobal create_branch_name create_branch_revexp\n+\tglobal create_branch_tag\n \n \tset newbranch $create_branch_name\n \tif {$newbranch eq {}\n@@ -1959,6 +1973,7 @@\n \tswitch -- $create_branch_revtype {\n \thead {set rev $create_branch_head}\n \ttracking {set rev $create_branch_trackinghead}\n+\ttag {set rev $create_branch_tag}\n \texpression {set rev $create_branch_revexp}\n \t}\n \tif {[catch {set cmt [git rev-parse --verify \"${rev}^0\"]}]} {\n@@ -2015,6 +2030,7 @@\n \tglobal create_branch_checkout create_branch_revtype\n \tglobal create_branch_head create_branch_trackinghead\n \tglobal create_branch_name create_branch_revexp\n+\tglobal create_branch_tag\n \n \tset w .branch_editor\n \ttoplevel $w\n@@ -2078,6 +2094,19 @@\n \t\t\t$all_trackings\n \t\tgrid $w.from.tracking_r $w.from.tracking_m -sticky w\n \t}\n+\tset all_tags [load_all_tags]\n+\tif {$all_tags ne {}} {\n+\t\tset create_branch_tag [lindex $all_tags 0]\n+\t\tradiobutton $w.from.tag_r \\\n+\t\t\t-text {Tag:} \\\n+\t\t\t-value tag \\\n+\t\t\t-variable create_branch_revtype \\\n+\t\t\t-font font_ui\n+\t\teval tk_optionMenu $w.from.tag_m \\\n+\t\t\tcreate_branch_tag \\\n+\t\t\t$all_tags\n+\t\tgrid $w.from.tag_r $w.from.tag_m -sticky w\n+\t}\n \tradiobutton $w.from.exp_r \\\n \t\t-text {Revision Expression:} \\\n \t\t-value expression \\\n\nmfg Martin Kögler\n"},{"id":"34679","messageId":"20070215063855.GA30643@spearce.org","threadId":"6794","inReplyTo":"20070215060712.GA3761@auto.tuwien.ac.at","subject":"Re: git-gui Error","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2007-02-15T06:38:55Z","receivedAt":"2007-02-15T06:38:55Z","isPatch":false,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Martin Koegler <mkoegler@auto.tuwien.ac.at> wrote:\n> This time, the white spaces/tabs should be correct:\n\nThanks, that applied cleanly.\n\nExcept the radio button for Tag isn't selected if you make a\nselection from the tag picklist.  This was easily fixed by adding a\ntrace to the variable, like the trace already setup for the branch\nand tracking branch menus:\n\ndiff --git a/git-gui.sh b/git-gui.sh\nindex 1c3de80..9ce5a3b 100755\n--- a/git-gui.sh\n+++ b/git-gui.sh\n@@ -2018,6 +2018,8 @@ trace add variable create_branch_head write \\\n \t[list radio_selector create_branch_revtype head]\n trace add variable create_branch_trackinghead write \\\n \t[list radio_selector create_branch_revtype tracking]\n+trace add variable create_branch_tag write \\\n+\t[list radio_selector create_branch_revtype tag]\n \n trace add variable delete_branch_head write \\\n \t[list radio_selector delete_branch_checktype head]\n\nI applied your patch along with the new trace above, and have pushed\nit out as the following:\n\ncommit 101e3ae7a6b041aa86505bfd3e8b901f1dc245c3\nAuthor: Martin Koegler <mkoegler@auto.tuwien.ac.at>\nDate:   Thu Feb 15 01:28:34 2007 -0500\n\n    git-gui: Create new branches from a tag.\n    \n    I'm missing the possibility to base a new branch on a tag.\n    The following adds a tag drop down to the new branch dialog.\n    \n    Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>\n    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>\n\n-- \nShawn.\n"}]}