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 <>
Hopefully-signed-off-by: default avatarPetr "cogito master" Baudis <>
Signed-off-by: default avatarJunio C Hamano <>
parent c94bf41c
......@@ -209,7 +209,8 @@ SCRIPT_SH = \ \ \ \ \
git-add--interactive.perl \
This diff is collapsed.
. ./
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)
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