I'm currently working through the conversion of a 14 year old (!) svn repo to Fossil, and ran into dodgy behavior in one of the iterations.

Over the years, we've changed how we named branches and tags a few times. We had a mess like this:

    mms5_00
    mms6.3
    mms-7.0
    mms-v8

Dash or no dash, 'v' or no 'v', underscores vs dots...

We can more easily ignore messes like this with svn than with Fossil, since you have to go poking around in the "branches" subdirectory to see it in svn, whereas in Fossil, it's right there in the main UI.

So, we decided to clean these up in svn before converting to Fossil, since Fossil seems more aggressive about preserving history, no matter how distasteful. We did a bunch of

    svn mv file:///svn/branches/mms6.3 file:///svn/branches/mms-6.3

type stuff, then spent the 2 hours to convert the repo again.

On looking at the Files tab in the Fossil UI after conversion, we saw that we only had a subset of the original repo files! Yet, the .fossil DB file was the same size as with the previous conversion, so clearly we didn't actually lose anything.

We eventually figured out that Fossil was getting confused by the fact that the last svn checkin was on a branch instead of the trunk, and that branch held the file subset we saw in the Fossil Files tab.

We fixed that by doing one last bogus checkin on the svn repo trunk, completely redid the conversion (another 2 hours), and now Fossil is showing the correct directory structure in the Files tab.

The request, of course, is for the Fossil Git importer to either have some improvement that makes it smarter about recognizing the *true* trunk, or at least a flag that lets you tell it the trunk's tag name if it guesses wrong.

By the way, you might be realizing that Fossil would now be showing both "mms6.3" and "mms-6.3" branches after my "svn mv" command above. But, we've fixed that with Git's history rewriting abilities, since we have to use it as an intermediary anyway. The two branches are pure aliases for one another, so there's no harm removing the one with the obsolete version naming scheme, right?
_______________________________________________
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