Re: [PATCH v5 3/3] cat-file: add --follow-symlinks to --batch
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 12, 2015, 20:07 UTC
- Message-ID
- <xmqqh9rhftlh.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <1431455779.16652.20.camel@ubuntu>
David Turner <dturner@twopensource.com> writes:
Show 9 quoted lines
>> * I am not sure if HEAD:link that points at HEAD:link should be >> reported as "missing". It may be better to report the original >> without any dereferencing just like a link that points at outside >> the tree? i.e. "symlink 4 LF link". > > Unfortunately, a symlink loop might include relative symlinks > (e.g. ../a). If we return a relative symlink, the user will > not be able to distinguish it from a non-loop, out-of-tree symlink. So > I think we may not return symlink 4 LF ../a for these cases.
I do not follow. Let's start from a shared example.
HEAD:sub/link is a symbolic link whose value is ../nextlink
HEAD:nextlink is a symbolic link whose value is sub/linkThat's a loop. Now, I think what I am sugesting is
$ git cat-file --batch-check --follow-symlinks <<\EOF
HEAD:sub/link
HEAD:nextlink
EOF
symlink ../nextlink
symlink sub/linkIf you asked about sub/link and then got ../nextlink back, then isn't it clear for the reading script that it is about nextlink at the top-level? Why can't it tell it from out-of-tree link?