summaryrefslogtreecommitdiff
path: root/git-gui/lib/branch.tcl
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-11-23 13:28:53 -0800
committerJunio C Hamano <gitster@pobox.com>2011-11-23 13:28:53 -0800
commit3686aa1caf907d22fe318c28efe93f0e7870ba50 (patch)
treef99a303bd14c7343be7ccc5b9df5382f1bf79246 /git-gui/lib/branch.tcl
parentaa2577a9c3bd5559bd580feca6edec4d70254adc (diff)
parent1e501a7c47ad5ada53d3b1acfb9f131f76e969ec (diff)
downloadgit-3686aa1caf907d22fe318c28efe93f0e7870ba50.tar.gz
Merge branch 'maint' into tj/imap-send-remove-unusedtj/maint-imap-send-remove-unused
* maint: (18123 commits) documentation fix: git difftool uses diff tools, not merge tools. Git 1.7.7.4 Makefile: add missing header file dependencies notes merge: eliminate OUTPUT macro mailmap: xcalloc mailmap_info name-rev --all: do not even attempt to describe non-commit object Git 1.7.7.3 docs: Update install-doc-quick docs: don't mention --quiet or --exit-code in git-log(1) Git 1.7.7.2 t7511: avoid use of reserved filename on Windows. clone: Quote user supplied path in a single quote pair read-cache.c: fix index memory allocation make the sample pre-commit hook script reject names with newlines, too Reindent closing bracket using tab instead of spaces Git 1.7.7.1 RelNotes/1.7.7.1: setgid bit patch is about fixing "git init" via Makefile setting gitweb: fix regression when filtering out forks Almost ready for 1.7.7.1 pack-objects: don't traverse objects unnecessarily ... Conflicts: imap-send.c
Diffstat (limited to 'git-gui/lib/branch.tcl')
-rw-r--r--git-gui/lib/branch.tcl38
1 files changed, 38 insertions, 0 deletions
diff --git a/git-gui/lib/branch.tcl b/git-gui/lib/branch.tcl
new file mode 100644
index 0000000000..777eeb79c1
--- /dev/null
+++ b/git-gui/lib/branch.tcl
@@ -0,0 +1,38 @@
+# git-gui branch (create/delete) support
+# Copyright (C) 2006, 2007 Shawn Pearce
+
+proc load_all_heads {} {
+ global some_heads_tracking
+
+ set rh refs/heads
+ set rh_len [expr {[string length $rh] + 1}]
+ set all_heads [list]
+ set fd [git_read for-each-ref --format=%(refname) $rh]
+ while {[gets $fd line] > 0} {
+ if {!$some_heads_tracking || ![is_tracking_branch $line]} {
+ lappend all_heads [string range $line $rh_len end]
+ }
+ }
+ close $fd
+
+ return [lsort $all_heads]
+}
+
+proc load_all_tags {} {
+ set all_tags [list]
+ set fd [git_read for-each-ref \
+ --sort=-taggerdate \
+ --format=%(refname) \
+ refs/tags]
+ while {[gets $fd line] > 0} {
+ if {![regsub ^refs/tags/ $line {} name]} continue
+ lappend all_tags $name
+ }
+ close $fd
+ return $all_tags
+}
+
+proc radio_selector {varname value args} {
+ upvar #0 $varname var
+ set var $value
+}