We can be clever and know by ourselves when we need the behavior implied by "--remap-to-ancestor". No need to encumber users by having them exposed to it as a tunable. --- git-filter-branch.sh | 14 ++++++++------ t/t7003-filter-branch.sh | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/git-filter-branch.sh b/git-filter-branch.sh index 88fb0f0..fd5caaa 100755 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -138,11 +138,6 @@ do force=t continue ;; - --remap-to-ancestor) - shift - remap_to_ancestor=t - continue - ;; --prune-empty) shift prune_empty=t @@ -265,7 +260,14 @@ mkdir ../map || die "Could not create map/ directory" # we need "--" only if there are no path arguments in $@ nonrevs=$(git rev-parse --no-revs "$@") || exit -test -z "$nonrevs" && dashdash=-- || dashdash= +if test -z "$nonrevs" +then + dashdash=-- +else + dashdash= + remap_to_ancestor=t +fi + rev_args=$(git rev-parse --revs-only "$@") case "$filter_subdir" in diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh index 2c55801..486c453 100755 --- a/t/t7003-filter-branch.sh +++ b/t/t7003-filter-branch.sh @@ -289,7 +289,7 @@ test_expect_success 'Prune empty commits' ' test_cmp expect actual ' -test_expect_success '--remap-to-ancestor with filename filters' ' +test_expect_success 'filename filters work even if the given files are not changed in branch head' ' git checkout master && git reset --hard A && test_commit add-foo foo 1 && @@ -299,7 +299,7 @@ test_expect_success '--remap-to-ancestor with filename filters' ' orig_invariant=$(git rev-parse invariant) && git branch moved-bar && test_commit change-foo foo 2 && - git filter-branch -f --remap-to-ancestor \ + git filter-branch -f \ moved-foo moved-bar A..master \ -- -- foo && test $(git rev-parse moved-foo) = $(git rev-parse moved-bar) && -- 1.7.2.2 -- 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