Re: [PATCH] git-checkout: Handle relative paths containing "..".
- From
Junio C Hamano <junio@pobox.com>
- Date
- Nov 8, 2007, 08:30 UTC
- Message-ID
- <7v4pfx3zs3.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <1194489192-20021-1-git-send-email-dsymonds@gmail.com>
David Symonds <dsymonds@gmail.com> writes:
Show 15 quoted lines
> diff --git a/git-checkout.sh b/git-checkout.sh > index 8993920..b2c50aa 100755 > --- a/git-checkout.sh > +++ b/git-checkout.sh > @@ -134,9 +134,10 @@ Did you intend to checkout '$@' which can not be resolved as commit?" > fi > > # Make sure the request is about existing paths. > - git ls-files --error-unmatch -- "$@" >/dev/null || exit > - git ls-files -- "$@" | > - git checkout-index -f -u --stdin > + git ls-files --full-name --error-unmatch -- "$@" >/dev/null || exit > + git ls-files --full-name -- "$@" | > + (cd "$(git-rev-parse --show-cdup)" && > + git checkout-index -f -u --stdin)
Have you tested this patch from the toplevel of any tree, where "git-rev-parse --show-cdup" would yield an empty string?
I also wonder how this patch (with an obvious fix to address the above point) would interact with GIT_DIR and/or GIT_WORK_TREE in the environment.