The following series is applicable on mj/pull-rebase-autostash. Thanks Eric and Junio for there comments on previous version[1] Changes made vs v1: * [Patch v1 4/5] is broken into three patches to increase readability of the patches. * [Patch 4/5] Factor out code in two functions test_pull_autostash() and test_pull_autostash_fail() instead of test_rebase_autostash() and test_rebase_no_autostash(). This leads to further simplification of code. Also removed two for-loops as they didn't provided the simplicity intended for. For-loop was over-intended. Corrected it. * Commit message for patches 1/5, 2/5, 3/5 are improved as suggested by Eric in the previous round. Here's interdiff with v1: diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh index 4da9e52..bed75f5 100755 --- a/t/t5520-pull.sh +++ b/t/t5520-pull.sh @@ -9,22 +9,22 @@ modify () { mv "$2.x" "$2" } -test_rebase_autostash () { +test_pull_autostash () { git reset --hard before-rebase && echo dirty >new_file && git add new_file && - git pull --rebase --autostash . copy && + git pull $@ . copy && test_cmp_rev HEAD^ copy && test "$(cat new_file)" = dirty && test "$(cat file)" = "modified again" } -test_rebase_no_autostash () { +test_pull_autostash_fail () { git reset --hard before-rebase && echo dirty >new_file && git add new_file && - test_must_fail git pull --rebase --no-autostash . copy 2>err && - test_i18ngrep "Cannot pull with rebase: Your index contains uncommitted changes." err + test_must_fail git pull $@ . copy 2>err && + test_i18ngrep "uncommitted changes." err } test_expect_success setup ' @@ -265,48 +265,46 @@ test_expect_success '--rebase fails with multiple branches' ' test_expect_success 'pull --rebase succeeds with dirty working directory and rebase.autostash set' ' test_config rebase.autostash true && - git reset --hard before-rebase && - echo dirty >new_file && - git add new_file && - git pull --rebase . copy && - test_cmp_rev HEAD^ copy && - test "$(cat new_file)" = dirty && - test "$(cat file)" = "modified again" + test_pull_autostash --rebase +' + +test_expect_success 'pull --rebase --autostash & rebase.autostash=true' ' + test_config rebase.autostash true && + test_pull_autostash --rebase --autostash ' -for i in true false - do - test_expect_success "pull --rebase --autostash & rebase.autostash=$i" ' - test_config rebase.autostash $i && - test_rebase_autostash - ' - done +test_expect_success 'pull --rebase --autostash & rebase.autostash=false' ' + test_config rebase.autostash false && + test_pull_autostash --rebase --autostash +' -test_expect_success 'pull --rebase: --autostash & rebase.autostash unset' ' +test_expect_success 'pull --rebase --autostash & rebase.autostash unset' ' test_unconfig rebase.autostash && - test_rebase_autostash + test_pull_autostash --rebase --autostash +' + +test_expect_success 'pull --rebase --no-autostash & rebase.autostash=true' ' + test_config rebase.autostash true && + test_pull_autostash_fail --rebase --no-autostash ' -for i in true false - do - test_expect_success "pull --rebase --no-autostash & rebase.autostash=$i" ' - test_config rebase.autostash $i && - test_rebase_no_autostash - ' - done +test_expect_success 'pull --rebase --no-autostash & rebase.autostash=false' ' + test_config rebase.autostash false && + test_pull_autostash_fail --rebase --no-autostash +' test_expect_success 'pull --rebase --no-autostash & rebase.autostash unset' ' test_unconfig rebase.autostash && - test_rebase_no_autostash + test_pull_autostash_fail --rebase --no-autostash ' for i in --autostash --no-autostash - do - test_expect_success "pull $i (without --rebase) is illegal" ' - test_must_fail git pull $i . copy 2>actual && - test_i18ngrep "only valid with --rebase" actual - ' - done +do + test_expect_success "pull $i (without --rebase) is illegal" ' + test_must_fail git pull $i . copy 2>err && + test_i18ngrep "only valid with --rebase" err + ' +done test_expect_success 'pull.rebase' ' git reset --hard before-rebase && @@ -318,22 +316,12 @@ test_expect_success 'pull.rebase' ' test_expect_success 'pull --autostash & pull.rebase=true' ' test_config pull.rebase true && - git reset --hard before-rebase && - echo dirty >new_file && - git add new_file && - git pull --autostash . copy && - test_cmp_rev HEAD^ copy && - test "$(cat new_file)" = dirty && - test "$(cat file)" = "modified again" + test_pull_autostash --autostash ' test_expect_success 'pull --no-autostash & pull.rebase=true' ' test_config pull.rebase true && - git reset --hard before-rebase && - echo dirty >new_file && - git add new_file && - test_must_fail git pull --no-autostash . copy 2>err && - test_i18ngrep "Cannot pull with rebase: Your index contains uncommitted changes." err + test_pull_autostash_fail --no-autostash ' test_expect_success 'branch.to-rebase.rebase' ' Mehul Jain (7): t5520: use consistent capitalization in test titles t5520: ensure consistent test conditions t5520: use better test to check stderr output t5520: factor out common code t5520: factor out common code t5520: reduce commom lines of code t5520: test --[no-]autostash with pull.rebase=true t/t5520-pull.sh | 102 +++++++++++++++++++++++++------------------------------- 1 file changed, 46 insertions(+), 56 deletions(-) -- 2.7.1.340.g69eb491.dirty [1]:http://thread.gmane.org/gmane.comp.version-control.git/290134 Thanks, Mehul -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html