[PATCH] fast-import: Document author/committer/tagger name is optional
The fast-import parser does not validate that the author, committer or tagger name component contains both a name and an email address. Therefore the name component has always been optional. Correct the documentation to match the implementation.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
David Reiss <dreiss@facebook.com> wrote:
> >> author <somename> 1261454209 +0000
> >> committer <somename> 1261454209 +0000
> > a foreign system where the data might not reasonably exist.
> But shouldn't there still be an extra space? One to separate "author"
> from the empty name, and one to separate the empty name from the email?
> If not, then I think this change should be made. (I couldn't find any
> authoritative documentation on what constitutes a valid commit object.)
Yes, we should do this.
Documentation/git-fast-import.txt | 6 +++---
fast-import.c | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)diff --git a/Documentation/git-fast-import.txt b/Documentation/git-fast-import.txt
index 288032c..e6d364f 100644
--- a/Documentation/git-fast-import.txt
+++ b/Documentation/git-fast-import.txt
@@ -311,8 +311,8 @@ change to the project.
....
'commit' SP <ref> LF
mark?
- ('author' SP <name> SP LT <email> GT SP <when> LF)?
- 'committer' SP <name> SP LT <email> GT SP <when> LF
+ ('author' (SP <name>)? SP LT <email> GT SP <when> LF)?
+ 'committer' (SP <name>)? SP LT <email> GT SP <when> LF
data
('from' SP <committish> LF)?
('merge' SP <committish> LF)?
@@ -657,7 +657,7 @@ lightweight (non-annotated) tags see the `reset` command below.
....
'tag' SP <name> LF
'from' SP <committish> LF
- 'tagger' SP <name> SP LT <email> GT SP <when> LF
+ 'tagger' (SP <name>)? SP LT <email> GT SP <when> LF
data
....
diff --git a/fast-import.c b/fast-import.c
index dd3c99d..cd87049 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -19,8 +19,8 @@ Format of STDIN stream:
new_commit ::= 'commit' sp ref_str lf
mark?
- ('author' sp name sp '<' email '>' sp when lf)?
- 'committer' sp name sp '<' email '>' sp when lf
+ ('author' (sp name)? sp '<' email '>' sp when lf)?
+ 'committer' (sp name)? sp '<' email '>' sp when lf
commit_msg
('from' sp committish lf)?
('merge' sp committish lf)*
@@ -47,7 +47,7 @@ Format of STDIN stream:
new_tag ::= 'tag' sp tag_str lf
'from' sp committish lf
- ('tagger' sp name sp '<' email '>' sp when lf)?
+ ('tagger' (sp name)? sp '<' email '>' sp when lf)?
tag_msg;
tag_msg ::= data;
--
1.6.6.307.gba67
--
Shawn.