On Feb 4, 2008 9:28 PM, Corey H. [email protected] wrote:
Since it sounds like people don’t mind talking about source control, and
this group has people I trust, I thought, as I went through the
learning/evaluating, I’d ask questions/make statements and get people’s
thoughts. If people on the list get annoyed, though, just let me know
(offgroup is fine), and I’ll stop the distractions, unoffended.
At least this group didn’t react like others with “X is better than
I think David C. personally uses git for rspec, but being a
nice guy, pushes svn mirrors for it.
Coming from an old school source control world, I’m used to the idea of
“check out some files, work on them, check them back in.” It seems like DVCS
systems, at level 1, is “make a copy of your project, edit the files to make
the change, then merge it back into your main branch.” I see a lot
discussion with pictures about it really more like a bunch of
copies/branches of one project, moving through time independently, the
merging back at some future date. I’m having a bit of trouble in my mind
with this, so I’ll leave that to the next level.
Yeah, can be tricky sometimes, the learning curve can be steep, but is
When you checkout using a DVCS, you’re not actually getting just a
working copy, but the whole repository history.
In that way, you can get differences, compare, list the log messages,
everything without a single hit to the server (tried do a blame with
The idea of branching is that you can implement new features “outside”
trunk and don’t affect the code stability.
I’ve been using Bzr not just for personal projects, but also to track
changes and submit patches to other open source projects, just to
ruby (1.8 and 1.9)
rspec (even with the small contribution I did)
Since for most of these projects I don’t have commits rights, and some
of them I don’t even have access to the code (inline, hoe and
I create a “branch” for things, and do small commits based on the
changes I’ve introduced, but that will depend on the workflow you’re
Later, when that feature is ready for integration, you then prepare
and merge upstream with it.
Takes some time to get used to it
Anyway, at least with bzr, you can work in a similar way to subversion
(running a smart server) and have bound checkout.
In any case, read the documentation of all the dvcs to find the one
that fits your current workflow but will allow improve it with time.
A common mistake that people make when trying to design
something completely foolproof is to underestimate
the ingenuity of complete fools.