summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichele Locati <michele@locati.it>2018-03-15 18:09:18 +0100
committerJunio C Hamano <gitster@pobox.com>2018-03-15 10:41:51 -0700
commit0a0eb2e585788567094248652fc20450a0db642b (patch)
tree69e102a753ff6042747c5466dae8f58bfa2081a1
parent38e79b1fdab9244e1727d0698afcf3bb8956c0a4 (diff)
downloadgit-ml/filter-branch-no-op-error.tar.gz
filter-branch: return 2 when nothing to rewriteml/filter-branch-no-op-error
Using the --state-branch option allows us to perform incremental filtering. This may lead to having nothing to rewrite in subsequent filtering, so we need a way to recognize this case. So, let's exit with 2 instead of 1 when this "error" occurs. Signed-off-by: Michele Locati <michele@locati.it> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Documentation/git-filter-branch.txt8
-rwxr-xr-xgit-filter-branch.sh2
2 files changed, 9 insertions, 1 deletions
diff --git a/Documentation/git-filter-branch.txt b/Documentation/git-filter-branch.txt
index 3a52e4dce3..b634043183 100644
--- a/Documentation/git-filter-branch.txt
+++ b/Documentation/git-filter-branch.txt
@@ -222,6 +222,14 @@ this purpose, they are instead rewritten to point at the nearest ancestor that
was not excluded.
+EXIT STATUS
+-----------
+
+On success, the exit status is `0`. If the filter can't find any commits to
+rewrite, the exit status is `2`. On any other error, the exit status may be
+any other non-zero value.
+
+
Examples
--------
diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 1b7e4b2cdb..c285fdb90d 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -310,7 +310,7 @@ git rev-list --reverse --topo-order --default HEAD \
die "Could not get the commits"
commits=$(wc -l <../revs | tr -d " ")
-test $commits -eq 0 && die "Found nothing to rewrite"
+test $commits -eq 0 && die_with_status 2 "Found nothing to rewrite"
# Rewrite the commits
report_progress ()