Browse Source

t3427: move the `filter-branch` invocation into the `setup` case

The step to prepare a pre-rebase commit history is _identical_ in _all_
of the test cases (except of course the `setup` case). It should
therefore clearly a part of the `setup` test case instead.

As the `git filter-branch` command is quite costly on platforms where
Unix shell scripting is simply slow (meaning: on Windows), this shaves
off a noticeable part of the runtime: in this developer's setup, the
time was reduced from ~1m25s to ~1m.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Johannes Schindelin 6 years ago committed by Junio C Hamano
parent
commit
d51b771dc0
  1. 38
      t/t3427-rebase-subtree.sh

38
t/t3427-rebase-subtree.sh

@ -56,16 +56,18 @@ test_expect_success 'setup' '


: add two extra commits to rebase && : add two extra commits to rebase &&
test_commit -C files_subtree master4 && test_commit -C files_subtree master4 &&
test_commit files_subtree/master5 test_commit files_subtree/master5 &&

git checkout -b to-rebase &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty
' '


# FAILURE: Does not preserve master4. # FAILURE: Does not preserve master4.
test_expect_failure REBASE_P \ test_expect_failure REBASE_P \
'Rebase -Xsubtree --preserve-merges --onto commit 4' ' 'Rebase -Xsubtree --preserve-merges --onto commit 4' '
reset_rebase && reset_rebase &&
git checkout -b rebase-preserve-merges-4 master && git checkout -b rebase-preserve-merges-4 to-rebase &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --preserve-merges --onto files-master master && git rebase -Xsubtree=files_subtree --preserve-merges --onto files-master master &&
verbose test "$(commit_message HEAD~)" = "files_subtree/master4" verbose test "$(commit_message HEAD~)" = "files_subtree/master4"
' '
@ -74,9 +76,7 @@ test_expect_failure REBASE_P \
test_expect_failure REBASE_P \ test_expect_failure REBASE_P \
'Rebase -Xsubtree --preserve-merges --onto commit 5' ' 'Rebase -Xsubtree --preserve-merges --onto commit 5' '
reset_rebase && reset_rebase &&
git checkout -b rebase-preserve-merges-5 master && git checkout -b rebase-preserve-merges-5 to-rebase &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --preserve-merges --onto files-master master && git rebase -Xsubtree=files_subtree --preserve-merges --onto files-master master &&
verbose test "$(commit_message HEAD)" = "files_subtree/master5" verbose test "$(commit_message HEAD)" = "files_subtree/master5"
' '
@ -85,9 +85,7 @@ test_expect_failure REBASE_P \
test_expect_failure REBASE_P \ test_expect_failure REBASE_P \
'Rebase -Xsubtree --keep-empty --preserve-merges --onto commit 4' ' 'Rebase -Xsubtree --keep-empty --preserve-merges --onto commit 4' '
reset_rebase && reset_rebase &&
git checkout -b rebase-keep-empty-4 master && git checkout -b rebase-keep-empty-4 to-rebase &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master && git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master &&
verbose test "$(commit_message HEAD~2)" = "files_subtree/master4" verbose test "$(commit_message HEAD~2)" = "files_subtree/master4"
' '
@ -96,9 +94,7 @@ test_expect_failure REBASE_P \
test_expect_failure REBASE_P \ test_expect_failure REBASE_P \
'Rebase -Xsubtree --keep-empty --preserve-merges --onto commit 5' ' 'Rebase -Xsubtree --keep-empty --preserve-merges --onto commit 5' '
reset_rebase && reset_rebase &&
git checkout -b rebase-keep-empty-5 master && git checkout -b rebase-keep-empty-5 to-rebase &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master && git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master &&
verbose test "$(commit_message HEAD~)" = "files_subtree/master5" verbose test "$(commit_message HEAD~)" = "files_subtree/master5"
' '
@ -107,9 +103,7 @@ test_expect_failure REBASE_P \
test_expect_failure REBASE_P \ test_expect_failure REBASE_P \
'Rebase -Xsubtree --keep-empty --preserve-merges --onto empty commit' ' 'Rebase -Xsubtree --keep-empty --preserve-merges --onto empty commit' '
reset_rebase && reset_rebase &&
git checkout -b rebase-keep-empty-empty master && git checkout -b rebase-keep-empty-empty to-rebase &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master && git rebase -Xsubtree=files_subtree --keep-empty --preserve-merges --onto files-master master &&
verbose test "$(commit_message HEAD)" = "Empty commit" verbose test "$(commit_message HEAD)" = "Empty commit"
' '
@ -117,9 +111,7 @@ test_expect_failure REBASE_P \
# FAILURE: fatal: Could not parse object # FAILURE: fatal: Could not parse object
test_expect_failure 'Rebase -Xsubtree --onto commit 4' ' test_expect_failure 'Rebase -Xsubtree --onto commit 4' '
reset_rebase && reset_rebase &&
git checkout -b rebase-onto-4 master && git checkout -b rebase-onto-4 to-rebase &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --onto files-master master && git rebase -Xsubtree=files_subtree --onto files-master master &&
verbose test "$(commit_message HEAD~2)" = "files_subtree/master4" verbose test "$(commit_message HEAD~2)" = "files_subtree/master4"
' '
@ -127,18 +119,14 @@ test_expect_failure 'Rebase -Xsubtree --onto commit 4' '
# FAILURE: fatal: Could not parse object # FAILURE: fatal: Could not parse object
test_expect_failure 'Rebase -Xsubtree --onto commit 5' ' test_expect_failure 'Rebase -Xsubtree --onto commit 5' '
reset_rebase && reset_rebase &&
git checkout -b rebase-onto-5 master && git checkout -b rebase-onto-5 to-rebase &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --onto files-master master && git rebase -Xsubtree=files_subtree --onto files-master master &&
verbose test "$(commit_message HEAD~)" = "files_subtree/master5" verbose test "$(commit_message HEAD~)" = "files_subtree/master5"
' '
# FAILURE: fatal: Could not parse object # FAILURE: fatal: Could not parse object
test_expect_failure 'Rebase -Xsubtree --onto empty commit' ' test_expect_failure 'Rebase -Xsubtree --onto empty commit' '
reset_rebase && reset_rebase &&
git checkout -b rebase-onto-empty master && git checkout -b rebase-onto-empty to-rebase &&
git filter-branch --prune-empty -f --subdirectory-filter files_subtree &&
git commit -m "Empty commit" --allow-empty &&
git rebase -Xsubtree=files_subtree --onto files-master master && git rebase -Xsubtree=files_subtree --onto files-master master &&
verbose test "$(commit_message HEAD)" = "Empty commit" verbose test "$(commit_message HEAD)" = "Empty commit"
' '

Loading…
Cancel
Save