Merge branch 'jc/require-work-tree-exists'
authorJunio C Hamano <gitster@pobox.com>
Thu, 26 May 2011 17:31:47 +0000 (10:31 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 26 May 2011 17:31:47 +0000 (10:31 -0700)
* jc/require-work-tree-exists:
  require-work-tree wants more than what its name says

Documentation/git-sh-setup.txt
git-sh-setup.sh

index 053df50..27fd8ba 100644 (file)
@@ -58,9 +58,14 @@ cd_to_toplevel::
        runs chdir to the toplevel of the working tree.
 
 require_work_tree::
-       checks if the repository is a bare repository, and dies
-       if so.  Used by scripts that require working tree
-       (e.g. `checkout`).
+       checks if the current directory is within the working tree
+       of the repository, and otherwise dies.
+
+require_work_tree_exists::
+       checks if the working tree associated with the repository
+       exists, and otherwise dies.  Often done before calling
+       cd_to_toplevel, which is impossible to do if there is no
+       working tree.
 
 get_author_ident_from_commit::
        outputs code for use with eval to set the GIT_AUTHOR_NAME,
index aa16b83..94e26ed 100644 (file)
@@ -140,6 +140,13 @@ cd_to_toplevel () {
        }
 }
 
+require_work_tree_exists () {
+       if test "z$(git rev-parse --is-bare-repository)" != zfalse
+       then
+               die "fatal: $0 cannot be used without a working tree."
+       fi
+}
+
 require_work_tree () {
        test "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = true ||
        die "fatal: $0 cannot be used without a working tree."