Subject: [PATCH] filter-branch: retire --remap-to-ancestor

From: Csaba Henk <[email-masked]>
Date: Thu, 26 Aug 2010 14:52:33 +0530

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