git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v3] git-gui: add hotkey to toggle "Amend Last Commit"

From
Birger Skogeng Pedersen <birger.sp@gmail.com>
Date
Sep 12, 2019, 18:41 UTC
Message-ID
<20190912184100.8212-1-birger.sp@gmail.com>
In-Reply-To
<20190912162924.phb5o2ppovnxa7nn@yadavpratyush.com>

Selecting whether to do a "New Commit" or "Amend Last Commit" does not have a hotkey.

With this patch, the user may toggle between the two options with CTRL/CMD+e.

Signed-off-by: Birger Skogeng Pedersen <birger.sp@gmail.com>
Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
---
 git-gui.sh | 41 ++++++++++++++++++++++++++++++++++++-----
 1 file changed, 36 insertions(+), 5 deletions(-)
diff --git a/git-gui.sh b/git-gui.sh
index 5bc21b8..ebe267f 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -1445,7 +1445,7 @@ proc force_amend {} {
 	set commit_type $newType
 
 	set selected_commit_type amend
-	do_select_commit_type
+	ui_select_commit_type
 }
 
 proc rescan {after {honor_trustmtime 1}} {
@@ -2640,6 +2640,16 @@ proc show_less_context {} {
 	}
 }
 
+proc toggle_commit_type {} {
+	global selected_commit_type
+	if {[string match amend* $selected_commit_type]} {
+		set selected_commit_type new
+	} else {
+		set selected_commit_type amend
+	}
+	ui_select_commit_type
+}
+
 ######################################################################
 ##
 ## ui construction
@@ -2824,13 +2834,31 @@ proc commit_btn_caption {} {
 	}
 }
 
+proc ui_select_commit_type {} {
+	global selected_commit_type
+	global ui_commit_type_commit ui_commit_type_amend
+
+	do_select_commit_type
+	if {$selected_commit_type eq {new}} {
+		.mbar.commit entryconf [mc "New Commit"] \
+			-accelerator {}
+		.mbar.commit entryconf [mc "Amend Last Commit"] \
+			-accelerator $::M1T-E
+	} elseif {$selected_commit_type eq {amend}} {
+		.mbar.commit entryconf [mc "New Commit"] \
+			-accelerator $::M1T-E
+		.mbar.commit entryconf [mc "Amend Last Commit"] \
+			-accelerator {}
+	}
+}
+
 if {[is_enabled multicommit] || [is_enabled singlecommit]} {
 	menu .mbar.commit
 
 	if {![is_enabled nocommit]} {
 		.mbar.commit add radiobutton \
 			-label [mc "New Commit"] \
-			-command do_select_commit_type \
+			-command ui_select_commit_type \
 			-variable selected_commit_type \
 			-value new
 		lappend disable_on_lock \
@@ -2838,7 +2866,8 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
 
 		.mbar.commit add radiobutton \
 			-label [mc "Amend Last Commit"] \
-			-command do_select_commit_type \
+			-accelerator $M1T-E \
+			-command ui_select_commit_type \
 			-variable selected_commit_type \
 			-value amend
 		lappend disable_on_lock \
@@ -3315,14 +3344,14 @@ set ui_coml .vpane.lower.commarea.buffer.header.l
 if {![is_enabled nocommit]} {
 	${NS}::radiobutton .vpane.lower.commarea.buffer.header.new \
 		-text [mc "New Commit"] \
-		-command do_select_commit_type \
+		-command ui_select_commit_type \
 		-variable selected_commit_type \
 		-value new
 	lappend disable_on_lock \
 		[list .vpane.lower.commarea.buffer.header.new conf -state]
 	${NS}::radiobutton .vpane.lower.commarea.buffer.header.amend \
 		-text [mc "Amend Last Commit"] \
-		-command do_select_commit_type \
+		-command ui_select_commit_type \
 		-variable selected_commit_type \
 		-value amend
 	lappend disable_on_lock \
@@ -3837,6 +3866,8 @@ bind .   <$M1B-Key-j> do_revert_selection
 bind .   <$M1B-Key-J> do_revert_selection
 bind .   <$M1B-Key-i> do_add_all
 bind .   <$M1B-Key-I> do_add_all
+bind .   <$M1B-Key-e> toggle_commit_type
+bind .   <$M1B-Key-E> toggle_commit_type
 bind .   <$M1B-Key-minus> {show_less_context;break}
 bind .   <$M1B-Key-KP_Subtract> {show_less_context;break}
 bind .   <$M1B-Key-equal> {show_more_context;break}
-- 
2.21.0.windows.1
Previous: Pratyush YadavNext: Pratyush Yadav
Message 6 of 24 in “git-gui: convert new/amend commit radiobutton to checketton”
  1. 1/2 git-gui: convert new/amend commit radiobutton to checkettonBert Wesarg, Sep 5, 2019
  2. 2/2 git-gui: add hotkey to toggle "Amend Last Commit" check button/menuBert Wesarg, Sep 5, 2019
  3. Pratyush YadavSep 11, 2019
  4. Birger Skogeng PedersenSep 12, 2019
  5. Pratyush YadavSep 12, 2019
  6. git-gui: add hotkey to toggle "Amend Last Commit"Birger Skogeng Pedersen, Sep 12, 2019
  7. Pratyush YadavSep 13, 2019
  8. git-gui: add hotkey to toggle "Amend Last Commit"Birger Skogeng Pedersen, Sep 13, 2019
  9. Birger Skogeng PedersenSep 13, 2019
  10. Pratyush YadavSep 13, 2019
  11. Birger Skogeng PedersenSep 14, 2019
  12. git-gui: add hotkey to toggle "Amend Last Commit"Birger Skogeng Pedersen, Sep 14, 2019
  13. Pratyush YadavSep 14, 2019
  14. Birger Skogeng PedersenSep 16, 2019
  15. Marc BranchaudSep 12, 2019
  16. Philip OakleySep 12, 2019
  17. Birger Skogeng PedersenSep 13, 2019
  18. Marc BranchaudSep 13, 2019
  19. Pratyush YadavSep 13, 2019
  20. Pratyush YadavSep 5, 2019
  21. Pratyush YadavSep 11, 2019
  22. Bert WesargSep 12, 2019
  23. Pratyush YadavSep 13, 2019
  24. Bert WesargSep 12, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.