[plt-dev] VCS poll
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!