filter-branch: introduce convenience function "skip_commit"
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Fri, 31 Aug 2007 19:06:27 +0000 (20:06 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sat, 1 Sep 2007 06:22:51 +0000 (23:22 -0700)
commitf95eef15f2f8a336b9a42749f5458c841a5a5d63
tree623a5f9e4d1f99d4056b51e4b68e77e4641bcdef
parent7e0f1704b837355d833d84d18a3811d145867b97
filter-branch: introduce convenience function "skip_commit"

With this function, a commit filter can leave out unwanted commits
(such as temporary commits).  It does _not_ undo the changeset
corresponding to that commit, but it _skips_ the revision.  IOW
no tree object is changed by this.

If you like to commit early and often, but want to filter out all
intermediate commits, marked by "@@@" in the commit message, you can
now do this with

git filter-branch --commit-filter '
if git cat-file commit $GIT_COMMIT | grep '@@@' > /dev/null;
then
skip_commit "$@";
else
git commit-tree "$@";
fi' newbranch

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-filter-branch.txt
git-filter-branch.sh
t/t7003-filter-branch.sh