Should VDrift switch from Subversion to some form of DVCS? If so, which DVCS (Bazaar, Git, Mercurial, ...)? Why?
zimluura: i've heard git is good. but i've only ever used svn, and only for vdrift
thelusiv: i think we should switch to a DVCS.
Venzon: DVCS are neat, and it is nice to be able to checkpoint my changes without checking them in to the central repo and breaking it for everyone.... [...] if there's some benefit to switching, we should switch. DVCSs are cool
_nan_: i have no strong opinion on the vcs, will take what i get
fudje: Git in particular makes it very easy to pick and choose code from another branch without too much overhead. Also when a contributor has some stuff that they feel is ready, you can easily merge to a new branch and test it, and if it works out well that process can be applied to the main branch as well.
side discussion (here I am just copying the conversation verbatim because we got off topic, but it all seems important):
Quote:(12:06:29 AM) thelusiv: i think this [DVCS] would address the data sync problem i have
(12:06:44 AM) Venzon: how?
(12:07:37 AM) thelusiv: well it would make it easier for someone to keep their changes local to their machine, and push them all at once
(12:08:00 AM) Venzon: how would that help you?
(12:08:06 AM) Venzon: for this specific problem?
(12:08:23 AM) thelusiv: well i think data changes would be more isolated and happen more slowly
(12:08:33 AM) thelusiv: i guess, branching data repo would still be a good idea...hm
(12:08:50 AM) Venzon: slowly is bad :-)
(12:09:14 AM) thelusiv: yes, maybe slowly is the wrong word
(12:09:46 AM) thelusiv: more gradually?
(12:09:54 AM) thelusiv: idk
(12:09:58 AM) Venzon: DVCS are neat, and it is nice to be able to checkpoint my changes without checking them in to the central repo and breaking it for everyone....
(12:10:10 AM) thelusiv: that was kinda what i was trying to say...
(12:11:02 AM) _nan_: i guess it's my incremental updating of the data, love to get feedback asap
(12:11:02 AM) Venzon: yeah, but that's not you data problem
(12:11:53 AM) _nan_: i could try to defer the commits
(12:11:56 AM) thelusiv: yeah, really my data problem isn't that major anyway. i guess i COULD use svn better to use old revs of the data repo
(12:12:21 AM) Venzon: would it make it easier to apply patches from people without central repo access if we use DVCS?
(12:12:22 AM) thelusiv: maybe all i need is some way to tell which code goes with which data
(12:12:51 AM) thelusiv: _nan_: yeah, i don't want to get in the way of you getting feedback on changes.
(12:13:17 AM) thelusiv: Venzon: i think so
(12:13:37 AM) thelusiv: then we just have to authorize them to push
(12:13:42 AM) thelusiv: afaik
(12:13:48 AM) zimluura: how much specialized functionality is in your branch? would there be any call for the trunk assimilating the branch entirely?
(12:13:56 AM) Venzon: thelusiv, the way i look at it, you're working in the branch, you should have branched your data too....
(12:14:14 AM) thelusiv: Venzon: good point
(12:14:28 AM) Venzon: but we could always put data+code in the same data repo
(12:14:58 AM) thelusiv: zimluura: it's mostly orthogonal to other parts of VDrift. but it may end up not being so, and i just branched to avoid messing up new feature development
(12:15:30 AM) _nan_: should the development happen in branches exclusively?
(12:16:22 AM) thelusiv: _nan_: good question, i would say yes
(12:16:45 AM) thelusiv: and with DVCS, every pull (checkout) is a branch
(12:16:48 AM) Venzon: nan: would doing it that way cause much extra work for you?
(12:17:07 AM) _nan_: i'd miss the testers
(12:18:10 AM) Venzon: i don't think it's worth it, then
(12:18:34 AM) thelusiv: what about having two main branches
(12:18:54 AM) thelusiv: one for new features development
(12:19:01 AM) zimluura: i think that could help get releases out quicker
(12:19:26 AM) zimluura: err more frequently
(12:19:33 AM) thelusiv: and trunk would get new features merged in when they get finished
(12:19:48 AM) _nan_: a dev branch and a stable?
(12:19:52 AM) thelusiv: that way testers wouldn't need to check out every new branch, but just follow the development branch
(12:19:55 AM) thelusiv: _nan_: exactly
(12:20:22 AM) _nan_: sounds good
(12:20:27 AM) Venzon: works for me
We did not come to any final conclusion about DVCS or which one to use, although it seems everyone was either indifferent or for using a DVCS. This topic is a good one for further discussion. However the branching topic came up, and we all agreed that having a main development branch as well as the stable (trunk) version of VDrift was a good idea.
Further discussion of this topic belongs in this thread:
http://vdrift.net/Forum/viewtopic.php?t=1469