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

[Subclipse-users] Recommendations for branch/tag structure for multi-developer project

From: Jake C <buddhabuddy_at_hotmail.com>
Date: 2006-03-13 23:07:57 CET

I'm trying to figure out a strategy for branching/tagging, and would like
some help/advice. It seems like a pretty common setup.

Currently, all development is on HEAD, and we make a tag at test and
production. VERY sloppy (and all my fault *blush*).

I would like each developer to have their own "under development" branch, so
they can feel safe checking things in at any time. We don't have the luxury
of working on a single task at a time, so multiple "under development"
branches will be necessary for each developer. The intent is that if the
developer needs to work on a different task, they can just check in their
current task's code and "Switch" to a different task.

How should this be managed without creating a mess in the "branchs" folder?
I see something like this:
<Project>/branches/dev/<dev1>/FeatReq25

However, the dev folders will very quickly get too many subfolders in there.
Is it OK to delete these working folders at some point (after acceptance,
maybe), or is it better to just have a few generic task directories? That
would keep the individual developer's folders under control, but it seems
like that would make file histories look quite odd, and it would not be as
easy to tell which branch was for which task.

Then the question is where to merge completed tasks? Once a developer
completes a task, it goes to Test. We don't currently have a separate
"Integration Test" phase; that is ALL we do. When we are ready to go to
Test, all completed tasks are loaded onto the test server. Should we then
have a "test" branch (<Project>/branches/test), or should this be the
purpose of HEAD? In the not too distant future, I can see us having multiple
versions under Test, so I guessing that we will end up with something like
this:
<Project>/branches/test/V1.2/(dev,RC1,RC2,...,Final)

Within each test phase I see creating a tag each time the test server is
updated, so we know exactly what everything looks like when a bug is
discovered.
<Project>/tags/test/V1.2/RC2/ts20060313114300

I have a STRONG feeling I am making this MUCH harder than it needs to be...
as well as a fear that it isn't versitile enough...

OK, so then we get into the nitty-gritty of details. We're starting V1.2, so
I create our dev branch and my sandbox:
<Project>/branches/test/V1.2/dev (from latest branch in V1.1)
<Project>/branches/dev/<myfolder>/FeatReq25 (from above)
Before I'm finished I also create FeatReq28. As I complete tasks, I merge
them back into V1.2/dev, which may have had other things checked in since I
branched. Is this one of those cases where I need to merge the "trunk" into
my sandbox, THEN merge my sandbox back into the trunk, or is there a way to
just integrate it into the trunk?

Thanks in advance for any help...

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subclipse.tigris.org
For additional commands, e-mail: users-help@subclipse.tigris.org
Received on Mon Mar 13 23:08:06 2006

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