filter-branch documentation: some more touch-ups.

- The map function used to fail, but no longer does (since 3520e1e8687.)
- Fix the "edge-graft" example.
- Show the same using .git/info/grafts.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Sixt
2007-07-04 09:32:47 +02:00
committed by Junio C Hamano
parent b5669a0504
commit 32c37c1237

View File

@ -58,8 +58,9 @@ and GIT_COMMITTER_DATE are set according to the current commit.
A 'map' function is available that takes an "original sha1 id" argument A 'map' function is available that takes an "original sha1 id" argument
and outputs a "rewritten sha1 id" if the commit has been already and outputs a "rewritten sha1 id" if the commit has been already
rewritten, fails otherwise; the 'map' function can return several rewritten, and "original sha1 id" otherwise; the 'map' function can
ids on separate lines if your commit filter emitted multiple commits. return several ids on separate lines if your commit filter emitted
multiple commits.
OPTIONS OPTIONS
@ -166,12 +167,13 @@ git filter-branch --index-filter 'git update-index --remove filename' newbranch
Now, you will get the rewritten history saved in the branch 'newbranch' Now, you will get the rewritten history saved in the branch 'newbranch'
(your current branch is left untouched). (your current branch is left untouched).
To "etch-graft" a commit to the revision history (set a commit to be To set a commit (which typically is at the tip of another
the parent of the current initial commit and propagate that): history) to be the parent of the current initial commit, in
order to paste the other history behind the current history:
---------------------------------------------------------------------- ------------------------------------------------------------------------
git filter-branch --parent-filter sed\ 's/^$/-p <graft-id>/' newbranch git filter-branch --parent-filter 'sed "s/^\$/-p <graft-id>/"' newbranch
---------------------------------------------------------------------- ------------------------------------------------------------------------
(if the parent string is empty - therefore we are dealing with the (if the parent string is empty - therefore we are dealing with the
initial commit - add graftcommit as a parent). Note that this assumes initial commit - add graftcommit as a parent). Note that this assumes
@ -183,6 +185,13 @@ git filter-branch --parent-filter \
'cat; test $GIT_COMMIT = <commit-id> && echo "-p <graft-id>"' newbranch 'cat; test $GIT_COMMIT = <commit-id> && echo "-p <graft-id>"' newbranch
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
or even simpler:
-----------------------------------------------
echo "$commit-id $graft-id" >> .git/info/grafts
git filter-branch newbranch $graft-id..
-----------------------------------------------
To remove commits authored by "Darl McBribe" from the history: To remove commits authored by "Darl McBribe" from the history:
------------------------------------------------------------------------------ ------------------------------------------------------------------------------