Merge branch 'master' of git://repo.or.cz/git-gui
[gitweb.git] / contrib / workdir / git-new-workdir
index 3ff6bd166ab7db5612a419ffcdc93b9b3d7eb2f8..c6e154a84fb5bdd4ed456ac3fdf94c54466fc5f0 100755 (executable)
@@ -24,9 +24,21 @@ git_dir=$(cd "$orig_git" 2>/dev/null &&
   git rev-parse --git-dir 2>/dev/null) ||
   die "\"$orig_git\" is not a git repository!"
 
-if test "$git_dir" = ".git"
-then
+case "$git_dir" in
+.git)
        git_dir="$orig_git/.git"
+       ;;
+.)
+       git_dir=$orig_git
+       ;;
+esac
+
+# don't link to a configured bare repository
+isbare=$(git --git-dir="$git_dir" config --bool --get core.bare)
+if test ztrue = z$isbare
+then
+       die "\"$git_dir\" has core.bare set to true," \
+               " remove from \"$git_dir/config\" to use $0"
 fi
 
 # don't link to a workdir