Add git-filter-branch
This script is derived from Pasky's cg-admin-rewritehist. In fact, it _is_ the same script, minimally adapted to work without cogito. It _should_ be able to perform the same tasks, even if only relying on core-git programs. All the work is Pasky's, just the adaption is mine. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Hopefully-signed-off-by: Petr "cogito master" Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:

committed by
Junio C Hamano

parent
c94bf41c9a
commit
6f6826c52b
47
t/t7003-filter-branch.sh
Executable file
47
t/t7003-filter-branch.sh
Executable file
@ -0,0 +1,47 @@
|
||||
#!/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
|
||||
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)
|
||||
'
|
||||
|
||||
test_done
|
Reference in New Issue
Block a user