From: John Keeping <john@keeping.me.uk>
To: Elliott Cable <me@ell.io>
Cc: git@vger.kernel.org
Subject: Re: `git rev-parse --git-dir` relative to current working directory?
Date: Tue, 29 Mar 2016 11:50:14 +0100 [thread overview]
Message-ID: <20160329105014.GA1578@serenity.lan> (raw)
In-Reply-To: <CAPZ477NfQ7pCiHQ3V42kZ1Cic5UPP03TCFPvABR_ugSZYEn4xg@mail.gmail.com>
On Tue, Mar 29, 2016 at 05:32:31AM -0500, Elliott Cable wrote:
> So, `git help rev-parse` [mentions the following][rev-parse], as of
> 2.8.0:
>
> --git-dir
> Show $GIT_DIR if defined. Otherwise show the path to the .git
> directory. The path shown, when relative, is relative to the
> current working directory.
>
> However, when inside a symlinked repository, this doesn't function as
> advertised:
>
> $ ln -s a-symlink a-git-repo
> $ cd a-symlink/.git/hooks
> $ git rev-parse --git-dir
> /Users/ec/Documents/a-git-repo/.git
>
> From my reading of that snippet of documentation (“The path shown ... is
> relative to the CWD”), I'd expect to receive `..`, not
> `/absolute/path/to/a-git-repo/.git`.
>
> Is the documentation incorrect, or is this a bug? (I'm hoping the
> latter: I'm trying to write git-scripting that is sensitive to symlinks,
> i.e. retains the user's CWD without unintentionally resolving symlinks
> in their path during operation; and it'd be ideal if this were handled
> as documented, saving me manual effort checking symlinks.)
The documentation seems correct to me, it just requires careful parsing;
I read it as:
if the path printed it relative
then it is relative to the current working directory
but it makes not claims about when a relative path will be printed (or
even if one ever will be, although in my testing the path is relative
only if $CWD can be stripped from the beginning of the path; in other
words only when no component of the relative path would be "../").
prev parent reply other threads:[~2016-03-29 10:50 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-29 10:32 `git rev-parse --git-dir` relative to current working directory? Elliott Cable
2016-03-29 10:50 ` John Keeping [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160329105014.GA1578@serenity.lan \
--to=john@keeping.me.uk \
--cc=git@vger.kernel.org \
--cc=me@ell.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).