Jeff King <peff@xxxxxxxx> writes: > 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