Merge branch 'maint'
authorJunio C Hamano <junkio@cox.net>
Tue, 6 Mar 2007 08:45:34 +0000 (00:45 -0800)
committerJunio C Hamano <junkio@cox.net>
Tue, 6 Mar 2007 08:45:34 +0000 (00:45 -0800)
* maint:
git-gui: Make 'make' quieter by default
git-gui: Remove unnecessary /dev/null redirection.
git-gui: Don't create empty (same tree as parent) commits.
git-gui: Add Reset to the Branch menu.
git-gui: Relocate the menu/transport menu code.

git-gui/Makefile
git-gui/git-gui.sh
index 66538ba1adb9d50b80288f9ae3c0df77758059aa..e486e8f9843ed48f06e667cfa5659e51e5a0e4d1 100644 (file)
@@ -1,5 +1,8 @@
 all::
 
+# Define V=1 to have a more verbose compile.
+#
+
 GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
        @$(SHELL_PATH) ./GIT-VERSION-GEN
 -include GIT-VERSION-FILE
@@ -19,27 +22,32 @@ ifndef INSTALL
        INSTALL = install
 endif
 
+ifndef V
+       QUIET_GEN      = @echo '   ' GEN $@;
+       QUIET_BUILT_IN = @echo '   ' BUILTIN $@;
+endif
+
 DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
 gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
 SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
 
 git-gui: git-gui.sh GIT-VERSION-FILE CREDITS-FILE
-       rm -f $@ $@+
+       $(QUIET_GEN)rm -f $@ $@+ && \
        sed -n \
                -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
                -e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \
                -e '1,/^set gitgui_credits /p' \
-               $@.sh >$@+
-       cat CREDITS-FILE >>$@+
-       sed -e '1,/^set gitgui_credits /d' $@.sh >>$@+
-       chmod +x $@+
+               $@.sh >$@+ && \
+       cat CREDITS-FILE >>$@+ && \
+       sed -e '1,/^set gitgui_credits /d' $@.sh >>$@+ && \
+       chmod +x $@+ && \
        mv $@+ $@
 
 CREDITS-FILE: CREDITS-GEN .FORCE-CREDITS-FILE
-       $(SHELL_PATH) ./CREDITS-GEN
+       $(QUIET_GEN)$(SHELL_PATH) ./CREDITS-GEN
 
 $(GITGUI_BUILT_INS): git-gui
-       rm -f $@ && ln git-gui $@
+       $(QUIET_BUILT_IN)rm -f $@ && ln git-gui $@
 
 all:: $(ALL_PROGRAMS)
 
index f84ba3382b3078ee6de45bddfacd650973068303..1981827a8e8bcc2b2e43598bb06e3e6c87bd4d1d 100755 (executable)
@@ -1267,6 +1267,24 @@ proc commit_committree {fd_wt curHEAD msg} {
                return
        }
 
+       # -- Verify this wasn't an empty change.
+       #
+       if {$commit_type eq {normal}} {
+               set old_tree [git rev-parse "$PARENT^{tree}"]
+               if {$tree_id eq $old_tree} {
+                       info_popup {No changes to commit.
+
+No files were modified by this commit and it
+was not a merge commit.
+
+A rescan will be automatically started now.
+}
+                       unlock_index
+                       rescan {set ui_status_value {No changes to commit.}}
+                       return
+               }
+       }
+
        # -- Build the message.
        #
        set msg_p [gitdir COMMIT_EDITMSG]
@@ -1281,14 +1299,8 @@ proc commit_committree {fd_wt curHEAD msg} {
        # -- Create the commit.
        #
        set cmd [list git commit-tree $tree_id]
-       set parents [concat $PARENT $MERGE_HEAD]
-       if {[llength $parents] > 0} {
-               foreach p $parents {
-                       lappend cmd -p $p
-               }
-       } else {
-               # git commit-tree writes to stderr during initial commit.
-               lappend cmd 2>/dev/null
+       foreach p [concat $PARENT $MERGE_HEAD] {
+               lappend cmd -p $p
        }
        lappend cmd <$msg_p
        if {[catch {set cmt_id [eval exec $cmd]} err]} {
@@ -5256,6 +5268,12 @@ if {[is_enabled branch]} {
                -font font_ui
        lappend disable_on_lock [list .mbar.branch entryconf \
                [.mbar.branch index last] -state]
+
+       .mbar.branch add command -label {Reset...} \
+               -command do_reset_hard \
+               -font font_ui
+       lappend disable_on_lock [list .mbar.branch entryconf \
+               [.mbar.branch index last] -state]
 }
 
 # -- Commit Menu
@@ -5330,6 +5348,34 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
                [list .mbar.commit entryconf [.mbar.commit index last] -state]
 }
 
+# -- Merge Menu
+#
+if {[is_enabled branch]} {
+       menu .mbar.merge
+       .mbar.merge add command -label {Local Merge...} \
+               -command do_local_merge \
+               -font font_ui
+       lappend disable_on_lock \
+               [list .mbar.merge entryconf [.mbar.merge index last] -state]
+       .mbar.merge add command -label {Abort Merge...} \
+               -command do_reset_hard \
+               -font font_ui
+       lappend disable_on_lock \
+               [list .mbar.merge entryconf [.mbar.merge index last] -state]
+
+}
+
+# -- Transport Menu
+#
+if {[is_enabled transport]} {
+       menu .mbar.fetch
+
+       menu .mbar.push
+       .mbar.push add command -label {Push...} \
+               -command do_push_anywhere \
+               -font font_ui
+}
+
 if {[is_MacOSX]} {
        # -- Apple Menu (Mac OS X only)
        #
@@ -5502,28 +5548,6 @@ pack .branch.l1 -side left
 pack .branch.cb -side left -fill x
 pack .branch -side top -fill x
 
-if {[is_enabled branch]} {
-       menu .mbar.merge
-       .mbar.merge add command -label {Local Merge...} \
-               -command do_local_merge \
-               -font font_ui
-       lappend disable_on_lock \
-               [list .mbar.merge entryconf [.mbar.merge index last] -state]
-       .mbar.merge add command -label {Abort Merge...} \
-               -command do_reset_hard \
-               -font font_ui
-       lappend disable_on_lock \
-               [list .mbar.merge entryconf [.mbar.merge index last] -state]
-
-
-       menu .mbar.fetch
-
-       menu .mbar.push
-       .mbar.push add command -label {Push...} \
-               -command do_push_anywhere \
-               -font font_ui
-}
-
 # -- Main Window Layout
 #
 panedwindow .vpane -orient vertical