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 <casey@xxxxxxxxxxxxxxx> --- 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 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html