Commit 6f6826c5 authored by Johannes Schindelin's avatar Johannes Schindelin Committed by Junio C Hamano

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's avatarJohannes Schindelin <johannes.schindelin@gmx.de>
Hopefully-signed-off-by: default avatarPetr "cogito master" Baudis <pasky@suse.cz>
Signed-off-by: default avatarJunio C Hamano <junkio@cox.net>
parent c94bf41c
......@@ -209,7 +209,8 @@ SCRIPT_SH = \
git-am.sh \
git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \
git-merge-resolve.sh git-merge-ours.sh \
git-lost-found.sh git-quiltimport.sh git-submodule.sh
git-lost-found.sh git-quiltimport.sh git-submodule.sh \
git-filter-branch.sh
SCRIPT_PERL = \
git-add--interactive.perl \
......
This diff is collapsed.
#!/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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment