unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Philip Kaludercic <philipk@posteo.net>
To: Eli Zaretskii <eliz@gnu.org>
Cc: rpluim@gmail.com, 57400@debbugs.gnu.org, ane@iki.fi, juri@linkov.net
Subject: bug#57400: 29.0.50; Support sending patches from VC directly
Date: Sat, 15 Oct 2022 11:44:58 +0000	[thread overview]
Message-ID: <87r0z95n0l.fsf@posteo.net> (raw)
In-Reply-To: <83o7ud7evv.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 15 Oct 2022 09:57:40 +0300")

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Philip Kaludercic <philipk@posteo.net>
>> Cc: juri@linkov.net,  rpluim@gmail.com,  57400@debbugs.gnu.org,  ane@iki.fi
>> Date: Fri, 14 Oct 2022 21:47:43 +0000
>> 
>> >   Translate Git revision descriptor of COMMIT, a string, to a symbolic form.
>> 
>> Is this perhaps not too long?  Would "Translate revision string COMMIT
>> to a symbolic form." be sufficient, especially as this is actually just
>> an internal function that wasn't marked as such (the Git history
>> indicates that this function, with this documentation string has been
>> around since the initial revision of the file in 2007)?
>
> I disregarded the fact that this is an internal function, because the
> issues are general.  But yes, we could make this shorter, once we
> agree that the full text should be something like I suggested.  For
> example:
>
>   Translate revision string of COMMIT to a symbolic form.
>
> Note that I said "string of COMMIT", because COMMIT is not a string,
> it is an entity which the string describes.

Right, makes sense.

>> >>                     If the optional argument FORCE is non-nil,
>> >> this might include revision specifications like \"master~8\" (the
>> >> 8th parent of the commit that \"master\" is currently pointing
>> >> to).
>> >
>> > This begs the question: what kind of COMMIT strings are acceptable if
>> > FORCE is nil or omitted?  If we only accept SHA-1 hashes then, this
>> > should perhaps be mentioned in the first sentence.  But from reading
>> > the (unhelpful) man page of "git name-rev" (which leads down the
>> > rabbit hole to "git rev-parse"), it is my understanding that this will
>> > accept _any_ revision descriptor in any form.  
>> 
>> Yes, right.  And in absence of any restriction "COMMIT" should be
>> understood to be a SHA-1 reference or a symbolic reference, right?
>
> Hmm... now I'm confused.  I'd think COMMIT could be _any_ reference to
> a revision, not just SHA-1?  Because "git name-rev" accepts them all,
> no?

Yes?  Maybe I am also confused, but my understanding is that a "commit
reference" (e.g. the contents of COMMIT) is either a symbolic reference
of a SHA-1 reference (non-symbolic).

>> >                                                So now I wonder why
>> > accepting something like "master~8" needs a special knob: it's just
>> > one of the forms supported by "git name-rev", isn't it?  So maybe you
>> > don't even need the additional argument and don't have to document it?
>> 
>> That is an open debate, the function is currently only used in vc-git.el
>> and is never invoked with the optional argument.  I've only added it
>> because it might be that it could be useful at some point in the future.
>> 
>> > But if there _are_ valid reasons not to accept the likes of
>> > "master~8", they should be in the doc string.  For example:
>> >
>> >   By default, COMMIT strings of the form "master~8" are rejected,
>> >   because <describe the reason here>, but if FORCE is non-nil, they
>> >   are allowed.
>> 
>> I guess it is difficult to come up with a "valid reason", the motivation
>> is that I wanted to have some way to ensure that
>> `vc-git-working-revision' only returns a symbolic form iff a branch or
>> tag is pointing to the working revision.  If you think it is preferable,
>> I could also invert the argument and make it into something like
>> "no-relative" or even pull the check into `vc-git-working-revision'.
>
> I'm asking why not accept everything that "git name-rev" accepts, and
> remove the need for the additional FORCE argument.  (But this is not a
> documentation issue anymore ;-)

