Subject: [PATCH] gitk: add option to perform 'git fetch' command

From: "Vladimir Chigarev via GitGitGadget" <[email-masked]>
Date: Fri, 22 Jan 2021 15:16:34 +0000

From: Vladimir Chigarev <[email-masked]>

There wasn't ability to perform 'git fetch' from gitk tool.
Add 'Fetch' option to 'File' menu.
Bind it to 'F7' key.

Signed-off-by: Vladimir Chigarev <[email-masked]>
---
    gitk: add option to perform 'git fetch' command
    
    There wasn't ability to perform 'git fetch' from gitk tool. Add 'Fetch'
    option to 'File' menu. Bind it to 'F7' key.

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-872%2Fchiga17%2Fgitk-fetch-option-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-872/chiga17/gitk-fetch-option-v1
Pull-Request: https://github.com/git/git/pull/872

 gitk-git/gitk | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gitk-git/gitk b/gitk-git/gitk
index 23d9dd1fe0d..1756385886f 100755
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -499,6 +499,34 @@ proc getcommits {selid} {
     }
 }
 
+proc fetch {} {
+    global bgcolor NS fetch_output
+
+    set fetch_output {}
+    if {[catch {exec sh -c "git fetch -v 2>&1"} fetch_output]} {
+    }
+
+    set w .about
+    if {[winfo exists $w]} {
+	raise $w
+	return
+    }
+    ttk_toplevel $w
+    wm title $w [mc "Fetch"]
+    make_transient $w .
+    message $w.m -text [mc " $fetch_output "] \
+	    -justify left -aspect 600 -border 2 -bg $bgcolor -relief groove
+    pack $w.m -side top -fill x -padx 2 -pady 2
+    ${NS}::button $w.ok -text [mc "Close"] -command "destroy $w" -default active
+    pack $w.ok -side bottom
+    bind $w <Visibility> "focus $w.ok"
+    bind $w <Key-Escape> "destroy $w"
+    bind $w <Key-Return> "destroy $w"
+    tk::PlaceWindow $w widget .
+
+    reloadcommits
+}
+
 proc updatecommits {} {
     global curview vcanopt vorigargs vfilelimit viewinstances
     global viewactive viewcomplete tclencoding
@@ -2089,6 +2117,7 @@ proc makewindow {} {
         mc "&File" cascade {
             {mc "&Update" command updatecommits -accelerator F5}
             {mc "&Reload" command reloadcommits -accelerator Shift-F5}
+            {mc "&Fetch" command fetch -accelerator F7}
             {mc "Reread re&ferences" command rereadrefs}
             {mc "&List references" command showrefs -accelerator F2}
             {xx "" separator}
@@ -2609,6 +2638,7 @@ proc makewindow {} {
     bindkey f nextfile
     bind . <F5> updatecommits
     bindmodfunctionkey Shift 5 reloadcommits
+    bind . <F7> fetch
     bind . <F2> showrefs
     bindmodfunctionkey Shift 4 {newview 0}
     bind . <F4> edit_or_newview
@@ -3125,6 +3155,7 @@ proc keys {} {
 [mc "<%s-KP->	Decrease font size" $M1T]
 [mc "<%s-minus>	Decrease font size" $M1T]
 [mc "<F5>		Update"]
+[mc "<F7>		Fetch"]
 " \
             -justify left -bg $bgcolor -border 2 -relief groove
     pack $w.m -side top -fill both -padx 2 -pady 2

base-commit: 72c4083ddf91b489b7b7b812df67ee8842177d98
-- 
gitgitgadget