imap-send: use parse options API to determine verbosity
[gitweb.git] / t / t3200-branch.sh
index 55c9ab0b6a5c65aacdb3ef6107c3417d7bdc4e00..432921b6b81684313c6b0041a288749c30fdee8e 100755 (executable)
@@ -14,10 +14,11 @@ test_expect_success 'prepare a trivial repository' '
        echo World >>A &&
        git update-index --add A &&
        git commit -m "Second commit." &&
-       HEAD=$(git rev-parse --verify HEAD)'
+       HEAD=$(git rev-parse --verify HEAD)
+'
 
 test_expect_success 'git branch --help should not have created a bogus branch' '
-       test_might_fail git branch --help </dev/null >/dev/null 2>/dev/null &&
+       test_might_fail git branch --man --help </dev/null >/dev/null 2>&1 &&
        test_path_is_missing .git/refs/heads/--help
 '
 
@@ -284,6 +285,15 @@ test_expect_success 'deleting a dangling symref' '
        test_i18ncmp expect actual
 '
 
+test_expect_success 'deleting a self-referential symref' '
+       git symbolic-ref refs/heads/self-reference refs/heads/self-reference &&
+       test_path_is_file .git/refs/heads/self-reference &&
+       echo "Deleted branch self-reference (was refs/heads/self-reference)." >expect &&
+       git branch -d self-reference >actual &&
+       test_path_is_missing .git/refs/heads/self-reference &&
+       test_i18ncmp expect actual
+'
+
 test_expect_success 'renaming a symref is not allowed' '
        git symbolic-ref refs/heads/master2 refs/heads/master &&
        test_must_fail git branch -m master2 master3 &&
@@ -351,7 +361,7 @@ test_expect_success 'test overriding tracking setup via --no-track' '
 test_expect_success 'no tracking without .fetch entries' '
        git config branch.autosetupmerge true &&
        git branch my6 s &&
-       git config branch.automsetupmerge false &&
+       git config branch.autosetupmerge false &&
        test -z "$(git config branch.my6.remote)" &&
        test -z "$(git config branch.my6.merge)"
 '
@@ -425,14 +435,14 @@ test_expect_success '--set-upstream-to fails on a non-ref' '
 test_expect_success 'use --set-upstream-to modify HEAD' '
        test_config branch.master.remote foo &&
        test_config branch.master.merge foo &&
-       git branch my12
+       git branch my12 &&
        git branch --set-upstream-to my12 &&
        test "$(git config branch.master.remote)" = "." &&
        test "$(git config branch.master.merge)" = "refs/heads/my12"
 '
 
 test_expect_success 'use --set-upstream-to modify a particular branch' '
-       git branch my13
+       git branch my13 &&
        git branch --set-upstream-to master my13 &&
        test "$(git config branch.my13.remote)" = "." &&
        test "$(git config branch.my13.merge)" = "refs/heads/master"
@@ -443,7 +453,7 @@ test_expect_success '--unset-upstream should fail if given a non-existent branch
 '
 
 test_expect_success 'test --unset-upstream on HEAD' '
-       git branch my14
+       git branch my14 &&
        test_config branch.master.remote foo &&
        test_config branch.master.merge foo &&
        git branch --set-upstream-to my14 &&
@@ -465,7 +475,7 @@ test_expect_success '--unset-upstream should fail on detached HEAD' '
 '
 
 test_expect_success 'test --unset-upstream on a particular branch' '
-       git branch my15
+       git branch my15 &&
        git branch --set-upstream-to master my14 &&
        git branch --unset-upstream my14 &&
        test_must_fail git config branch.my14.remote &&
@@ -506,6 +516,16 @@ EOF
        test_cmp expected actual
 '
 
+test_expect_success '--set-upstream-to notices an error to set branch as own upstream' '
+       git branch --set-upstream-to refs/heads/my13 my13 2>actual &&
+       cat >expected <<-\EOF &&
+       warning: Not setting branch my13 as its own upstream.
+       EOF
+       test_expect_code 1 git config branch.my13.remote &&
+       test_expect_code 1 git config branch.my13.merge &&
+       test_i18ncmp expected actual
+'
+
 # Keep this test last, as it changes the current branch
 cat >expect <<EOF
 $_z40 $HEAD $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150200 +0000        branch: Created from master
@@ -848,11 +868,7 @@ test_expect_success 'detect typo in branch name when using --edit-description' '
        write_script editor <<-\EOF &&
                echo "New contents" >"$1"
        EOF
-       (
-               EDITOR=./editor &&
-               export EDITOR &&
-               test_must_fail git branch --edit-description no-such-branch
-       )
+       test_must_fail env EDITOR=./editor git branch --edit-description no-such-branch
 '
 
 test_expect_success 'refuse --edit-description on unborn branch for now' '
@@ -860,11 +876,7 @@ test_expect_success 'refuse --edit-description on unborn branch for now' '
                echo "New contents" >"$1"
        EOF
        git checkout --orphan unborn &&
-       (
-               EDITOR=./editor &&
-               export EDITOR &&
-               test_must_fail git branch --edit-description
-       )
+       test_must_fail env EDITOR=./editor git branch --edit-description
 '
 
 test_expect_success '--merged catches invalid object names' '