git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git-gui Error

From
MKMartin Koegler <mkoegler@auto.tuwien.ac.at>
Date
Feb 14, 2007, 17:46 UTC
Message-ID
<20070214174635.GA21612@auto.tuwien.ac.at>
In-Reply-To
<20070214060041.GA31871@spearce.org>
On Wed, Feb 14, 2007 at 01:00:41AM -0500, Shawn O. Pearce wrote:
Show 12 quoted lines
> "Shawn O. Pearce" <spearce@spearce.org> wrote:
> This is now pushed to repo.or.cz.  It probably won't show up in
> git.git for at least a few weeks.  I want to push through some
> more features (especially around the blame UI) in git-gui before
> I bother Junio with another git-gui merge.  Besides, Git 1.5.0
> (including git-gui 0.6.0.1) just shipped.  :)
> 
> It turned out to be slightly more difficult than just adding
> refs/tags, as %(objectname) would be the name of the annotated tag,
> and we need the commit name to match against rev-list output.  So I
> had to extend the for-each-ref call to also include %(*objectname).
> 

I'm missing the possibility to base a new branch on a tag. The following adds a tag drop down to the new branch dialog:

--- git-gui.sh 2007-02-14 08:51:38.025781229 +0000 +++ git-gui 2007-02-14 10:50:13.618870598 +0000

@@ -1916,11 +1916,25 @@
        return [lsort -unique $all_trackings]
 }

+proc load_all_tags {} {
+       set all_tags [list]
+       set fd [open "| git for-each-ref --format=%(refname) refs/tags" r]
+       while {[gets $fd line] > 0} {
+               if {![regsub ^refs/tags/ $line {} name]} continue
+               lappend all_tags $name
+       }
+       close $fd
+
+       return [lsort $all_tags]
+}
+
+
 proc do_create_branch_action {w} {
        global all_heads null_sha1 repo_config
        global create_branch_checkout create_branch_revtype
        global create_branch_head create_branch_trackinghead
        global create_branch_name create_branch_revexp
+        global create_branch_tag

        set newbranch $create_branch_name
        if {$newbranch eq {}
@@ -1959,6 +1973,7 @@
        switch -- $create_branch_revtype {
        head {set rev $create_branch_head}
        tracking {set rev $create_branch_trackinghead}
+       tag {set rev $create_branch_tag}
        expression {set rev $create_branch_revexp}
        }
        if {[catch {set cmt [git rev-parse --verify "${rev}^0"]}]} {
@@ -2015,6 +2030,7 @@
        global create_branch_checkout create_branch_revtype
        global create_branch_head create_branch_trackinghead
        global create_branch_name create_branch_revexp
+        global create_branch_tag

        set w .branch_editor
        toplevel $w
@@ -2078,6 +2094,19 @@
                        $all_trackings
                grid $w.from.tracking_r $w.from.tracking_m -sticky w
        }
+       set all_tags [load_all_tags]
+       if {$all_tags ne {}} {
+               set create_branch_tag [lindex $all_tags 0]
+               radiobutton $w.from.tag_r \
+                       -text {Tag:} \
+                       -value tag \
+                       -variable create_branch_revtype \
+                       -font font_ui
+               eval tk_optionMenu $w.from.tag_m \
+                       create_branch_tag \
+                       $all_tags
+               grid $w.from.tag_r $w.from.tag_m -sticky w
+       }
        radiobutton $w.from.exp_r \
                -text {Revision Expression:} \
                -value expression \

mfg Martin Kögler
Previous: Shawn O. PearceNext: Shawn O. Pearce
Message 6 of 11 in “git-gui Error”
  1. Martin KoeglerFeb 13, 2007
  2. Shawn O. PearceFeb 13, 2007
  3. Martin KoeglerFeb 13, 2007
  4. Shawn O. PearceFeb 14, 2007
  5. Shawn O. PearceFeb 14, 2007
  6. Martin KoeglerFeb 14, 2007
  7. Shawn O. PearceFeb 15, 2007
  8. Martin KoeglerFeb 15, 2007
  9. Shawn O. PearceFeb 15, 2007
  10. Martin KoeglerFeb 14, 2007
  11. Shawn O. PearceFeb 15, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.