]> asedeno.scripts.mit.edu Git - git.git/blobdiff - lib/branch_delete.tcl
Merge branch 'maint'
[git.git] / lib / branch_delete.tcl
diff --git a/lib/branch_delete.tcl b/lib/branch_delete.tcl
deleted file mode 100644 (file)
index 86c4f73..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-# git-gui branch delete support
-# Copyright (C) 2007 Shawn Pearce
-
-class branch_delete {
-
-field w               ; # widget path
-field w_heads         ; # listbox of local head names
-field w_check         ; # revision picker for merge test
-field w_delete        ; # delete button
-
-constructor dialog {} {
-       global current_branch
-
-       make_toplevel top w
-       wm title $top [append "[appname] ([reponame]): " [mc "Delete Branch"]]
-       if {$top ne {.}} {
-               wm geometry $top "+[winfo rootx .]+[winfo rooty .]"
-       }
-
-       label $w.header -text [mc "Delete Local Branch"] -font font_uibold
-       pack $w.header -side top -fill x
-
-       frame $w.buttons
-       set w_delete $w.buttons.delete
-       button $w_delete \
-               -text [mc Delete] \
-               -default active \
-               -state disabled \
-               -command [cb _delete]
-       pack $w_delete -side right
-       button $w.buttons.cancel \
-               -text [mc Cancel] \
-               -command [list destroy $w]
-       pack $w.buttons.cancel -side right -padx 5
-       pack $w.buttons -side bottom -fill x -pady 10 -padx 10
-
-       labelframe $w.list -text [mc "Local Branches"]
-       set w_heads $w.list.l
-       listbox $w_heads \
-               -height 10 \
-               -width 70 \
-               -selectmode extended \
-               -exportselection false \
-               -yscrollcommand [list $w.list.sby set]
-       scrollbar $w.list.sby -command [list $w.list.l yview]
-       pack $w.list.sby -side right -fill y
-       pack $w.list.l -side left -fill both -expand 1
-       pack $w.list -fill both -expand 1 -pady 5 -padx 5
-
-       set w_check [choose_rev::new \
-               $w.check \
-               [mc "Delete Only If Merged Into"] \
-               ]
-       $w_check none [mc "Always (Do not perform merge test.)"]
-       pack $w.check -anchor nw -fill x -pady 5 -padx 5
-
-       foreach h [load_all_heads] {
-               if {$h ne $current_branch} {
-                       $w_heads insert end $h
-               }
-       }
-
-       bind $w_heads <<ListboxSelect>> [cb _select]
-       bind $w <Visibility> "
-               grab $w
-               focus $w
-       "
-       bind $w <Key-Escape> [list destroy $w]
-       bind $w <Key-Return> [cb _delete]\;break
-       tkwait window $w
-}
-
-method _select {} {
-       if {[$w_heads curselection] eq {}} {
-               $w_delete configure -state disabled
-       } else {
-               $w_delete configure -state normal
-       }
-}
-
-method _delete {} {
-       if {[catch {set check_cmt [$w_check commit_or_die]}]} {
-               return
-       }
-
-       set to_delete [list]
-       set not_merged [list]
-       foreach i [$w_heads curselection] {
-               set b [$w_heads get $i]
-               if {[catch {
-                       set o [git rev-parse --verify "refs/heads/$b"]
-               }]} continue
-               if {$check_cmt ne {}} {
-                       if {[catch {set m [git merge-base $o $check_cmt]}]} continue
-                       if {$o ne $m} {
-                               lappend not_merged $b
-                               continue
-                       }
-               }
-               lappend to_delete [list $b $o]
-       }
-       if {$not_merged ne {}} {
-               set msg "[mc "The following branches are not completely merged into %s:" [$w_check get]]
-
- - [join $not_merged "\n - "]"
-               tk_messageBox \
-                       -icon info \
-                       -type ok \
-                       -title [wm title $w] \
-                       -parent $w \
-                       -message $msg
-       }
-       if {$to_delete eq {}} return
-       if {$check_cmt eq {}} {
-               set msg [mc "Recovering deleted branches is difficult. \n\n Delete the selected branches?"]
-               if {[tk_messageBox \
-                       -icon warning \
-                       -type yesno \
-                       -title [wm title $w] \
-                       -parent $w \
-                       -message $msg] ne yes} {
-                       return
-               }
-       }
-
-       set failed {}
-       foreach i $to_delete {
-               set b [lindex $i 0]
-               set o [lindex $i 1]
-               if {[catch {git update-ref -d "refs/heads/$b" $o} err]} {
-                       append failed " - $b: $err\n"
-               }
-       }
-
-       if {$failed ne {}} {
-               tk_messageBox \
-                       -icon error \
-                       -type ok \
-                       -title [wm title $w] \
-                       -parent $w \
-                       -message [mc "Failed to delete branches:\n%s" $failed]
-       }
-
-       destroy $w
-}
-
-}