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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to