git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: SP in committer line in fast-import stream

From
Dmitry Ivankov <divanorama@gmail.com>
Date
Jul 18, 2011, 15:38 UTC
Message-ID
<loom.20110718T172927-173@post.gmane.org>
In-Reply-To
<CAE3X6mwJquoHj06FVGTsg0qtzyTwbd6gNqy7J4yWiVF-+p-23Q@mail.gmail.com>
Hi,
SASAKI Suguru <sss.sonik <at> gmail.com> writes:
Show 41 quoted lines
> 
> Hi,
> 
> I'm working with data from `bzr fast-export` and `git fast-import`.
> (bzr is 2.4b5, git is 1.7.5.4, on Debian GNU/Linux (sid))
> 
> Export and import themselves are OK,
> but `git fsck --strict` exits with error, saying:
> 
>   error in commit 2e7a16fbe57b555c1c5954470ef66f3a2a089288: invalid
> author/committer line - missing space before email
> 
> and pushing to remote like GitHub fails.
> 
> I found minimal OK-data unlike `bzr fast-export` outputs and NG-data
> like `bzr fast-export`.
> (Attached: test_NG.data.txt and test_OK.data.txt)
> 
> Only one difference between these is a space in committer line.
>   * OK: 'committer' SP SP LT GT ...
>   * NG: 'committer' SP    LT GT ...
> 
> `man git-fast-import` says:
> 
>   commit
>     Create or update a branch with a new commit, recording one logical
> 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
>       data
>       ('from' SP <committish> LF)?
>       ('merge' SP <committish> LF)?
>       (filemodify | filedelete | filecopy | filerename | filedeleteall
> | notemodify)*
>       LF?
> 
> I think, from this notations, both data is OK.
> What's the problem?

The problem is with git-fast-import that it doesn't verify the format strictly here. For example following (no LT) will pass: <name> SP <email> GT The second problem is that it generates "bad" committer, in fact name-email is used as-is, so at least it should convert absent name to a empty name. Or maybe just fix the format to make string obligatory. There even is a third minor problem, fsck will report confusing "missing space" for the no-LT example.

Third one is a clear. Your one is the second one, while internally it pulls the first one too.

The shortest fix is to read documentation as 'committer' SP <name> SP LT <email> GT SP <when> LF

> 
> Regards,
> 
Previous: SASAKI SuguruNext: SASAKI Suguru
Message 2 of 5 in “SP in committer line in fast-import stream”
  1. SASAKI SuguruJul 18, 2011
  2. Dmitry IvankovJul 18, 2011
  3. SASAKI SuguruJul 18, 2011
  4. Dmitry IvankovJul 18, 2011
  5. SASAKI SuguruJul 18, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.