Using the fossil head, i.e.
    This is fossil version 1.29 [5d4400400a] 2014-05-27 20:36:33 UTC

for a git export on my clone of
    http://core.tcl.tk/akupries/fx/home

I.e.
    fossil export --git > DUMP

the resulting DUMP contains lines of the form:

% grep -n ^committer DUMP| head
229901:committer Andreas Kupries < <akupr...@shaw.ca> 1367645581 +0000
[...]

Note the lone "<" between the user name and the email address in its own <...>.
The git fast_import chokes on that.

Looking at my 'info' the data looks ok, i.e

% fx user list
Checkout @ /home/aku/Projects/Tools/Fossil2Git/source.fossil
+-----------------+-------------+------------------------------------+------------------------------+----------------+
| Name            | Permissions | Contact                            |
Changed                      | Notes          |
+-----------------+-------------+------------------------------------+------------------------------+----------------+
| aku             | s           | Andreas Kupries <akupr...@shaw.ca> |
Wed Apr 23 22:59:44 PDT 2014 |                |
[...]


A quick look at
  static void print_person(const char *zUser)
in
  fossil/src/export.c

which I believe is most likely responsible for the broken output, did
not show anything obvious.

However the code looks to be a bit complex with searching for "<", ">", etc.
I suspect I have to single-step it to understand what is going on.

... Looking a bit more I now suspect the line

     zName = mprintf("%.*s", i, zContact);

because if I read the previous search right the "i" points to the
opening "<" of the mail at that point, making it part of the extracted
zName.

Yes, changing this to i-1 gets rid of the bogus "<" in the output and
"git fast_import" accepts the DUMP file.

Notes:

* I have no desire to bisect the repository to see where the issue came in ...

  ... Oh, ok, it seems to have been part of the initial implementation
of the git export in 2011.

      
http://www.fossil-scm.org/index.html/info/0f024d3e30741af3403c1c87ee5d689741e5a63c
     It seems to trigger only for users which have email addresses in
their contact info.

* The code should possibly trim trailing whitespace from the extracted name.

  With my small fix there is a trailing space in the name which is
placed into the output as well, leading to two spaces between name and
email. The fast_import is ok with that, it just offends my tastes re
data formatting.



-- 
Andreas Kupries
Senior Tcl Developer
Code to Cloud: Smarter, Safer, Fasterâ„¢
F: 778.786.1133
andre...@activestate.com
http://www.activestate.com
Learn about Stackato for Private PaaS: http://www.activestate.com/stackato

EuroTcl'2014, July 12-13, Munich, GER -- http://www.eurotcl.tcl3d.org/
21'st Tcl/Tk Conference: Nov 10-14, Portland, OR, USA --
http://www.tcl.tk/community/tcl2014/
Send mail to tclconfere...@googlegroups.com, by Sep 8
Registration is open.
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to