Anonymous avatar Anonymous committed eec1025 Merge

Merge branch 'master' of git://repo.or.cz/git-gui into maint

* 'master' of git://repo.or.cz/git-gui:
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.

Comments (0)

Files changed (2)

 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
 	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)
 

git-gui/git-gui.sh

 		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]
 	# -- 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]} {
 		-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
 		[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)
 	#
 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
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.