Howdy,

Discovered a potential bug with fossil's ability to import git
repositories.  This issue appears to happen when a git repository has a
commit that removes all files from it.  What happens is that fossil
'skips' the changeset with all files removed in it, resulting in a
dangling ancestor.

Note I am attaching a compressed git fast-export stream from a git
repository I created to illustrate the bug.

How to reproduce using the attached fast-export stream:

 1) gunzip -c example.fi.gz | fossil import --git example.fossil
 2) fossil ui example.fossil
 3) Select 'Timeline'

You will see that 'trunk' goes up until it hits the revision before
the deletion of all files.  Then the revision that adds files back
again is created on a parallel unnamed branch with a dangling
ancestor.

As a side effect of this, if you attempt to open a changeset on the
'dangling' branch and edit it via the UI, you are greeted with the
following:

  fossil(81780,0x7fff7a242310) malloc: *** error for object 0x10db30790:
  pointer being freed was not allocated
  *** set a breakpoint in malloc_error_break to debug

This behavior was seen on Fossil 1.28.

Note I checked the fast-export stream and the 'delete' commit is
there, so something is eating the commit.

As a side note, is there any way to recover from this scenario?  I've
got a personal 16 year old repository that went from CVS -> Subversion
-> Fossil by way of git that has the 'dangling' commit and I'm unable
to edit the starting point of the dangling commit due to the pointer
error above.

If you require any further information or want me to create a ticket,
let me know.

Cheers!

-- 
Christopher M. Fuhrman
cfuhr...@pobox.com


Attachment: example.fi.gz
Description: GNU Zip compressed data

_______________________________________________
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