[OSM-dev] I converted the rails port to Git

Ævar Arnfjörð Bjarmason avarab at gmail.com
Sun Feb 21 22:30:30 GMT 2010


We were discussing maybe moving over to Git in #osm and I thought I'd
do a quick conversion just to show how easy it is:

    http://github.com/avar/openstreetmap-website

Here are the commands you need to execute to convert it yourself:

    http://wiki.github.com/avar/openstreetmap-website/subversion-to-git-commands

One thing I didn't do was rewrite commits so that they have proper
author names / emails. The best I could find for this purpose was
this: http://wiki.openstreetmap.org/wiki/Subversion#Subversion_Users

Is anyone maintaining a file with the E-Mail addresses of commiters?
Tom?

As for converting other bits of our SVN here are the programs that use
branches:

    $ find . -type d -name '*branch*'
    ./applications/routing/yours/branches
    ./applications/rendering/tilesAtHome-dev/branches
    ./applications/editors/merkaartor-branches
    ./applications/utils/srtm2postgis/branches
    ./applications/utils/osmosis/branches
    ./applications/utils/downloading/JTileDownloader/branches
    ./sites/other/route-altitude-profile/branches
    ./sites/rails_port_branches

Those have to be converted with git-svn's --branch command, the rest
can just be filtered out of a conversion of the whole repo with
git-filter-branch's --subdirectory-filter.

We could convert stuff incrementally from Subversion as developers
want. If you have a project in openstreetmap's subversion and you've
recently joined the Sainthood of the Church of Git and would like to
convert your project: speak up. We can probably figure something out.

We discussed briefly on IRC where we would host our Git repositories
if we hypothetically converted all of the OpenStreetMap SVN to
it. Personally I think Github would be great for that, the alternative
of just setting up our own git ssh:// and gitweb really misses the
added benefit of the web-based forking, pull requests,
multi-repostiory tracking and the other collaborative aspects of git
which really shine through with Github.

Some people on IRC were worried about the case where Github might be
down and they wanted to deploy the site. It is down every once in a
while but in those cases it should be just a matter of doing:

    git push ssh://deploy.openstreetmap.org/repos/web.git master

>From your local machine which also has those changes, and of course it
would also be trivial to automatically replicate Github's repositories
somewhere else as commits come in due to the distributed nature of
Git.

In the very worst case of it getting nuked from orbit by invading
aliens you'll just copy the ssh keys you've allowed to somewhere else
and tell commiters to do:

    git config remote.origin.url
git://aliens-ate-github.org/openstreetmap/web.git

:)




More information about the dev mailing list