git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] check-ref-format: require a repository for --branch

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 17, 2017, 03:33 UTC
Message-ID
<xmqqo9p6phxg.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20171017024203.6hqzy2paed6fyvym@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 18 quoted lines
> On Tue, Oct 17, 2017 at 10:22:31AM +0900, Junio C Hamano wrote:
>
>> > I like the state this puts us in, but there's one catch: we're
>> > completely changing the meaning of "check-ref-format --branch", aren't
>> > we?
>> >
>> > It is going from "this is how you resolve @{-1}" to "this is how you
>> > check the validity of a potential branch name". Do we need to pick a
>> > different name, and/or have a deprecation period?
>>  ...
>> At least that is what I wanted to happen in the patch.
>
> Ah, OK, I did not read carefully enough then. I think that would be OK,
> and probably close to what Jonathan was asking for.
>
> It leaves unresolved the fact that the resolving feature does not belong
> in check-ref-format in the first place, but we can just accept that as a
> historical wart.

Yup, I actually was in favor of removing that and making it a "purely checking validity" feature, but given that it has been advertised in the documentation since 604e0cb5 ("Documentation: describe check-ref-format --branch", 2009-10-12), it is a bit too late to tell users that rev-parse is the right/kosher thing to do.

> I don't think there is any need to prepare it upon my 4d03f955,
> though.  I'd think it could simply replace it.

Yeah, it ended up that way, it seems. Still it needs a bit of doc updates to balance the description. Right now we stress on @{-n} resolution too much.

Perhaps something like this?
 Documentation/git-check-ref-format.txt | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/Documentation/git-check-ref-format.txt b/Documentation/git-check-ref-format.txt
index 92777cef25..cf0a0b7df2 100644
--- a/Documentation/git-check-ref-format.txt
+++ b/Documentation/git-check-ref-format.txt
@@ -77,7 +77,14 @@ reference name expressions (see linkgit:gitrevisions[7]):
 
 . at-open-brace `@{` is used as a notation to access a reflog entry.
 
-With the `--branch` option, it expands the ``previous branch syntax''
+With the `--branch` option, the command takes a name and checks if
+it can be used as a valid branch name (e.g. when creating a new
+branch).  The rule `git check-ref-format --branch $name` implements
+may be stricter than what `git check-ref-format refs/heads/$name`
+says (e.g. a dash may appear at the beginning of a ref component,
+but it is explicitly forbidden at the beginning of a branch name).
+When run with `--branch` option in a repository, the input is first
+expanded for the ``previous branch syntax''
 `@{-n}`.  For example, `@{-1}` is a way to refer the last branch you
 were on.  This option should be used by porcelains to accept this
 syntax anywhere a branch name is expected, so they can act as if you
Previous: Jeff KingNext: Junio C Hamano
Message 17 of 36 in “bug with check-ref-format outside of repository”
  1. Marko KunglaJul 8, 2017
  2. Jeff KingJul 14, 2017
  3. check-ref-format: require a repository for --branchJeff King, Jul 14, 2017
  4. Jonathan NiederJul 17, 2017
  5. Marko KunglaJul 17, 2017
  6. Jeff KingAug 17, 2017
  7. Jeff KingAug 17, 2017
  8. Junio C HamanoAug 17, 2017
  9. Jeff KingAug 18, 2017
  10. Junio C HamanoAug 18, 2017
  11. Junio C HamanoOct 16, 2017
  12. Junio C HamanoOct 16, 2017
  13. Jeff KingOct 16, 2017
  14. Jonathan NiederOct 16, 2017
  15. Junio C HamanoOct 17, 2017
  16. Jeff KingOct 17, 2017
  17. Junio C HamanoOct 17, 2017
  18. Junio C HamanoOct 17, 2017
  19. 0/3 Re: [PATCH] check-ref-format: require a repository for --branchJonathan Nieder, Oct 17, 2017
  20. 1/3 check-ref-format --branch: do not expand @{...} outside repositoryJonathan Nieder, Oct 17, 2017
  21. 2/3 check-ref-format --branch: strip refs/heads/ using skip_prefixJonathan Nieder, Oct 17, 2017
  22. Junio C HamanoOct 17, 2017
  23. Jonathan NiederOct 17, 2017
  24. Junio C HamanoOct 17, 2017
  25. 3/3 check-ref-format doc: --branch validates and expands <branch>Jonathan Nieder, Oct 17, 2017
  26. Junio C HamanoOct 17, 2017
  27. Jonathan NiederOct 17, 2017
  28. Jeff KingOct 18, 2017
  29. Kevin DaudtOct 17, 2017
  30. Junio C HamanoOct 17, 2017
  31. Kevin DaudtOct 17, 2017
  32. Jeff KingOct 16, 2017
  33. Jonathan NiederOct 17, 2017
  34. Junio C HamanoOct 17, 2017
  35. Jonathan NiederOct 17, 2017
  36. Jonathan NiederOct 17, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.