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 checkout -b work &&
        git ls-files -s >actual &&
        (
                echo "100644 $o1 0      git-gui/git-gui.sh"
        echo git-gui2 > git-gui.sh &&
        o3=$(git hash-object git-gui.sh) &&
        git add git-gui.sh &&
+       git checkout -b master2 &&
        git commit -m "update git-gui" &&
        cd ../git &&
-       git pull -s subtree gui master &&
+       git pull -s subtree gui master2 &&
        git ls-files -s >actual &&
        (
                echo "100644 $o3 0      git-gui/git-gui.sh"
        test_cmp expected actual
 '
 
+test_expect_success 'initial ambiguous subtree' '
+       cd ../git &&
+       git reset --hard master &&
+       git checkout -b master2 &&
+       git merge -s ours --no-commit gui/master &&
+       git read-tree --prefix=git-gui2/ -u gui/master &&
+       git commit -m "Merge git-gui2 as our subdirectory" &&
+       git checkout -b work2 &&
+       git ls-files -s >actual &&
+       (
+               echo "100644 $o1 0      git-gui/git-gui.sh"
+               echo "100644 $o1 0      git-gui2/git-gui.sh"
+               echo "100644 $o2 0      git.c"
+       ) >expected &&
+       test_cmp expected actual
+'
+
+test_expect_success 'merge using explicit' '
+       cd ../git &&
+       git reset --hard master2 &&
+       git pull -Xsubtree=git-gui gui master2 &&
+       git ls-files -s >actual &&
+       (
+               echo "100644 $o3 0      git-gui/git-gui.sh"
+               echo "100644 $o1 0      git-gui2/git-gui.sh"
+               echo "100644 $o2 0      git.c"
+       ) >expected &&
+       test_cmp expected actual
+'
+
+test_expect_success 'merge2 using explicit' '
+       cd ../git &&
+       git reset --hard master2 &&
+       git pull -Xsubtree=git-gui2 gui master2 &&
+       git ls-files -s >actual &&
+       (
+               echo "100644 $o1 0      git-gui/git-gui.sh"
+               echo "100644 $o3 0      git-gui2/git-gui.sh"
+               echo "100644 $o2 0      git.c"
+       ) >expected &&
+       test_cmp expected actual
+'
+
 test_done