The function does accept everything that "git name-rev" accepts, after
all it just passes commit to the subcommand.  What FORCE does is
restrict what "git name-rev" response is accepted to be returned by
`vc-git-symbolic-commit'.





  reply	other threads:[~2022-10-15 11:44 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-25  8:47 bug#57400: 29.0.50; Support sending patches from VC directly Antoine Kalmbach
2022-08-26  7:37 ` Philip Kaludercic
2022-08-26 10:15   ` Antoine Kalmbach
2022-08-26 10:35     ` Philip Kaludercic
2022-08-26 10:45       ` Antoine Kalmbach
2022-08-26 10:58         ` Eli Zaretskii
2022-08-26 11:26           ` Philip Kaludercic
2022-08-26 11:44             ` Eli Zaretskii
2022-08-26 12:05               ` Philip Kaludercic
2022-08-26 12:26                 ` Eli Zaretskii
2022-08-26 13:10                   ` Antoine Kalmbach
2022-08-26 13:17                     ` Eli Zaretskii
2022-08-26 13:29                   ` Philip Kaludercic
2022-08-26 14:21                     ` Eli Zaretskii
2022-08-27  8:21                       ` Philip Kaludercic
2022-08-27  9:21                         ` Eli Zaretskii
2022-08-27  9:30                           ` Philip Kaludercic
2022-08-26 12:08               ` Antoine Kalmbach
2022-08-26 12:28                 ` Eli Zaretskii
2022-08-28  4:07         ` Richard Stallman
2022-10-03 18:59         ` Philip Kaludercic
2022-10-03 19:06           ` Lars Ingebrigtsen
2022-10-03 19:23             ` Eli Zaretskii
2022-10-04 19:19               ` Philip Kaludercic
2022-10-04 19:33                 ` Eli Zaretskii
2022-10-03 21:22             ` Philip Kaludercic
2022-10-03 21:55               ` Philip Kaludercic
2022-10-03 23:32                 ` Lars Ingebrigtsen
2022-10-04  6:46                   ` Eli Zaretskii
2022-10-04  6:41                 ` Eli Zaretskii
2022-10-04  7:10                   ` Philip Kaludercic
2022-10-04  8:00                     ` Eli Zaretskii
2022-10-04 10:40                       ` Philip Kaludercic
2022-10-04 10:42                         ` Philip Kaludercic
2022-10-04 12:25                           ` Eli Zaretskii
2022-10-04 12:24                         ` Eli Zaretskii
2022-10-04 18:08                           ` Philip Kaludercic
2022-10-05 16:07           ` Antoine Kalmbach
2022-10-05 17:34             ` Philip Kaludercic
2022-10-05 17:48               ` Philip Kaludercic
2022-10-05 18:32                 ` Lars Ingebrigtsen
2022-10-05 18:46                   ` Philip Kaludercic
2022-10-05 19:08                     ` Lars Ingebrigtsen
2022-10-06  8:21                       ` Robert Pluim
2022-10-06  8:35                         ` Philip Kaludercic
2022-10-06  8:59                           ` Robert Pluim
2022-10-06  9:12                             ` Philip Kaludercic
2022-10-06 11:02                     ` Philip Kaludercic
2022-10-05 19:57                   ` Juri Linkov
2022-10-06 12:03                     ` Lars Ingebrigtsen
2022-10-07 22:48                     ` Richard Stallman
2022-10-10 14:39                     ` Filipp Gunbin
2022-10-10 18:58                       ` Juri Linkov
2022-10-11  0:27                         ` Lars Ingebrigtsen
2022-10-11  0:26                       ` Lars Ingebrigtsen
2022-10-05 18:17               ` Eli Zaretskii
2022-10-05 18:45                 ` Philip Kaludercic
2022-10-06  9:14                   ` Philip Kaludercic
2022-10-06  9:19                     ` Eli Zaretskii
2022-10-06 22:22                       ` Dmitry Gutov
2022-10-07  6:36                         ` Eli Zaretskii
2022-10-07 12:06                           ` Dmitry Gutov
2022-10-06 11:33               ` Robert Pluim
2022-10-06 12:38                 ` Philip Kaludercic
2022-10-06 12:58                   ` Robert Pluim
2022-10-06 14:37                     ` Philip Kaludercic
2022-10-06 14:43                       ` Robert Pluim
2022-10-06 15:54                       ` Eli Zaretskii
2022-10-06 16:27                         ` Philip Kaludercic
2022-10-07  7:58                     ` Juri Linkov
2022-10-07 11:42                       ` Philip Kaludercic
2022-10-08 10:03                         ` Philip Kaludercic
2022-10-08 19:34                         ` Juri Linkov
2022-10-09 12:15                           ` Philip Kaludercic
2022-10-10 19:03                             ` Juri Linkov
2022-10-11 12:44                               ` Philip Kaludercic
2022-10-11 13:58                                 ` Robert Pluim
2022-10-15 18:54                                 ` Juri Linkov
2022-10-16  9:40                                   ` Philip Kaludercic
2022-10-11 19:30                               ` Philip Kaludercic
2022-10-11 19:47                                 ` Juri Linkov
2022-10-11 19:49                                   ` Philip Kaludercic
2022-10-12 22:01                                   ` Richard Stallman
2022-10-13  7:04                                     ` Juri Linkov
2022-10-13 21:12                                       ` Richard Stallman
2022-10-15 19:02                                         ` Juri Linkov
2022-10-13  8:55                                   ` Philip Kaludercic
2022-10-13 17:30                                     ` Juri Linkov
2022-10-13 19:44                                       ` Philip Kaludercic
2022-10-13 20:25                                         ` Philip Kaludercic
2022-10-13 20:33                                           ` Eli Zaretskii
2022-10-13 22:05                                             ` Philip Kaludercic
2022-10-14  6:50                                               ` Eli Zaretskii
2022-10-14 21:28                                                 ` Richard Stallman
2022-10-14 21:47                                                 ` Philip Kaludercic
2022-10-15  6:57                                                   ` Eli Zaretskii
2022-10-15 11:44                                                     ` Philip Kaludercic [this message]
2022-10-15 12:20                                                       ` Eli Zaretskii
2022-10-15 15:15                                                         ` Philip Kaludercic
2022-10-15 15:16                                                           ` Eli Zaretskii
2022-10-15 15:24                                                             ` Philip Kaludercic
2022-10-10 22:01                           ` Richard Stallman
2022-10-11  5:37                             ` Eli Zaretskii
2022-10-12 21:59                               ` Richard Stallman
2022-10-06 22:10                   ` Dmitry Gutov
2022-10-07  8:03                     ` Philip Kaludercic
2022-10-07 12:56                       ` Dmitry Gutov
2022-10-07 15:30                         ` Philip Kaludercic
2022-10-07 15:47                           ` Dmitry Gutov
2022-10-07 15:54                             ` Philip Kaludercic
2022-10-08 22:34                             ` Richard Stallman
2022-10-08 12:11                         ` Philip Kaludercic
2022-10-08 12:44                           ` German Pacenza
2022-10-08 13:02                             ` Philip Kaludercic
2022-10-08 13:07                           ` Dmitry Gutov
2022-10-08 13:42                             ` Philip Kaludercic
2022-10-08 14:02                               ` Dmitry Gutov

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87r0z95n0l.fsf@posteo.net \
    --to=philipk@posteo.net \
    --cc=57400@debbugs.gnu.org \
    --cc=ane@iki.fi \
    --cc=eliz@gnu.org \
    --cc=juri@linkov.net \
    --cc=rpluim@gmail.com \
    /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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).