diff options
author | Devin J. Pohly <djpohly@gmail.com> | 2017-02-23 02:27:35 -0600 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-03-03 12:43:37 -0800 |
commit | a582a82d2444b627260a764c17d3137d9d255531 (patch) | |
tree | e352502dbc0c4427e4b582040a36cbab4145eda9 /t/t7003-filter-branch.sh | |
parent | t7003: ensure --prune-empty removes entire branch when applicable (diff) | |
download | tgif-a582a82d2444b627260a764c17d3137d9d255531.tar.xz |
filter-branch: fix --prune-empty on parentless commits
Previously, the git_commit_non_empty_tree function would always pass any
commit with no parents to git-commit-tree, regardless of whether the
tree was nonempty. The new commit would then be recorded in the
filter-branch revision map, and subsequent commits which leave the tree
untouched would be correctly filtered.
With this change, parentless commits with an empty tree are correctly
pruned, and an empty file is recorded in the revision map, signifying
that it was rewritten to "no commits." This works naturally with the
parent mapping for subsequent commits.
Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t7003-filter-branch.sh')
-rwxr-xr-x | t/t7003-filter-branch.sh | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh index 40526d1716..7cb60799be 100755 --- a/t/t7003-filter-branch.sh +++ b/t/t7003-filter-branch.sh @@ -362,7 +362,7 @@ test_expect_success 'prune empty works even without index/tree filters' ' test_cmp expect actual ' -test_expect_failure '--prune-empty is able to prune root commit' ' +test_expect_success '--prune-empty is able to prune root commit' ' git rev-list branch-no-a >expect && git branch testing H && git filter-branch -f --prune-empty --index-filter "git update-index --remove A.t" testing && @@ -371,7 +371,7 @@ test_expect_failure '--prune-empty is able to prune root commit' ' test_cmp expect actual ' -test_expect_failure '--prune-empty is able to prune entire branch' ' +test_expect_success '--prune-empty is able to prune entire branch' ' git branch prune-entire B && git filter-branch -f --prune-empty --index-filter "git update-index --remove A.t B.t" prune-entire && test_path_is_missing .git/refs/heads/prune-entire && |