summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-03-25 20:45:53 (GMT)
committerJunio C Hamano <gitster@pobox.com>2013-03-25 20:45:53 (GMT)
commita12816b7dc17f36ce6b6fad692da7197532c1ef4 (patch)
tree3209dfbb12b0fa3de331cf7c116cfd598a029405 /Documentation
parent2b0dda53189d3829e58187ee91143b35036573fb (diff)
parent21b6e4f24c74755d700d59edd47d5b88ff56ea5d (diff)
downloadgit-a12816b7dc17f36ce6b6fad692da7197532c1ef4.zip
git-a12816b7dc17f36ce6b6fad692da7197532c1ef4.tar.gz
git-a12816b7dc17f36ce6b6fad692da7197532c1ef4.tar.bz2
Merge branch 'tk/doc-filter-branch' into maint-1.8.1
Add an example use of "--env-filter" in "filter-branch" documentation. * tk/doc-filter-branch: Documentation: filter-branch env-filter example git-filter-branch.txt: clarify ident variables usage
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/git-filter-branch.txt27
1 files changed, 25 insertions, 2 deletions
diff --git a/Documentation/git-filter-branch.txt b/Documentation/git-filter-branch.txt
index e2301f5..69a40b2 100644
--- a/Documentation/git-filter-branch.txt
+++ b/Documentation/git-filter-branch.txt
@@ -64,8 +64,11 @@ argument is always evaluated in the shell context using the 'eval' command
Prior to that, the $GIT_COMMIT environment variable will be set to contain
the id of the commit being rewritten. Also, GIT_AUTHOR_NAME,
GIT_AUTHOR_EMAIL, GIT_AUTHOR_DATE, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL,
-and GIT_COMMITTER_DATE are set according to the current commit. The values
-of these variables after the filters have run, are used for the new commit.
+and GIT_COMMITTER_DATE are taken from the current commit and exported to
+the environment, in order to affect the author and committer identities of
+the replacement commit created by linkgit:git-commit-tree[1] after the
+filters have run.
+
If any evaluation of <command> returns a non-zero exit status, the whole
operation will be aborted.
@@ -329,6 +332,26 @@ git filter-branch --msg-filter '
' HEAD~10..HEAD
--------------------------------------------------------
+The `--env-filter` option can be used to modify committer and/or author
+identity. For example, if you found out that your commits have the wrong
+identity due to a misconfigured user.email, you can make a correction,
+before publishing the project, like this:
+
+--------------------------------------------------------
+git filter-branch --env-filter '
+ if test "$GIT_AUTHOR_EMAIL" = "root@localhost"
+ then
+ GIT_AUTHOR_EMAIL=john@example.com
+ export GIT_AUTHOR_EMAIL
+ fi
+ if test "$GIT_COMMITTER_EMAIL" = "root@localhost"
+ then
+ GIT_COMMITTER_EMAIL=john@example.com
+ export GIT_COMMITTER_EMAIL
+ fi
+' -- --all
+--------------------------------------------------------
+
To restrict rewriting to only part of the history, specify a revision
range in addition to the new branch name. The new branch name will
point to the top-most revision that a 'git rev-list' of this range