From: Junio C Hamano <gitster@pobox.com>
To: David Turner <dturner@twopensource.com>
Cc: git@vger.kernel.org, David Turner <dturner@twitter.com>
Subject: Re: [PATCH v5 3/3] cat-file: add --follow-symlinks to --batch
Date: Tue, 12 May 2015 13:00:47 -0700 [thread overview]
Message-ID: <xmqqlhgtftw0.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1431456922.16652.26.camel@ubuntu> (David Turner's message of "Tue, 12 May 2015 14:55:22 -0400")
David Turner <dturner@twopensource.com> writes:
> On Tue, 2015-05-12 at 11:43 -0700, Junio C Hamano wrote:
>> David Turner <dturner@twopensource.com> writes:
>>
>> >> We need to also say something about the "missing" vs "loop" case, if
>> >> we choose to leave that part broken. I'd rather see it fixed, but
>> >> that is not a very strong preference.
>> >
>> > Will add an example.
>>
>> I do not think we need an example. By "also say", I meant in
>> addition to "This and that does not currently work", we also need to
>> say that loops do not work well. In other words, it is enough to
>> just mention that it is a current limitation (or a bug, whichever we
>> choose to call) that loops are reported as missing.
>
> The version of the patch that we are commenting on contained the text:
>> + --batch-check. In the event of a symlink loop (or more than
>> + 40 symlinks in a symlink resolution chain), the file will be
>> + treated as missing. If a symlink points outside the tree-ish
>
> Is that sufficient?
Not really, as I think people would say "treated as missing" is a
bug, and it would be better to mark it as "currently does not work"
in the sense that "you cannot use this feature to tell HEAD:link
that is not in HEAD and HEAD:link that is a symbolic link that
points to itself apart".
> Actually, we could simply have a separate output for broken links.
> Instead of [original path] SP missing, [original path] SP loop.
Hmm, I do not quite see where this resistance against keeping the
original request in order to say "You gave HEAD:link to me, but that
is a symbolic link that leads to 'link'" comes from. After all,
wouldn't that be more consistent with what you already show for a
link that cannot be resolved, i.e. "You gave HEAD:link to me, that
is a link that points at 'nosuch'" when I do this:
$ ln -s nosuch link
$ git add link
$ echo "$(git write-tree):link" |
git cat-file --batch --follow-symlinks
Ahh, that would also give us "missing", so in that sense you are
being consistent.
But I do not think that consistency is useful. Showing just
"missing" instead is losing information and that is what bothers me.
Showing "symlink 6 nosuch" to this "link points at a target that
would be in-tree but there is no such object in the tree" symbolic
link instead of "missing" would make it more useful, and I do not
offhand think of a downside, but maybe I am missing something.
For a link that points outside, the code already gives
$ ln -s ../outside outlink
$ git add outlink
$ echo "$(git write-tree):outlink" |
git cat-file --batch --follow-symlinks
"symlink ../outside", so the script reading from the batch output
already has to be prepared to handle "symlink" and understand it as
saying "the link does not point an object that is inside the tree".
next prev parent reply other threads:[~2015-05-12 20:00 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-11 22:50 [PATCH v5 0/3] cat-file --follow-symlinks dturner
2015-05-11 22:50 ` [PATCH v5 1/3] tree-walk: learn get_tree_entry_follow_symlinks dturner
2015-05-12 17:29 ` Johannes Sixt
2015-05-11 22:50 ` [PATCH v5 2/3] sha1_name: get_sha1_with_context learns to follow symlinks dturner
2015-05-11 22:50 ` [PATCH v5 3/3] cat-file: add --follow-symlinks to --batch dturner
2015-05-12 17:34 ` Johannes Sixt
2015-05-12 18:07 ` Junio C Hamano
2015-05-12 18:36 ` David Turner
2015-05-12 18:43 ` Junio C Hamano
2015-05-12 18:55 ` David Turner
2015-05-12 20:00 ` Junio C Hamano [this message]
2015-05-12 20:22 ` Junio C Hamano
2015-05-12 22:36 ` David Turner
2015-05-12 23:02 ` Junio C Hamano
2015-05-12 23:06 ` Junio C Hamano
2015-05-12 20:07 ` Junio C Hamano
2015-05-12 21:37 ` David Turner
2015-05-12 21:42 ` Junio C Hamano
2015-05-12 21:53 ` David Turner
2015-05-14 20:06 ` Junio C Hamano
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=xmqqlhgtftw0.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=dturner@twitter.com \
--cc=dturner@twopensource.com \
--cc=git@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.