[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Development practices using Subversion

From: Erik Anderson <erikba_at_teamworkgroup.com>
Date: 2004-08-06 20:18:24 CEST

It sounds like "floating label" would be what CVS would consider a "branch"
and "fixed label" would be what CVS would consider a "tag".

Subversion handles both these types in a similar fashion, by creating a
directory within the repository to hold this label. There are a couple ways
of organizing the tree structure and I'm certain that many on the list will
tell you that this email describes inappropriate structures. The online
book contains more information on how to organize repositories and makes
more sense once you understand the branch/tag description above.

One possible structure for your project is something like this:

project\
  v1.1\
    trunk\
    tags\
    branches\
  v1.2\
    trunk\
    tags\
    branches\

This layout assumes that work on v1.1 is done independantly of v1.2. The
main code would be in the "trunk" directory, "tags" would contain any "fixed
labels" (such as individual build releases), and "branches" would contain
any development branches that "sprouted" from the trunk to work on
sub-projects too big to keep within the main source base.

Here's another possible structure:

project\
  branches\
    v1.1\
    v1.2\
    development branches...
  builds\
    v1.1.562\
    v1.1.787\
    v1.2.30\
    v1.2.31\

I've left out the trunk here and assumed that people are developing in one
of the two branches (or a development branch). The builds directory
contains the fixed labels corresponding to released products.

----- Original Message -----
From: "Tim Purkerson" <timp@apcon.com>
To: <users@subversion.tigris.org>
Sent: Friday, August 06, 2004 10:22 AM
Subject: Development practices using Subversion

As our development department expands we are evaluating Subversion to be
our SCM package. It is up and running just fine, but I am struggling
with how to make it do the things we want it to do. So I have some
questions.

I am used to using labels(floating and fixed) for a software release and
haven't been able to figure out how Subversion implements it. For
example: If we were starting to work on release 1.2 of a product we
would set a floating label "Release 1.2" on the latest revision of all
of the source files. All checkouts and builds from then on would use
this label to get the correct source file revisions. This label would
keep moving up with each change until we made it a fixed label when we
shipped the new release. How would we implement this with Subversion? I
am assuming it would somehow use tags.

Another question is how to get the release number into the application's
about box automatically. What we would like to do is use the tag/label
as the release number. Using the example above if a user brought up the
about box it would say "Release 1.2". Is there a way to force this
tag/label into a 'version.h' file when it is checked out?

Any help would be appreciated.

Thanks.

Tim

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

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Fri Aug 6 20:11:55 2004

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.