Merge git://git.kernel.org/pub/scm/gitk/gitk
[gitweb.git] / t / t6029-merge-subtree.sh
index 3900a0508203649901a414843feb4e73dd1b2133..5bbfa44e8d9ee3eebb18eb07e93380c802741a18 100755 (executable)
@@ -25,8 +25,55 @@ test_expect_success 'subtree available and works like recursive' '
 
        git merge -s subtree side &&
        for i in mundo $s world; do echo $i; done >expect &&
-       diff -u expect hello
+       test_cmp expect hello
 
 '
 
+test_expect_success 'setup' '
+       mkdir git-gui &&
+       cd git-gui &&
+       git init &&
+       echo git-gui > git-gui.sh &&
+       o1=$(git hash-object git-gui.sh) &&
+       git add git-gui.sh &&
+       git commit -m "initial git-gui" &&
+       cd .. &&
+       mkdir git &&
+       cd git &&
+       git init &&
+       echo git >git.c &&
+       o2=$(git hash-object git.c) &&
+       git add git.c &&
+       git commit -m "initial git"
+'
+
+test_expect_success 'initial merge' '
+       git remote add -f gui ../git-gui &&
+       git merge -s ours --no-commit gui/master &&
+       git read-tree --prefix=git-gui/ -u gui/master &&
+       git commit -m "Merge git-gui as our subdirectory" &&
+       git ls-files -s >actual &&
+       (
+               echo "100644 $o1 0      git-gui/git-gui.sh"
+               echo "100644 $o2 0      git.c"
+       ) >expected &&
+       test_cmp expected actual
+'
+
+test_expect_success 'merge update' '
+       cd ../git-gui &&
+       echo git-gui2 > git-gui.sh &&
+       o3=$(git hash-object git-gui.sh) &&
+       git add git-gui.sh &&
+       git commit -m "update git-gui" &&
+       cd ../git &&
+       git pull -s subtree gui master &&
+       git ls-files -s >actual &&
+       (
+               echo "100644 $o3 0      git-gui/git-gui.sh"
+               echo "100644 $o2 0      git.c"
+       ) >expected &&
+       test_cmp expected actual
+'
+
 test_done