You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Colin D Bennett <cb...@radsoft.com> on 2002/09/08 01:53:31 UTC

Using Subversion in Real Life; merging strategies?

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I'm trying to find out what changes we'd have to make to our development 
process if we switched to Subversion (which I hope to convince my colleagues 
to do!).

I've used CVS, ClearCase (I'd rather die than use that POS again), and am 
currently using a product called TrueCM at work but have been using 
Subversion for several months for my personal projects and am extremely happy 
with it. (Sure, it took my entire Saturday last week to figure out why the 
new SVN wouldn't import my dump file, then get the svn-convert-2451 or 
whatever it is branch compiled, and convert over the repository. But I 
learned a lot.) I'd love to help with Subversion development, but I haven't 
written more than a few hundred lines of C code in the last couple years. I'm 
mostly a Java hacker these days. But is there a list of things that need to 
be done, where I could get started?

But I digress. Let me describe how we operate at work, and maybe someone can 
suggest how this might apply if we switched to subversion. We use the 
branching/merging paradigm at work. Usually each developer has one branch 
where all his/her work is done. Sometimes we'll create sub-branches for big 
tasks or refactors. Our repository branches look like this:

Current ("stable" branch, Integration is promoted here every 2 weeks)
	Integration ("HEAD" branch)
		cdb (user branch)
		ccooley (...)
		kdrake (...)
		[...]

So we all work in our own branches. When we're ready to integrate with the 
"HEAD" (which in this case is Integration), here's what I would do, as cdb:

  1. Take the "Integration Hat", a physical token (a plastic crown) :) which 
functions as a mutex so no one messes with Integration while we're merging
  2. Make sure all my stuff is checked into the "cdb" branch.
  3. Merge the differences between Integration and cdb *into my workspace*. 
With our current tool, TrueCM, merges are into my "working copy", in SVN 
terms, and don't go into my cdb branch until I check them in.
  4. Fix any conflicts, make sure regression tests run, etc.
  5. Now check merged files in to cdb branch.
  6. "Promote" cdb to Integration, in TrueCM terms. This means that cdb and 
Integration are exactly the same after this step.

I'd appreciate any description of how you use Subversion for branching, or 
links to pages with tips on this. I was excited to find the Linux1394 page 
this morning, which had the first actual description of how merging between 
branches can be done.

BTW, (*Web Site suggestion*) I think it would be great to have a list of open 
source projects that are using subversion. I can't understand why anyone 
would want to use CVS anymore. I certainly won't ever touch it again. Except 
that it's more accessible: it comes with more Linux distros, while Subversion 
(until recently, perhaps) has required a bootstrap download, checkout 
(extremely painful on my poor modem. Can we expect performance increases 
here?), download of apr, httpd-2.0, compiling all of them, etc. I finally 
made a nice little shell script that will update, build, and install the 
latest subversion (only I can't find a way to automatically detect what 
version of neon I need). It works out pretty nicely.

Cheers,
Colin
- -- 
Colin D. Bennett <cb...@radsoft.com>
[ RADSoft: Rapid Engineering Specialists ]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE9eq2ehU94DiH2eqQRAvVGAJwOQZNMHZoN0sTRTbGcz/r90eQRFwCgg96/
ld6G9R9bfXoUknePNRuNJSA=
=qabv
-----END PGP SIGNATURE-----


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Using Subversion in Real Life; merging strategies?

Posted by Colin D Bennett <cb...@radsoft.com>.
On Sunday 08 September 2002 04:54 pm, Brad Appleton wrote:
> I have a webpage of relatively tool-independent "best practices" for
> branching at: http://acme.bradapp.net
> [snip]
> Also, if you take a peek at http://www.berczuk.com/scm-patterns-book, I
> [snip]

Excellent! Thanks for the info. Your site looks very interesting. Looks like 
I'm not going to be short of reading material for a while.

> The book mentions subversion as a next-gen replacement for CVS. Maybe in
> the next edition it can say more about Subversion and include some
> examples.

That would be awesome.

-- 
Colin D. Bennett <cb...@radsoft.com>
[ RADSoft: Rapid Engineering Specialists ]

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Using Subversion in Real Life; merging strategies?

Posted by Brad Appleton <br...@bradapp.net>.
On Sat, Sep 07, 2002 at 06:53:31PM -0700, Colin D Bennett wrote:
> I'd appreciate any description of how you use Subversion for branching, or 
> links to pages with tips on this.

I have a webpage of relatively tool-independent "best practices" for branching at:
	http://acme.bradapp.net

(goto the "SCM Best Practices" hyperlink, then look for branching). The only prerequisites are a tool with good branching support. The best practices are documented as "patterns" and are commonly used with many SCM tools across the industry (including ClearCase, which I see you don't like, but these practices are not specific to ClearCase. The work just as well with Perforce, or other tools that have good support for symbolically named branches)

Also, if you take a peek at http://www.berczuk.com/scm-patterns-book, I think there is still a draft manuscript there of a book with some basic ("core") patterns for version control that include some of the more basic and common branching patterns. (the branching patterns in the book are taken from the branching patterns in the previous website). At present, the draft is freely available. Sometime very soon (I think during this month) that will no longer be the case and you'll have to go buy the book for the "final draft".

The book mentions subversion as a next-gen replacement for CVS. Maybe in the next edition it can say more about Subversion and include some examples.

-- 
Brad Appleton <br...@bradapp.net>  http://www.bradapp.net/
 "Education is the ability to listen to almost anything
  without losing your temper or your self-confidence."
   -- Robert Frost

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org