diff options
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | 2007-06-08 01:30:35 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-06-09 12:16:49 -0700 |
commit | 685ef546b62d063c72b401cd38b83a879301aac4 (patch) | |
tree | e77b86327c888b55739f79c1ca939b89f947e193 /t | |
parent | 3520e1e86878c6787c3abfe677e6472ce2c97f66 (diff) | |
download | git-685ef546b62d063c72b401cd38b83a879301aac4.tar.gz git-685ef546b62d063c72b401cd38b83a879301aac4.tar.xz |
Teach filter-branch about subdirectory filtering
With git-filter-branch --subdirectory-filter <subdirectory> you can
get at the history, as seen by a certain subdirectory. The history
of the rewritten branch will only contain commits that touched that
subdirectory, and the subdirectory will be rewritten to be the new
project root.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-x | t/t7003-filter-branch.sh | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh index 3739cb191..292b83766 100755 --- a/t/t7003-filter-branch.sh +++ b/t/t7003-filter-branch.sh @@ -54,4 +54,28 @@ test_expect_success 'common ancestor is still common (unchanged)' ' test "$(git-merge-base modD D)" = "$(git-rev-parse B)" ' +test_expect_success 'filter subdirectory only' ' + mkdir subdir && + touch subdir/new && + git add subdir/new && + test_tick && + git commit -m "subdir" && + echo H > a && + test_tick && + git commit -m "not subdir" a && + echo A > subdir/new && + test_tick && + git commit -m "again subdir" subdir/new && + git rm a && + test_tick && + git commit -m "again not subdir" && + git-filter-branch --subdirectory-filter subdir sub +' + +test_expect_success 'subdirectory filter result looks okay' ' + test 2 = $(git-rev-list sub | wc -l) && + git show sub:new && + ! git show sub:subdir +' + test_done |