Testing for whether command line arguments were supplied was being
performed during option parsing. This had the side effect of
printing usage information when a more appropriate error message
would have been printed had the script been allowed to continue.
Now this:
git filter-branch
will print usage information.
And these:
git filter-branch -d /tmp/work-dir
git filter-branch <non-existant-revision>
git filter-branch --
git filter-branch -- <non-existant-revision>
will print a message informing the user that filter-branch did
not know which reference to rewrite. Without this patch the
one with '-d' would also print usage information.
Signed-off-by: Brandon Casey <redacted>
---
I prefer my original patch since I think it is consistent
with the git interface.
-brandon
git-filter-branch.sh | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index ebf05ca..5e3fe70 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -97,6 +97,8 @@ USAGE="[--env-filter <command>] [--tree-filter <command>] \
OPTIONS_SPEC=
. git-sh-setup
+test $# = 0 && usage
+
git diff-files --quiet &&
git diff-index --cached --quiet HEAD -- ||
die "Cannot rewrite branch(es) with a dirty working directory."
@@ -114,7 +116,6 @@ orig_namespace=refs/original/
force=
while :
do
- test $# = 0 && usage
case "$1" in
--)
shift
--
1.5.4.rc5.14.gaa8fc