In the past two weeks or so I've read about git, and after the initial dislike (lots of blunt anti-svn propaganda, which was effective in keeping me away) I liked the idea of switching to it. Some related points are below, but I'd like to only have a quick poll at this stage, so no need to start a my-choice-is-better-than-your-choice flamewar. Please reply to me with answers to these questions:
* On a scale of -10 to +10, how much do you want to switch to a distributed system? (-10 => I really want to stay with svn; +10 => I really want to switch; 0 => don't care.) * What are your preferences for a distributed system? List them in decreasing order of preference, or nothing if you don't care. (Considering everything you know about the tool: some central hub that uses it (like github or launchpad or whatever) and how well it is managed, or lack of one, availability of tools on misc platforms and how easy/hard it is to compile it, documentation of all kinds, etc etc.) * On a scale of 0 to 10, how concrete+technical are your reasons for having the above preference? (roughly, 0 => I asked my cat to choose for me; 1 => it's popular; 2 => I used it once and liked it; 5 => I used it much and liked it; 8 => I know enough to make a well informed choice and can write a page describing the advantages; 10 => I have used a number of systems and know exactly how they work, and I'm very familiar with the plt workflow and why it fits my choice, if you disagree I will flame you with excruciatingly long emails listing all of the mistakes you're about to make.) The related points: * This is just a rough poll. I might summarize the results later or maybe not. I might give higher weights for people who actively commit, etc. * I did read about git only, just because it seems to be the mosty popular, and among other things I'm trying to figure out if there's some glorious points elsewhere that I'm missing. * There are various motivations for considering a switch: the obvious global shift in hacker preferences, the obvious advantages of a distributed system, and the famous subversion bug that is still open for almost 2 years (http://subversion.tigris.org/issues/show_bug.cgi?id=3242). * I know that some people would prefer sticking with svn only because that's what they know. I think that with any of these systems it would be easy to come with a quick cheat-sheet for using a distributed system as if it's svn -- at least for a simple popular subset. * Converting the repository looks like it won't be hard (I've tried git-svn), but it's likely that branch histories will be lost. (With what I've seen, it's possible to do that with git-svn only if there is a uniform place for branches, and we have both `branches/user/x' and `branches/x'.) I don't think that this is a big problem, since svn makes it pretty hard to find that history anyway, so I doubt that anyone is using it. * There's a some bunch of code that will need to be readjusted. Almost all of it is obviously my stuff, but a few other places too. Specifically, drdr will need to adapt a little. (I've asked a friend who uses some dvcs (not git) in a company, and I think that the main difference is when should the tree be considered stable: with svn that should be on every commit, but with a dvcs that should be on every push (of a bunch of commits). (obviously, if you use a dvcs as if it's svn and push every commit, then there's no difference for you.)) * Pretty much the only slight problem that I've seen is that git doesn't have the same concept of properties. There are git attributes (which you store in ".gitattribute" files), but they're kept in a separate file rather than being attached to the file, and they're geared towards configuration values rather than allowing full files. -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _________________________________________________ For list-related administrative tasks: http://list.cs.brown.edu/mailman/listinfo/plt-dev