Dmitry Ivankov <divanorama@xxxxxxxxx> writes: > fast-import format declares 'committer_name SP' to be optional. But SP > between empty or not name and a email is obligatory and checked by Sorry, cannot parse this. > git-fsck, so fast-import must prepend the SP if the name is omitted. > Currently it doesn't. > > Name cannot contain LT or GT and ident always comes after SP in > fast-import. So reuse that SP as if a valid 'SP <email>' ident was passed. > > This fixes a ident parsing bug for a well-formed fast-import input. > Though the parsing is still loose and can accept a ill-formed input. > > Signed-off-by: Dmitry Ivankov <divanorama@xxxxxxxxx> > --- > fast-import.c | 4 ++++ > t/t9300-fast-import.sh | 2 +- > 2 files changed, 5 insertions(+), 1 deletions(-) > > diff --git a/fast-import.c b/fast-import.c > index 9e8d186..3194f4e 100644 > --- a/fast-import.c > +++ b/fast-import.c > @@ -1972,6 +1972,10 @@ static char *parse_ident(const char *buf) > size_t name_len; > char *ident; > > + /* ensure there is a space delimiter even if there is no name */ > + if (*buf == '<') > + --buf; > + > gt = strrchr(buf, '>'); > if (!gt) > die("Missing > in ident string: %s", buf); > diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh > index a659dd4..09ef6ba 100755 > --- a/t/t9300-fast-import.sh > +++ b/t/t9300-fast-import.sh > @@ -352,7 +352,7 @@ data <<COMMIT > empty commit > COMMIT > INPUT_END > -test_expect_failure 'B: accept and fixup committer with no name' ' > +test_expect_success 'B: accept and fixup committer with no name' ' > git fast-import <input && > out=$(git fsck) && > echo "$out" && -- 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