diff options
-rw-r--r-- | git-gui/Makefile | 22 | ||||
-rwxr-xr-x | git-gui/git-gui.sh | 84 |
2 files changed, 69 insertions, 37 deletions
diff --git a/git-gui/Makefile b/git-gui/Makefile index 66538ba1ad..e486e8f984 100644 --- a/git-gui/Makefile +++ b/git-gui/Makefile @@ -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) diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh index f84ba3382b..1981827a8e 100755 --- a/git-gui/git-gui.sh +++ b/git-gui/git-gui.sh @@ -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 |