[PLUG-Devel] Using DVCS was: sourceforge or codeplex or googlecode for OSS hosting

Ted Gould ted at gould.cx
Tue Sep 16 06:51:52 MST 2008


On Mon, 2008-09-15 at 21:09 -0700, Josh Coffman wrote:
>   Why don't you start a thread and share you're dsvc experiences?
> I've not used any, but thought I might try mercurial out for fun.
> (yep... source control for fun..  I'm mental.)  Anyway, I'd be
> interested.  I do a lot of stuff that is just me or for a client that
> has their own setup.  So I'm not sure I see the point of dsvc in my
> case, but I'd like to know more.

I guess for me there are two things.  Really supporting branches and
disconnected access.

I think that every version control system, probably ever but certainly
recent ones, has supported branches.  But, in many cases that support is
weak and merging is so-so.  Then, if you want to be able to look at a
development log of development that was done on a branch, you better
have made some good check-in comments.  No real tool support.  By the
very nature of being a DVCS you really need to support branches
first-class and making merging useful and easy.

So what does this really mean?  In my development I do a lot more "micro
branches" because they are so easy and useful.  I'm much more willing to
throw a feature on a branch.  Why not?  And infact this is better
because if I want to cherry pick features for a release, or remove
features, having them on a branch makes it a complete idea.  I find that
this becomes a lot cleaner than the way I've done things before.  It
also makes code reviews easier and the result is "merge branch X" which
is simple for everyone involved.

Now, there is a downside.  Because branches are easy to maintain and
make I find that I sometimes forget to merge them in and keep them off
the mainline more.  I simply don't get around to it.  Where when I was
using SVN I'd try to merge in as quickly as possible because I knew it
couldn't handle a branch if it was away from mainline for too long.
This is simply me being lazy, but now I have tools that make me being
lazy easier :)

I travel, quite a bit.  Now some of this is to places like Europe, but
other is to the local coffee shop.  In general, it seems like half the
time "Public WiFi" sites end up being 'disconnected' for some technical
reason or another.  But, it doesn't matter.  I can branch, cherry pick
and check in whether or not I'm online or not.  It's just not a big
deal, which is a big deal to me.  I also find this makes things like
server maintenance something I don't follow anymore.

In general, if you're starting a new project or in a transition period I
would recommend switching to a DVCS.  If only one developer uses the 'D'
features once that's okay because there's no cost to everyone else.
And, I swear, that once will make you a new best friend :)

That's about all I can think of off the cuff.  If you guys have any
questions on specifics, or general stuff, I'd be happy to continue.
Direct me on where to go!  :)

			--Ted

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
Url : http://lists.PLUG.phoenix.az.us/pipermail/plug-devel/attachments/20080916/0043c6a3/attachment-0002.pgp 


More information about the PLUG-devel mailing list