threads / discuss / 21858

rev-parse --show-cdup in .git

Subject: rev-parse --show-cdup in .git

## tl;dr

3 messages between Dec 4, 2009 and Dec 5, 2009.

replies: 2people: 2as markdown or json

Michael J Gruber· Dec 4, 2009, 15:45 UTC · lore
I'm sure this was discussed somewhere, but I can't find it:

When called from within .git, git rev-parse --show-cdup returns nothing rather than "..", not even an error code. Is this intended?

This is all the more disturbing since the cwd of hooks seems to be GIT_DIR. Is that something one can rely upon? In that case one can simply use ".." for cdup.

Michael

P.S.: The use case is a simple post-receive-hook that fast forwards a checked out branch on receiving refs in refs/remotes/incoming/, but needs to check the worktree against the index etc. 1.7.0 may be an opportunity to encourage usage of this rather than restoring the old behavior through options.

Junio C Hamano· Dec 4, 2009, 17:32 UTC · re: Michael J Gruber · lore

Re: rev-parse --show-cdup in .git

Michael J Gruber <git@drmicha.warpmail.net> writes:
> I'm sure this was discussed somewhere, but I can't find it:
>
> When called from within .git, git rev-parse --show-cdup returns nothing
> rather than "..", not even an error code. Is this intended?

I do not think --show-cdup should be linked to --is-inside-work-tree in any way, if that is what you are getting at by mentioning "error code".

> This is all the more disturbing since the cwd of hooks seems to be
> GIT_DIR. Is that something one can rely upon? In that case one can
> simply use ".." for cdup.

I think you will see something that is different from and is more sensible than ".." when you use GIT_WORK_TREE environment variable (or its corresponding configuration variable).

Michael J Gruber· Dec 5, 2009, 13:19 UTC · re: Junio C Hamano · lore

Re: rev-parse --show-cdup in .git

Junio C Hamano venit, vidit, dixit 04.12.2009 18:32:
Show 9 quoted lines
> Michael J Gruber <git@drmicha.warpmail.net> writes:
> 
>> I'm sure this was discussed somewhere, but I can't find it:
>>
>> When called from within .git, git rev-parse --show-cdup returns nothing
>> rather than "..", not even an error code. Is this intended?
> 
> I do not think --show-cdup should be linked to --is-inside-work-tree in
> any way, if that is what you are getting at by mentioning "error code".

It's just difficult to tell from the output whether you are at the toplevel (empty relative path) or you're within .git or somewhere else.

Show 7 quoted lines
>> This is all the more disturbing since the cwd of hooks seems to be
>> GIT_DIR. Is that something one can rely upon? In that case one can
>> simply use ".." for cdup.
> 
> I think you will see something that is different from and is more sensible
> than ".." when you use GIT_WORK_TREE environment variable (or its
> corresponding configuration variable).

All that I want is a reliable method for a hook to cd to the toplevel of the worktree of a non-bare repositity. cd_to_toplevel (from git-sh-setup) does not work. I don't think I should have to set any worktree config in a non-bare repository with standard layout, should I?

Michael

← back to recent threads