[Nut-upsdev] conversion progress and goals (was Re: reposurgeon and svn:ignore on a newly added directory)

Charles Lepple clepple at gmail.com
Thu Apr 19 02:58:29 UTC 2012

On Apr 15, 2012, at 10:51 AM, Charles Lepple wrote:

> On Apr 15, 2012, at 7:33 AM, Arnaud Quette wrote:
>> nice, still on the road to git ;-)
>> how far, according to you, from the migration target?
> I think it depends on how much we want to look at the converted Git repository as the "official" history, versus an approximation (with the SVN+Trac history still available for reference if things get confusing). But maintaining a read-only SVN repository is a bit of an annoyance.
> We are pretty close to being able to do development on the Git repository as it stands now, but then again, we were able to do that from the git-svn conversion, too. The problem is that cleaning up additional things in the reposurgeon conversion will change hashes for some of the commits, which will make it even more annoying than using SVN for NUT development (since changes will need to be rebased). That's why I'm pushing so hard to get things correct the first time we switch over.

For the sake of comparison, and to see how complicated it would be, I put together some shell scripts which do reposurgeon-style cleanup on the git-svn conversion:


This yields the following:


It's still a work-in-progress, and git-svn doesn't include such niceties as representation of branch deletions, or easily baked-in .gitignore files. Also, I haven't bothered to reformat the git-svn-id lines into something more palatable. The git-svn-id thing is easily solved, but the others aren't so easy.

Free to peruse the converted tree, and make fun of my lame coding style in the conversion scripts.

Oh, and if you decide to run this, it's going to take a while. Given the increasingly long cycle times for testing even incremental changes, I'm leaning towards trying to take what I've learned here and somehow pushing it into reposurgeon. I haven't checked to see if this is covered in the reposurgeon test cases, but I'd like to programmatically create a SVN torture-test which cycles through all of the possible combinations of adding a file, adding svn:ignore properties, deleting a file, deleting an entire directory with svn:ignore properties, etc.

Charles Lepple
clepple at gmail

More information about the Nut-upsdev mailing list