diff options
author | Jeff King <peff@peff.net> | 2011-10-13 11:59:24 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-10-13 12:16:36 -0700 |
commit | 035b5bf6431dbf8f3cde2f44b0d7ef893b95b605 (patch) | |
tree | c4cffa6060f66c01f48857a05a12bf8727c3cfa7 /git-pull.sh | |
parent | e2eb527345d48881dac0d88e6bdfc0a267a2eb62 (diff) | |
download | git-035b5bf6431dbf8f3cde2f44b0d7ef893b95b605.tar.gz |
pull,rebase: handle GIT_WORK_TREE better
You can't currently run git-pull or git-rebase from outside
of the work tree, even with GIT_WORK_TREE set, due to an
overeager require_work_tree function. Commit e2eb527
documents this problem and provides the infrastructure for a
fix, but left it to later commits to audit and update
individual scripts.
Changing these scripts to use require_work_tree_exists is
easy to verify. We immediately call cd_to_toplevel, anyway.
Therefore no matter which function we use, the state
afterwards is one of:
1. We have a work tree, and we are at the top level.
2. We don't have a work tree, and we have died.
The only catch is that we must also make sure no code that
ran before the cd_to_toplevel assumed that we were already
in the working tree.
In this case, we will only have included shell libraries and
called set_reflog_action, neither of which care about the
current working directory at all.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-pull.sh')
-rwxr-xr-x | git-pull.sh | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/git-pull.sh b/git-pull.sh index eb87f49062..7500b58ff9 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -10,7 +10,7 @@ SUBDIRECTORY_OK=Yes OPTIONS_SPEC= . git-sh-setup set_reflog_action "pull $*" -require_work_tree +require_work_tree_exists cd_to_toplevel |