Merge branch 'jn/submodule-b-current'

* jn/submodule-b-current:
  git submodule: Remove now obsolete tests before cloning a repo
  git submodule -b ... of current HEAD fails
This commit is contained in:
Junio C Hamano 2010-12-16 12:49:22 -08:00
commit 7eaf4af426
2 changed files with 24 additions and 20 deletions

View File

@ -93,20 +93,6 @@ module_clone()
url=$2 url=$2
reference="$3" reference="$3"
# If there already is a directory at the submodule path,
# expect it to be empty (since that is the default checkout
# action) and try to remove it.
# Note: if $path is a symlink to a directory the test will
# succeed but the rmdir will fail. We might want to fix this.
if test -d "$path"
then
rmdir "$path" 2>/dev/null ||
die "Directory '$path' exists, but is neither empty nor a git repository"
fi
test -e "$path" &&
die "A file already exist at path '$path'"
if test -n "$reference" if test -n "$reference"
then then
git-clone "$reference" -n "$url" "$path" git-clone "$reference" -n "$url" "$path"
@ -241,7 +227,7 @@ cmd_add()
# ash fails to wordsplit ${branch:+-b "$branch"...} # ash fails to wordsplit ${branch:+-b "$branch"...}
case "$branch" in case "$branch" in
'') git checkout -f -q ;; '') git checkout -f -q ;;
?*) git checkout -f -q -b "$branch" "origin/$branch" ;; ?*) git checkout -f -q -B "$branch" "origin/$branch" ;;
esac esac
) || die "Unable to checkout submodule '$path'" ) || die "Unable to checkout submodule '$path'"
fi fi

View File

@ -421,11 +421,29 @@ test_expect_success 'add submodules without specifying an explicit path' '
git commit -m "repo commit 1" git commit -m "repo commit 1"
) && ) &&
git clone --bare repo/ bare.git && git clone --bare repo/ bare.git &&
(
cd addtest && cd addtest &&
git submodule add "$submodurl/repo" && git submodule add "$submodurl/repo" &&
git config -f .gitmodules submodule.repo.path repo && git config -f .gitmodules submodule.repo.path repo &&
git submodule add "$submodurl/bare.git" && git submodule add "$submodurl/bare.git" &&
git config -f .gitmodules submodule.bare.path bare git config -f .gitmodules submodule.bare.path bare
)
'
test_expect_success 'add should fail when path is used by a file' '
(
cd addtest &&
touch file &&
test_must_fail git submodule add "$submodurl/repo" file
)
'
test_expect_success 'add should fail when path is used by an existing directory' '
(
cd addtest &&
mkdir empty-dir &&
test_must_fail git submodule add "$submodurl/repo" empty-dir
)
' '
test_done test_done