Tuesday, September 30, 2008

Git mirror for the CDK

While slowly merging with Sweden, and ADSL which should reach my house in some two weeks, I am enjoying my new office space and Git to upload patches to the CDK. Christoph wondered if we should switch CDK from SVN to Git. A few developers objected, for various reasons: no native Windows clients (though msysgit might be the solution), no (stable) plugins for Eclipse, IDEA(?), etc.

I made the switch, and really happy about it.

Anyway, one issue for me not to switch the full CDK project would be to have a central place where we could host our Git repository. Now, GitHub does just that, and after inquiring with them about the 100MB limit, Tom emailed me:
    Hi Egon,

    We'd love to have your open source project on GitHub. The 100MB is currently a soft limit, so you won't have any problems uploading a larger repo. We hope you enjoy GitHub!

    Tom Preston-Werner
So, I created an account (I'm happy there are so few Egon's in the world :), and uploaded the CDK 1.2 branch, which, for now at least, will serve as mirror only, while SVN will be the primary repository.

You can easily check it out with:
    $ git clone git://
I am not sure how you can email me your patches, but I know it is possible and report on this later. This mirror is important to those who want to play with Git, as one no longer requires git-svn, dropping one dependency.

Now, it does provide some extra payload on my side, as I need to keep cdk SVN repository (or, better, my git-svn copy of it) synchronized with the git repository, but this turned out to be fairly easy:
    $ cd GitHub/cdk
    $ git pull ../../SourceForge/git-svn/cdk my-local-1.2
    $ git push
So, does this mean no goodies for people who stick to SVN? No, there are some, like this PunchCard:


  1. Regarding sending patches to you, couldn't I start with a clone of your repo and then share it. So then you could pull patches from my repo directly?

    Or have I misunderstood how Git works?

  2. Rajarshi, that's exactly how it can work!

    Make sure to do this:

    $ git config --global "Your Name Comes Here"
    $ git config --global

    So that that bit of information gets into the central repository properly. Actually, thinking about it... not sure if that would propagate to SVN... another advantage of Git :)