diff options
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | 2007-06-21 18:05:30 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-06-22 23:20:44 -0700 |
commit | 55f22ff22e5ff6c21b50cf379ee946f9642fc3cb (patch) | |
tree | ef05d9f0d243f8149f880953628948e7f6935687 | |
parent | Merge branch 'js/filter' (diff) | |
download | tgif-55f22ff22e5ff6c21b50cf379ee946f9642fc3cb.tar.xz |
filter-branch: add example to move everything into a subdirectory
This is based on Jeff King's example in
20070621130137.GB4487@coredump.intra.peff.net
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--[-rwxr-xr-x] | git-filter-branch.sh | 8 | ||||
-rwxr-xr-x | t/t7003-filter-branch.sh | 8 |
2 files changed, 16 insertions, 0 deletions
diff --git a/git-filter-branch.sh b/git-filter-branch.sh index bfd118cd3b..8fa5ce6467 100755..100644 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -178,6 +178,14 @@ # # git-filter-branch ... new-H C..H --not D # git-filter-branch ... new-H D..H --not C +# +# To move the whole tree into a subdirectory, or remove it from there: +# +# git-filter-branch --index-filter \ +# 'git-ls-files -s | sed "s-\t-&newsubdir/-" | +# GIT_INDEX_FILE=$GIT_INDEX_FILE.new \ +# git-update-index --index-info && +# mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' directorymoved # Testsuite: TODO diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh index 0fabe4904f..f00c262e45 100755 --- a/t/t7003-filter-branch.sh +++ b/t/t7003-filter-branch.sh @@ -99,4 +99,12 @@ test_expect_success 'subdirectory filter result looks okay' ' ! git show sub:subdir ' +test_expect_success 'use index-filter to move into a subdirectory' ' + git-filter-branch --index-filter \ + "git-ls-files -s | sed \"s-\\t-&newsubdir/-\" | + GIT_INDEX_FILE=\$GIT_INDEX_FILE.new \ + git-update-index --index-info && + mv \$GIT_INDEX_FILE.new \$GIT_INDEX_FILE" directorymoved && + test -z "$(git diff HEAD directorymoved:newsubdir)"' + test_done |