On Wed, Feb 14, 2007 at 01:00:41AM -0500, Shawn O. Pearce wrote: > "Shawn O. Pearce" <spearce@xxxxxxxxxxx> 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 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html