Merge git://git.kernel.org/pub/scm/gitk/gitk
[gitweb.git] / t / t5505-remote.sh
index 2822a651b5c434bb9243a6f8f9069a8fee1ad590..0d7ed1f99b327c3130c43519c3a8a8fd4ee37892 100755 (executable)
@@ -24,7 +24,7 @@ setup_repository () {
 tokens_match () {
        echo "$1" | tr ' ' '\012' | sort | sed -e '/^$/d' >expect &&
        echo "$2" | tr ' ' '\012' | sort | sed -e '/^$/d' >actual &&
-       diff -u expect actual
+       test_cmp expect actual
 }
 
 check_remote_track () {
@@ -73,7 +73,17 @@ test_expect_success 'add another remote' '
        sed -e "/^refs\/remotes\/origin\//d" \
            -e "/^refs\/remotes\/second\//d" >actual &&
        >expect &&
-       diff -u expect actual
+       test_cmp expect actual
+)
+'
+
+test_expect_success 'remote forces tracking branches' '
+(
+       cd test &&
+       case `git config remote.second.fetch` in
+       +*) true ;;
+        *) false ;;
+       esac
 )
 '
 
@@ -93,7 +103,7 @@ test_expect_success 'remove remote' '
        git for-each-ref "--format=%(refname)" refs/remotes |
        sed -e "/^refs\/remotes\/origin\//d" >actual &&
        >expect &&
-       diff -u expect actual
+       test_cmp expect actual
 )
 '
 
@@ -106,6 +116,8 @@ cat > test/expect << EOF
     master
   Tracked remote branches
     side master
+  Local branches pushed with 'git push'
+    master:upstream +refs/tags/lastbackup
 EOF
 
 test_expect_success 'show' '
@@ -118,8 +130,12 @@ test_expect_success 'show' '
          echo 1 > file &&
          test_tick &&
          git commit -m update file) &&
+        git config remote.origin.push \
+               refs/heads/master:refs/heads/upstream &&
+        git config --add remote.origin.push \
+               +refs/tags/lastbackup &&
         git remote show origin > output &&
-        git diff expect output)
+        test_cmp expect output)
 '
 
 test_expect_success 'prune' '
@@ -148,6 +164,24 @@ test_expect_success 'add --mirror && prune' '
         git rev-parse --verify refs/heads/side)
 '
 
+test_expect_success 'add alt && prune' '
+       (mkdir alttst &&
+        cd alttst &&
+        git init &&
+        git remote add -f origin ../one &&
+        git config remote.alt.url ../one &&
+        git config remote.alt.fetch "+refs/heads/*:refs/remotes/origin/*") &&
+       (cd one &&
+        git branch -m side side2) &&
+       (cd alttst &&
+        git rev-parse --verify refs/remotes/origin/side &&
+        ! git rev-parse --verify refs/remotes/origin/side2 &&
+        git fetch alt &&
+        git remote prune alt &&
+        ! git rev-parse --verify refs/remotes/origin/side &&
+        git rev-parse --verify refs/remotes/origin/side2)
+'
+
 cat > one/expect << EOF
   apis/master
   apis/side
@@ -163,7 +197,7 @@ test_expect_success 'update' '
         git remote add apis ../mirror &&
         git remote update &&
         git branch -r > output &&
-        git diff expect output)
+        test_cmp expect output)
 
 '
 
@@ -190,7 +224,7 @@ test_expect_success 'update with arguments' '
         git config remotes.titanus manduca &&
         git remote update phobaeticus titanus &&
         git branch -r > output &&
-        git diff expect output)
+        test_cmp expect output)
 
 '
 
@@ -213,7 +247,7 @@ test_expect_success 'update default' '
         git config remote.drosophila.skipDefaultUpdate true &&
         git remote update default &&
         git branch -r > output &&
-        git diff expect output)
+        test_cmp expect output)
 
 '
 
@@ -233,7 +267,23 @@ test_expect_success 'update default (overridden, with funny whitespace)' '
         git config remotes.default "$(printf "\t drosophila  \n")" &&
         git remote update default &&
         git branch -r > output &&
-        git diff expect output)
+        test_cmp expect output)
+
+'
+
+test_expect_success '"remote show" does not show symbolic refs' '
+
+       git clone one three &&
+       (cd three &&
+        git remote show origin > output &&
+        ! grep HEAD < output &&
+        ! grep -i stale < output)
+
+'
+
+test_expect_success 'reject adding remote with an invalid name' '
+
+       ! git remote add some:url desired-name
 
 '