Code

git-gui: Allow adding untracked files in selection.
authorShawn O. Pearce <spearce@spearce.org>
Sun, 19 Nov 2006 02:33:04 +0000 (21:33 -0500)
committerShawn O. Pearce <spearce@spearce.org>
Sun, 19 Nov 2006 03:46:07 +0000 (22:46 -0500)
The previous implementation of do_include_selection did not actually
add files in state _O (untracked, not added) into the repository when
they were in the selection and Commit->Include Selected Files was used.
This was due to the file state filtering logic being the same as that
of Commit->Include All Files, which only considers existing files.

Also fixed a minor issue with rejected attempts to amend an initial
commit.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui

diff --git a/git-gui b/git-gui
index 23efe4742b0c2c97cd20a72ef24895e7f0d723bc..d1054f6632794dc35e80c993033062aa0da45f95 100755 (executable)
--- a/git-gui
+++ b/git-gui
@@ -1891,9 +1891,13 @@ proc include_helper {txt paths} {
        foreach path $paths {
                switch -- [lindex $file_states($path) 0] {
                AM -
+               AD -
                MM -
+               UM -
+               U_ -
                _M -
-               _D {
+               _D -
+               _O {
                        lappend pathList $path
                        if {$path eq $current_diff} {
                                set after {reshow_diff;}
@@ -1927,9 +1931,20 @@ proc do_include_selection {} {
 
 proc do_include_all {} {
        global file_states
+
+       set paths [list]
+       foreach path [array names file_states] {
+               switch -- [lindex $file_states($path) 0] {
+               AM -
+               AD -
+               MM -
+               _M -
+               _D {lappend paths $path}
+               }
+       }
        include_helper \
                {Including all modified files} \
-               [array names file_states]
+               $paths
 }
 
 proc do_signoff {} {
@@ -1965,7 +1980,7 @@ proc do_select_commit_type {} {
                # The amend request was rejected...
                #
                if {![string match amend* $commit_type]} {
-                       set commit_type new
+                       set selected_commit_type new
                }
        }
 }