Use subshell and 'cd' instead of --git-dir and --work-tree for 'git pull'.
authorW. Trevor King <wking@drexel.edu>
Wed, 30 Nov 2011 21:08:33 +0000 (16:08 -0500)
committerW. Trevor King <wking@drexel.edu>
Wed, 30 Nov 2011 21:08:33 +0000 (16:08 -0500)
I was getting:
  git-pull cannot be used without a working tree
Possibly a bug in git, but using a subshell is simple enough.

dotfiles.sh

index f400bc767543cf61c52a01127f00e659b3436bed..d1305dd6d8915f22e67b126c25e032bf4b0496dc 100755 (executable)
@@ -315,7 +315,7 @@ function fetch()
        get_repo_source "${REPO}" || return 1
        TRANSFER=$(nonempty_option 'fetch' 'TRANSFER' "${REPO_SOURCE_DATA['transfer']}") || return 1
        if [ "${TRANSFER}" = 'git' ]; then
-               "${GIT}" --git-dir "${REPO}/.git" --work-tree "${REPO}" pull || return 1
+               (cd "${REPO}" && "${GIT}" pull) || return 1
        elif [ "${TRANSFER}" = 'wget' ]; then
                wget_fetch "${REPO}" || return 1
        else