Code

filter-branch: fail gracefully when a filter fails
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Wed, 4 Jul 2007 14:36:01 +0000 (15:36 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 6 Jul 2007 05:16:28 +0000 (22:16 -0700)
commit8c1ce0f46b85d40f215084eed7313896300082df
tree6b53a8be6d9c755f0b64c00ad920b318f770412b
parent09ff69bb39b386e24a39723d9e20263a915bc6d6
filter-branch: fail gracefully when a filter fails

A common mistake is to provide a filter which fails unwantedly. For
example, this will stop in the middle:

git filter-branch --env-filter '
test $GIT_COMMITTER_EMAIL = xyz &&
export GIT_COMMITTER_EMAIL = abc' rewritten

When $GIT_COMMITTER_EMAIL is not "xyz", the test fails, and consequently
the whole filter has a non-zero exit status. However, as demonstrated
in this example, filter-branch would just stop, and the user would be
none the wiser.

Also, a failing msg-filter would not have been caught, as was the
case with one of the tests.

This patch fixes both issues, by paying attention to the exit status
of msg-filter, and by saying what failed before exiting.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-filter-branch.sh [changed mode: 0644->0755]
t/t7003-filter-branch.sh