aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2007-06-06 16:08:34 -0700
committerJunio C Hamano <gitster@pobox.com>2007-06-06 16:08:34 -0700
commit3270736bd1e63c63679f64f8325690889322df08 (patch)
treee4af22350b2ef1fcb8a614fb51271098dd7fae44 /t
parentf4f51add2712293b7bc9e7aaebf6a589bb37c7c7 (diff)
parent3520e1e86878c6787c3abfe677e6472ce2c97f66 (diff)
downloadgit-3270736bd1e63c63679f64f8325690889322df08.tar.gz
git-3270736bd1e63c63679f64f8325690889322df08.tar.xz
Merge branch 'js/filter' into ei/worktree+filter
* js/filter: filter-branch: also don't fail in map() if a commit cannot be mapped filter-branch: Use rev-list arguments to specify revision ranges. filter-branch: fix behaviour of '-k' filter-branch: use $(($i+1)) instead of $((i+1)) chmod +x git-filter-branch.sh filter-branch: prevent filters from reading from stdin t7003: make test repeatable Add git-filter-branch
Diffstat (limited to 't')
-rwxr-xr-xt/t7003-filter-branch.sh57
1 files changed, 57 insertions, 0 deletions
diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh
new file mode 100755
index 000000000..3739cb191
--- /dev/null
+++ b/t/t7003-filter-branch.sh
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+test_description='git-filter-branch'
+. ./test-lib.sh
+
+make_commit () {
+ lower=$(echo $1 | tr A-Z a-z)
+ echo $lower > $lower
+ git add $lower
+ test_tick
+ git commit -m $1
+ git tag $1
+}
+
+test_expect_success 'setup' '
+ make_commit A
+ make_commit B
+ git checkout -b branch B
+ make_commit D
+ make_commit E
+ git checkout master
+ make_commit C
+ git checkout branch
+ git merge C
+ git tag F
+ make_commit G
+ make_commit H
+'
+
+H=$(git-rev-parse H)
+
+test_expect_success 'rewrite identically' '
+ git-filter-branch H2
+'
+
+test_expect_success 'result is really identical' '
+ test $H = $(git-rev-parse H2)
+'
+
+test_expect_success 'rewrite, renaming a specific file' '
+ git-filter-branch --tree-filter "mv d doh || :" H3
+'
+
+test_expect_success 'test that the file was renamed' '
+ test d = $(git show H3:doh)
+'
+
+git tag oldD H3~4
+test_expect_success 'rewrite one branch, keeping a side branch' '
+ git-filter-branch --tree-filter "mv b boh || :" modD D..oldD
+'
+
+test_expect_success 'common ancestor is still common (unchanged)' '
+ test "$(git-merge-base modD D)" = "$(git-rev-parse B)"
+'
+
+test_done