git-svn: proper detection of bare repositories

When in a bare repository (or .git, for that matter), git-svn would fail
to initialise properly, since git rev-parse --show-cdup would not output
anything.  However, git rev-parse --show-cdup actually returns an error
code if it's really not in a git directory.

Fix the issue by checking for an explicit error from git rev-parse, and
setting $git_dir appropriately if instead it just does not output.

Signed-off-by: Deskin Miller <deskinm@umich.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
Deskin Miller
2008-11-06 00:07:39 -05:00
committed by Eric Wong
parent aab5720551
commit 6e5121f26e
2 changed files with 16 additions and 5 deletions

View File

@ -265,4 +265,13 @@ test_expect_success 'able to set-tree to a subdirectory' "
test -z \"\`git diff refs/heads/my-bar refs/remotes/bar\`\"
"
test_expect_success 'git-svn works in a bare repository' '
mkdir bare-repo &&
( cd bare-repo &&
git init --bare &&
GIT_DIR=. git svn init "$svnrepo" &&
git svn fetch ) &&
rm -rf bare-repo
'
test_done