----- Original Message ----- > From: "Nathan Gray" <n8gray@xxxxxxxxxx> > Sent: Tuesday, March 6, 2012 2:29:59 PM > Subject: Re: Approaches to SVN to Git conversion (was: Re: [RFC] "Remote helper for Subversion" project) > > > > Personally, I think SVN export will always need a strong manual > > > component to get the best results, so I've put quite a bit of work > > > into designing a good SVN history format. Like git-fast-import, > > > it's an ASCII format designed both for human and machine > > > consumption... > > > > First, I'm very impressed that you managed to get a language like > > this up and working. It could prove very useful going forward. On > > the flip side, from my experiments over the last year I've actually > > been leaning toward a solution that is more implicit than explicit. > > Taking git-svn as a model, I've been trying to define a mapping > > system (in Perl): > > > > my %branch_spec = { '/trunk/projname' => 'master', > > '/branches/*/projname' => '/refs/heads/*' }; > > my %tag_spec = { '/tags/*/projname' => '/refs/tags/*' }; > > The problem of specifying and detecting branches is a major problem in > my upcoming conversion. We've got toplevel trunk/branches/tags > directories but underneath "branches" it's a free-for-all: > > /branches/codenameA/{projectA,projectB,projectC} > /branches/codenameB (actually a branch of projectA) > /branches/developers/joe/frobnicator-experiment (also a branch of > projectA) > > Clearly there's no simple regex that's going to capture this, so I'm > reduced to listing every branch of projectA, which is tedious and > error-prone. However, what *would* work fabulously well for me is > "marker file" detection. Every copy of projectA has a certain file at > it's root. Let's call it "markerFile.txt". What I'd really love is a > way to say: > > my %branch_markers = {'/branches/**/markerFile.txt' => > '/refs/heads/**'} Ooo... I like it. I hadn't hit on this idea yet, but it certainly is a very helpful heuristic. I doubt I'd have any sort of demo code for you in the near future, but it's definitely an idea to roll into the mix. Thanks, Stephen -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html