Some minor updates:

On Mon, Feb 04, 2013 at 09:59:37PM +0200, Marius Gedminas wrote:
> The conversion process goes like this:
> - write a rules.txt like this one I used for zope.dottedname:
>     create repository zope.dottedname
>     end repository
>     # feel free to create multiple repositories in one go
>     # order of matches matters in this file
>     # trailing slashes in match rules are very important

>     match /
>       # skip revisions 129030, 129031 and 129032, since they're empty
>       # in my svn mirror (no files, no committer, no date) for some reason
>       # (bug in svnsync?), and they make svn-all-fast-export segfault
>       min revision 129030
>       max revision 129032
>     end match

This bit doesn't work (I still get the segfault).  What works is
re-running the conversion script so it picks up the pieces.

The three missing commits are test commits in /2github, so can be safely
ignored.  Besides, I doubt your Zope mirror will have the same defect.

A more interesting thing to add to the rules is this bit:

      match /Zope3/trunk/src/zope/dottedname/
        repository zope.dottedname
        branch monolithic-zope3
      end match

This way you can 'git blame' and see where the code actually originated.
Just be sure not to use "branch master" here, or you'll get a big mess.

For packages created before the namegeddon you might need more rules. is useful for finding the old
location of code (click on r75116 aka "Moving code to satellite" to see).

>     match /(zope\.dottedname)/trunk/
>       repository \1
>       branch master
>     end match
>     match /(zope\.dottedname)/branches/([^/]+)/
>       repository \1
>       branch \2
>     end match
>     match /(zope\.dottedname)/tags/([^/]+)/
>       repository \1
>       branch refs/tags/\2
>     end match
>     match /
>       # ignore all other projects
>     end match
> - run svn-all-fast-export --identity-map=authors.txt --rules=rules.txt 
> --stats \
>       /path/to/your/zope-svn-mirror
> - wait a bit
>     The first time I ran it it took ~18 wall clock minutes 

On my laptop (faster Core i5 CPU, SSD) it takes less than 4 wall clock

> - inspect ./zope.dottedname for sanity
>     I recommend tig as a very nice console-mode interactive git history 
> viewer.

'gitk --all' also works very well.

>     For an example of things to inspect, e.g., there was a deleted 3.4.1 tag
>     from, which shouldn't have been
>     deleted, according to, so I've
>     re-created the tag from refs/backups/r80495/tags/3.4.1 that was left by
>     the conversion tool.

This bit was 'git tag 3.4.1 refs/backups/r80495/tags/3.4.1'

> - upload to github

This bit is

    git remote add origin
    git push -u origin --all
    git push origin --tags

One more step at the end:

 - Remove old code from subversion, once you're sure the conversion is

     svn rm *
     echo 'See' > 
     svn add MOVED_TO_GITHUB
     svn ci -m "Moved to github"

Next I was going to add Travis CI integration, but, apparently, I need
to be an admin of the ZopeFoundation organization to set up the needed
hooks.  Hint, hint.

Marius Gedminas
-- -- Zope 3/BlueBream consulting and development

Attachment: signature.asc
Description: Digital signature

Zope-Dev maillist  -
**  No cross posts or HTML encoding!  **
(Related lists - )

Reply via email to