Anders Melchiorsen <mail@xxxxxxxxxxxxxxxx> writes: > The refspec format description was a mix of regexp and BNF, making it > very difficult to read. > > The syntax is now easier to read, though wrong: all parts of the > refspec are actually optional. It probably is easier to read, but strictly speaking it is not wrong. The two parts, <src> and <dst>, _always_ exist, even though either or both of them can be an empty string. > diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt > index 6150b1b..df99c0b 100644 > --- a/Documentation/git-push.txt > +++ b/Documentation/git-push.txt > @@ -32,7 +32,7 @@ OPTIONS > > <refspec>...:: > The canonical format of a <refspec> parameter is > - `+?<src>:<dst>`; that is, an optional plus `{plus}`, followed > + `[+]<src>:<dst>`; that is, an optional plus `{plus}`, followed > by the source ref, followed by a colon `:`, followed by > the destination ref. I am wondering if it would be clearer and easier to understand if we just said: The canonical format of a <refspec> parameter is an optional plus `{plus}`, followed by the source ref, followed by a colon `:`, followed by the destination ref. Find various forms of refspecs in examples section. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html