All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heiko Voigt <hvoigt@hvoigt.net>
To: Paul Mackerras <paulus@samba.org>
Cc: git@vger.kernel.org
Subject: [GITK PATCH] gitk: add menuitem for file checkout from selected or parent commit
Date: Tue, 28 Sep 2010 22:03:45 +0200	[thread overview]
Message-ID: <20100928200344.GA12843@book.hvoigt.net> (raw)

This is useful if a user wants to checkout a file from a certain
commit. This is equivalent to

  git checkout $commit $file

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
---
 gitk     |   24 ++++++++++++++++++------
 po/de.po |    6 ++++++
 po/es.po |    6 ++++++
 po/fr.po |    6 ++++++
 po/hu.po |    6 ++++++
 po/it.po |    6 ++++++
 po/ja.po |    6 ++++++
 po/ru.po |    6 ++++++
 po/sv.po |    6 ++++++
 9 files changed, 66 insertions(+), 6 deletions(-)

diff --git a/gitk b/gitk
index 45e3380..c582bb5 100755
--- a/gitk
+++ b/gitk
@@ -2497,6 +2497,8 @@ proc makewindow {} {
 	{mc "Highlight this only" command {flist_hl 1}}
 	{mc "External diff" command {external_diff}}
 	{mc "Blame parent commit" command {external_blame 1}}
+	{mc "Checkout from this commit" command {external_checkout}}
+	{mc "Checkout from parent commit" command {external_checkout 1}}
     }
     $flist_menu configure -tearoff 0
 
@@ -3533,6 +3535,20 @@ proc make_relative {f} {
 }
 
 proc external_blame {parent_idx {line {}}} {
+
+    set cmdline [list git gui blame]
+    if {$line ne {} && $line > 1} {
+	lappend cmdline "--line=$line"
+    }
+    run_command_on_selected_file $cmdline $parent_idx
+}
+
+proc external_checkout {{parent_idx 0}} {
+    set cmdline [list git checkout]
+    run_command_on_selected_file $cmdline $parent_idx
+}
+
+proc run_command_on_selected_file {cmdline parent_idx} {
     global flist_menu_file gitdir
     global nullid nullid2
     global parentlist selectedline currentid
@@ -3548,17 +3564,13 @@ proc external_blame {parent_idx {line {}}} {
 	return
     }
 
-    set cmdline [list git gui blame]
-    if {$line ne {} && $line > 1} {
-	lappend cmdline "--line=$line"
-    }
     set f [file join [file dirname $gitdir] $flist_menu_file]
-    # Unfortunately it seems git gui blame doesn't like
+    # Unfortunately some commands do not like
     # being given an absolute path...
     set f [make_relative $f]
     lappend cmdline $base_commit $f
     if {[catch {eval exec $cmdline &} err]} {
-	error_popup "[mc "git gui blame: command failed:"] $err"
+	error_popup "[mc "$cmdline: command failed:"] $err"
     }
 }
 
diff --git a/po/de.po b/po/de.po
index bd194a3..8cfd299 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1276,3 +1276,9 @@ msgstr "Falsche Kommandozeilen-Parameter für gitk:"
 #: gitk:11587
 msgid "Command line"
 msgstr "Kommandozeile"
+
+msgid "Checkout from this commit"
+msgstr ""
+
+msgid "Checkout from parent commit"
+msgstr ""
diff --git a/po/es.po b/po/es.po
index 0471dd0..a3092e0 100644
--- a/po/es.po
+++ b/po/es.po
@@ -909,3 +909,9 @@ msgstr "Argumentos incorrectos a Gitk:"
 #: gitk:10170
 msgid "Command line"
 msgstr "Línea de comandos"
+
+msgid "Checkout from this commit"
+msgstr ""
+
+msgid "Checkout from parent commit"
+msgstr ""
diff --git a/po/fr.po b/po/fr.po
index 5370ddc..e58cbdd 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1252,3 +1252,9 @@ msgstr "Arguments invalides pour gitk :"
 #: gitk:11249
 msgid "Command line"
 msgstr "Ligne de commande"
+
+msgid "Checkout from this commit"
+msgstr ""
+
+msgid "Checkout from parent commit"
+msgstr ""
diff --git a/po/hu.po b/po/hu.po
index 7262b61..9237d2a 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -1293,3 +1293,9 @@ msgstr "Parancs sor"
 #~ msgstr ""
 #~ "Sajnáljuk, de a gitk nem futtatható ezzel a Tcl/Tk verzióval.\n"
 #~ "Gitk futtatásához legalább Tcl/Tk 8.4 szükséges."
+
+msgid "Checkout from this commit"
+msgstr ""
+
+msgid "Checkout from parent commit"
+msgstr ""
diff --git a/po/it.po b/po/it.po
index a730d63..6e0b76f 100644
--- a/po/it.po
+++ b/po/it.po
@@ -1274,3 +1274,9 @@ msgstr "Gitk: argomenti errati:"
 #: gitk:11587
 msgid "Command line"
 msgstr "Linea di comando"
+
+msgid "Checkout from this commit"
+msgstr ""
+
+msgid "Checkout from parent commit"
+msgstr ""
diff --git a/po/ja.po b/po/ja.po
index 4f47051..b47faab 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -1253,3 +1253,9 @@ msgstr "gitkへの不正な引数:"
 #: gitk:11316
 msgid "Command line"
 msgstr "コマンド行"
+
+msgid "Checkout from this commit"
+msgstr ""
+
+msgid "Checkout from parent commit"
+msgstr ""
diff --git a/po/ru.po b/po/ru.po
index c3d0285..f136ec1 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -1083,3 +1083,9 @@ msgstr "Неправильные аргументы для gitk:"
 msgid "Command line"
 msgstr "Командная строка"
 
+msgid "Checkout from this commit"
+msgstr ""
+
+msgid "Checkout from parent commit"
+msgstr ""
+
diff --git a/po/sv.po b/po/sv.po
index 386763a..b079016 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1295,3 +1295,9 @@ msgstr "Kommandorad"
 
 #~ msgid "Name"
 #~ msgstr "Namn"
+
+msgid "Checkout from this commit"
+msgstr ""
+
+msgid "Checkout from parent commit"
+msgstr ""
-- 
1.7.2.2.177.geec0d

             reply	other threads:[~2010-09-28 20:03 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-28 20:03 Heiko Voigt [this message]
2010-09-28 21:09 ` [GITK PATCH] gitk: add menuitem for file checkout from selected or parent commit Ævar Arnfjörð Bjarmason
2010-09-29 15:23   ` Heiko Voigt
2010-09-29 15:48     ` Ævar Arnfjörð Bjarmason
2010-09-30 18:29       ` [PATCH v2] gitk: add menuitem for file checkout from this " Heiko Voigt
2010-09-29 15:27 ` [GITK PATCH] gitk: add menuitem for file checkout from selected " Michele Ballabio
2010-12-11 23:23 ` Paul Mackerras
2010-12-13 21:46   ` [PATCH v3] gitk: add menuitem for file checkout from this " hvoigt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100928200344.GA12843@book.hvoigt.net \
    --to=hvoigt@hvoigt.net \
    --cc=git@vger.kernel.org \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.