[SVN] GitHub Mirror

Allan Odgaard mailinglist at textmate.org
Wed Jun 10 09:57:58 UTC 2009

We have mirrored all (non-review) bundles at GitHub: http://github.com/textmate/

This will be a two-way mirror meaning that we will ensure that the  
GitHub bundles reflect latest svn changes and vice versa, so you can  
commit to whichever you prefer (although we’ll need to add you as a  
contributor to allow you to push directly to this account, but for  
bundles you are already maintainer for, this is no problem).

We have exported the bundles with full (branch) history and author  
info to the best of our abilities. For those authors which did not  
already have a GitHub account we used «nick»@svn.textmate.org as the  
commit email address, so just add that to your GitHub account for  
proper linking of commits to your account.

For this reason, we would appreciate if existing forked bundles were  
rebased against this “master mirror”, i.e. if you already maintain  
your bundle on GitHub, and that bundle is also in svn, these steps are  
necessary (using the AppleScript bundle as an example):

   # first go to _your_ repository
   cd «your (local) git repository checkout»

   # make a new branch for the rebased version which we will create
   git checkout -b rebased

   # add and fetch the “official mirror”
   git remote add -f textmate git://github.com/textmate/ 

   # find address of last svn commit (address is different in your  
repos. and official mirror since meta data in history is different,  
but content is the same):
   git log --pretty=oneline|grep "$(git log --pretty=format:%s  
textmate/master|head -n1)"

     > 57355db710da9311fc36723be6b5faea3bb6f2a0 • change single-quoted  
string to double-quoted when generating version string.

   # make our (“official mirror”) the new base of commits you have  
which are not in svn
   git rebase --onto textmate/master 57355db710d master

   # push that new branch as ‘rebased’ to _your_ repository
   git push origin rebased

After this your repository have a new branch called ‘rebased’ which is  
really a fork of the official mirror — send me a pull request for that  
branch, I will then pull that so the official mirror receive your  
changes, and after that you can delete your repository and work from a  
fork of the official mirror.

That said, if you don’t feel your commits should go into svn just yet,  
you can fork the official mirror, then push ‘rebased’ to that fork,  
and _later_ send us a pull request, or become contributor on the  
official mirror and push ‘rebased’ as ‘next’ or similiar.

The essence here is really that I would very much appreciate it if all  
existing bundles mirrored on GitHub are rebased against this new  
official mirror, I know this sounds a bit dramatic, but I think this  
is for the better and the sooner we get this done…

More information about the textmate-dev mailing list