[SVN] The GitHub Mirror

Allan Odgaard mailinglist at textmate.org
Sat Oct 17 21:30:38 UTC 2009

When I announced the GitHub mirror I thought I could do two-way sync.  
Unfortunately that is not the case (since ‘git svn’ wants to do a  
rebase, so all updates to master must come from svn to not break  
history, and sending back git changes to svn is itself problematic due  
to dropped meta data like author).

So I want to “discontinue” this thing — I can’t find time/ 
energy/motivation to write the proper support commands I had in mind  
for it.

The main disadvantage with GitHub is lacking ease-of-use for end  
users. Subversion wasn’t an ideal distribution mechanism for bundles,  
but it did make it easy enough for users to do a full checkout of all  
bundles, update checked out bundles (one command) or copy/paste  
instructions (from the manual) for installing a new bundle (as  
‘svn’ is already on the system).

But as GitHub certainly has advantages for the developers, my plan is  
to delete bundles from svn that see activity on GitHub. So likely this  
will be a slow migration to git, rather than just pulling the plug  
fully on Subversion.

I said above the main disadvantage with git is for the end-user, so my  
plan is to introduce a bundle distribution system which is independent  
of SCM. I’ve been holding out on this one, as it was on the list of  
things 2.0 should solve, but as the cat is already out of the bag wrt  
git, and 2.0 is not yet here, I think this part should be moved  
forward to 1.x.

For now I have done a simple CLI tool http://bundles.textmate.org/bl.bz2

It allows you to list (remote) bundles and install/uninstall them (the  
list will have the bundle prefixed with I if installed and U if  
installed but newer vesion available).

Everything fetched (including indexes) are kept in ~/Library/ 
Application Support/TextMate/Managed — presently TextMate does not  
look there, so you will need to symlink a searched Bundles folder to  
there (if you want to play with it now). I plan to release an update  
to 1.x where this is integrated (and where it also look in this  
location for installed bundles). Main problem is that the code written  
for this requires Leopard, and there are still lots of TextMate users  
on Tiger. I am not sure how involved it will be to make the code run  
on Tiger (it leverages frameworks written with Leopard in mind, the  
tool itself is fairly simple) — worst case I may make it a plug-in  
only loaded for Leopard users, and Tiger users will jsut need to  
manage bundles as presently done (except they are slowly moving from  
svn → git).

Presently there is one index maintained by me where bundles are  
signed. I am not sure whether this will be open for public  
submissions, or if bundle authors should run their own indexes, but I  
am leaning mostly toward the latter — it’s just too much work for  
us having to deal with hundreds of bundles. Probably a bundle can  
embed its “source” (index) in the info.plist so the user can easily  
“subscribe” to updates.

Anyway, just wanted to post an update on the situation, and feel free  
to play with the ‘bl’ tool. I have tried to make it work with  
system configured proxy (incl. username/password from key chain) but  
as I don’t have any proxy, this is untested. So if you have the  
chance to test this under a proxy setup I would be grateful to learn  
if it works or not.

More information about the textmate-dev mailing list