From: Junio C Hamano Date: Tue, 02 Aug 2011 16:53:44 GMT Subject: Re: [PATCH 2/5] fast-import: don't fail on omitted committer name Message-ID: <7voc07g3fr.fsf@alter.siamese.dyndns.org> In-Reply-To: <1311831844-13123-3-git-send-email-divanorama@gmail.com> Dmitry Ivankov 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 ' 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 > --- > 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 < 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 out=$(git fsck) && > echo "$out" &&