Code

tigrc(5): suggest git aliases for external commands requiring shell ops
authorJonas Fonseca <fonseca@diku.dk>
Fri, 13 Feb 2009 17:08:36 +0000 (18:08 +0100)
committerJonas Fonseca <fonseca@diku.dk>
Fri, 13 Feb 2009 17:11:05 +0000 (18:11 +0100)
NEWS
tigrc.5.txt

diff --git a/NEWS b/NEWS
index 7bd288942eaa18190c09080e604ed0fa1e4e7f6b..e374662d1dcc0f3b8eeaaa218b0ecf39ad5e37d3 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -71,7 +71,7 @@ Incompatibilities:
  - Commands from the environment (e.g. TIG_MAIN_CMD) will no longer have
    access to shell features, such as subshells and variable expansion.
    The easiest way to upgrade your configuration is to put such commands
-   in a script file.
+   in a script file or as a git alias.
 
 Improvements:
 
index 59149acf78bb3cd9e74e538af1eac00ec6678ecd..a633e833fff71ecd41e086786fad900de8aa3b8f 100644 (file)
@@ -221,7 +221,20 @@ Browsing state variables
 ------------------------------------------------------------------------------
 
 As an example, the following external command will save the current commit as
-a patch file: "!git format-patch -1 %(commit)".
+a patch file: "!git format-patch -1 %(commit)". If your external command
+require use of dynamic features, such as subshells, expansion of environment
+variables and process control, this can be achieved by using a combination of
+git aliases and tig external commands. The following example entries can be
+put in either the .gitconfig or .git/config file:
+
+--------------------------------------------------------------------------
+[alias]
+       gitk-bg = !"gitk HEAD --not $(git rev-parse --remotes) &"
+       publish = !"for i in origin public; do git push $i; done"
+[tig "bind"]
+       generic = V !git gitk-bg
+       generic = > !git publish
+--------------------------------------------------------------------------
 
 ifdef::backend-xhtml11[]
 [frame="none"]