<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CollabNet Merge Tracking Summit Survey</title>
<style type="text/css">
.question { color: grey; }
.answer   { }
</style>
</head>

<body>
<div class="h2">
<h2>CollabNet Merge Tracking Summit Survey</h2>

<p>Responses to CollabNet's pre-<a href="summit.html">summit</a>
questionnaire are given below.  The respondents are anonymous,
but we indicate what business each is in.</p>


<div class="h3" id="web-info-services">
<h3>Responses from a <i>Web Information Services</i> company</h3>

<p class="question">What tools you have used previously had merge
tracking features, and did you like them?  Why or why not?</p>

<div class="answer"><p>Perforce. Its "integration" feature works very
well at tracking what has been merged between branches. It can merge
portions, or entire changelists.</p>

<p>P4 branches suck, but the integrate between them works great
because P4 remembers the associations between the trunk and the
branch, so it knows how to pair up the files for merging.</p></div>

<p class="question">What tasks did you use those features for?
(Define "merge tracking" as broadly as you need to answer this --
we're more interested in the tasks and how to make them easier than in
niceties of categorization.)</p>

<div class="answer"><p>We use few development branches, but when we
do: the integrate command keeps the branch up to date w.r.t the
trunk. The integrate command is also how we bring stuff *back* to the
trunk. Since the branch knows that revs N-M were merged onto the
branch, it won't try to reapply them to the trunk. You just get your
changes brought to trunk.</p>

<p>We also use branches for tracking releases. The integrations bring
over all changes from trunk to the release branch. In many cases,
we'll cherry pick specific changelists from trunk over to the release
branch.</p></div>

<p class="question">If you have used Subversion, what tasks do you
feel would have been easier with merge tracking functionality?  What
were you trying to accomplish, and how would you have liked Subversion
to behave to help you accomplish it?</p>

<div class="answer"><p>My work with Subversion has never involved heavy
branch work (and my company doesn't use svn).</p></div>

<p class="question">What version control tools have you had experience
with?</p>

<div class="answer"><p>CVS, SVN, rcs, Perforce, VSS</p></div>

<p class="question">What does your organization use branches for?
Select all that apply:

   a)  Maintenance/releases
   b)  Experimental efforts
   c)  Customized versions for customers
   d)  Other (describe)</p>

<div class="answer"><p>Maintenance/release, and some long-term dev
branches. We don't use them for experimental or for customer-specific
code.</p></div>

<p class="question">What is the size of your organization's data set
and what is the number of branches in your projects?</p>

<div class="answer"><p>Big :-). I know svn can handle our size tho.</p></div>

<p class="question">Summarize your general branch and development
strategy.</p>

<div class="answer"><p>See above.</p></div>

</div>  <!-- web-info-services -->

<div class="h3" id="desktop-software">
<h3>Responses from a <i>Desktop Software</i> company</h3>

<p class="question">What tools you have used previously had merge
tracking features, and did you like them?  Why or why not?</p>

<div class="answer"><p>ClearCase: Likes: 3-way merge editor; merge
info recorded in version tree; graphical display of version tree with
merge "hyperlinks"; use labels to identify file sets.  Dislikes: works
only on single files, not on group of files. Impossible to know what
changed between two releases (I needed to create my own tool that
analyzed the output of "lsvtree" command).</p>

<p>Perforce: Still learning all the features. I cannot find an easy
way to display the branch tree, when a branch was created, when files
were merged.  So far, I need to look at a lot of (text) history data
and create a merge tracking graph by hand. I may need to write my own
tool to do this analysis, similar to ClearCase.</p></div>

<p class="question">What tasks did you use those features for?
(Define "merge tracking" as broadly as you need to answer this --
we're more interested in the tasks and how to make them easier than in
niceties of categorization.)</p>

<div class="answer"><p>Basically I would like to know at a glace which
features/fixes are left out of a certain version/subtree. Too many
times in ClearCase we had a bug fixed on a branch but not in the main
trunk because a merge policy was not enforced. After we started to
merge all the hanging branches, the stability of the product improved
considerably. We also prevented any engineers except the Architects
from checking code into the main trunk, and have an e-mail sent if any
non-authorized person attempted to check into the main trunk.</p>

<p>The same for merges from the main trunk to working branches, so
that one can know how different is the branch from the main trunk
(i.e. how much work it will be to merge it back).</p></div>

<p class="question">If you have used Subversion, what tasks do you
feel would have been easier with merge tracking functionality?  What
were you trying to accomplish, and how would you have liked Subversion
to behave to help you accomplish it?</p>

<div class="answer"><p>We used Subversion for a large C++ project with
3 branches alive at any given time. We mostly used the "update"
command and automerge before a commit to the same branch. We never
automatically merged across branches. All cross-merges were done by
hand using a 3rd party tool (Araxis Merge).</p>

<p>I didn't like the graphical representation of the history of a
file, which was confusing and almost never useful. Subversion does not
record info about merges, so each engineer was forced to do double
work: fix a bug on the release branch, and at the same time fix the
same bug in the next release (development) branch. This was enforced
in order to make sure that no bug fix was only done on the branch and
never merged back to main.  Because of all of this, we tried to keep
the number of branches down to a minimum.</p></div>

<p class="question">What version control tools have you had experience
with?</p>

<div class="answer"><p>ClearCase: see above</p>

<p>SourceSafe : Never used for branching/merging, because it was
unreliable and sometimes it corrupted the source repository. After
finding the corruption/inconsistent state problems we switched to
Subversion.</p>

<p>Subversion: see above</p>

<p>CVS</p></div>

<p class="question">What does your organization use branches for?
Select all that apply:

   a)  Maintenance/releases
   b)  Experimental efforts
   c)  Customized versions for customers
   d)  Other (describe)</p>

<div class="answer"><p>A,b,c</p></div>

<p class="question">What is the size of your organization's data set
and what is the number of branches in your projects?</p>

<div class="answer"><p>Minimal data set is approx. 600Mb (core), but could
be much bigger if other components are added (tools, tests etc.)</p></div>

<p class="question">Summarize your general branch and development
strategy.</p>

<div class="answer"><p>One main branch tracks the official (public)
development of new code. Personal branches are used to implement new
features and are subject to periodical merges from the main
trunk. When the new feature is ready, it is merged back to the main
trunk or possibly to one active release branch.</p>

<p>[Release branches are created when the main trunk is ready for the
next release. Release branches receive bug fixes and are these fixes
are usually automatically merged to the main trunk.]</p></div>

</div>  <!-- desktop-software -->


<div class="h3" id="medical-systems">
<h3>Responses from a <i>Medical Systems</i> company</h3>

<p class="question">What tools you have used previously had merge
tracking features, and did you like them?  Why or why not?</p>

<div class="answer"><p>We currently use ClearCase with UCM. Developers
like the graph tool, the simple merging, the adding of merge arrows
when an actual merge is not needed, the ability to see where items
came from or where thy where merged, and the ability to trace who
actually made the change.</p>

<p>It's dog slow and hard to script nicely in order to get a daily
view if everything from one branch has been merged to another. Also it
is not 100% reliable and has its share of problems.</p></div>

<p class="question">What tasks did you use those features for?
(Define "merge tracking" as broadly as you need to answer this --
we're more interested in the tasks and how to make them easier than in
niceties of categorization.)</p>

<div class="answer"><p>As a medical device company we have to provide
trace-ability on a number of aspects, in order to prove that the final
product has been made with consideration of prior products and in a
good fashion. This is a lot easier with (almost requires) merge
tracking, so that we can trace any change anywhere, know who did it,
and when. We also have to maintain code for 10-12 years, which implies
a lot of versions and thus a lot of merging, so having merging being
as simple as possible is essential.</p>

<p>Merge tracking tasks are:</p>
<ul>
  <li>Easy merging of development work from a development branch to
  the main archive</li>

  <li>Ability to trace a change from any branch to the branch where it
  was originally done. And as a part of this identify the original
  changer.</li>

  <li>Ability to see what branches a change has been merged to.</li>

  <li>Ensuring that all changes made in an older project have been
  merged to a newer project.</li>

  <li>Daily merging of changes without repeating old merges or having
  to specify in detail what exactly to merge.</li>
</ul></div>

<p class="question">If you have used Subversion, what tasks do you
feel would have been easier with merge tracking functionality?  What
were you trying to accomplish, and how would you have liked Subversion
to behave to help you accomplish it?</p>

<div class="answer">
<ol>
  <li>Basic merging of changes from one project branch to another is
  rather painful, as one has to remember what changes where merged the
  last time.</li>

  <li>When looking at a merged change set to see who made a particular
  change this is not possible.</li>

  <li>When trying to identify what branches a change has been merged
  to this is not possible.</li>

  <li>When trying to identify where a merged change came from this is
  not possible.</li>

  <li>When merging the already poor information on moves/renames are
  completely lost.</li>
</ol></div>

<p class="question">What version control tools have you had experience
with?</p>

<div class="answer"><p>Mainly UCM and base ClearCase.</p></div>

<p class="question">What does your organization use branches for?
Select all that apply:

   a)  Maintenance/releases
   b)  Experimental efforts
   c)  Customized versions for customers
   d)  Other (describe)</p>

<div class="answer"><p>A, B, C, and D. For D the main usage is developer
branches used as a part of UCM.</p></div>

<p class="question">What is the size of your organization's data set
and what is the number of branches in your projects?</p>

<div class="answer"><p>The current data set is about 800-1000 MB and we
have about 12 project branches and about 100 developer branches.</p></div>

<p class="question">Summarize your general branch and development
strategy.</p>

<div class="answer"><p>The current setup starts with a main archive from
which each main project archive is created. The main archive (MIP) is
only used to merge the latest project into when a new project needs to
be created.  The project archives (MIP ?.?V1) are created when the
project starts (one new project every half year) and kept alive for as
long as 10-12 years depending on customers usage and FDA regulations.
On each project branch there are MultiSite ClearCase stream, from
which each developer has one or more development streams.  When a
project decides to make release (first one after half a year and then
based on customer demands) a release branch is created (MIP ?.?V1L?).
New versions of the project archives (MIP ?.?V?) may be created if
needed for customer specific bug fixing and isolation. This policy
does not scale and is being avoided.</p></div>

</div>  <!-- medical-systems -->


<div class="h3" id="investment-banking">
<h3>Responses from an <i>Investment Banking</i> company</h3>

<p class="question">What tools you have used previously had merge
tracking features, and did you like them?  Why or why not?</p>

<div class="answer"><p>Perforce.  My memory is fuzzy, but I remember not
being annoyed by it.</p></div>

<p class="question">What tasks did you use those features for?
(Define "merge tracking" as broadly as you need to answer this --
we're more interested in the tasks and how to make them easier than in
niceties of categorization.)</p>

<div class="answer"><p>Rolling changes from a branch into the
mainline.</p></div>

<p class="question">If you have used Subversion, what tasks do you
feel would have been easier with merge tracking functionality?  What
were you trying to accomplish, and how would you have liked Subversion
to behave to help you accomplish it?</p>

<div class="answer"><p>I have a branch and a mainline.  I want to roll all
changes from the branch into the mainline- then I want to come back
later and pick up more changes.  I don't want to have to think about
what I've already done.  It would be ideal if I saw the history from
the branch appear in the history for the mainline, but that's going
over the top a bit.  I'd be okay if I ended up with an automatically
generated log message that tells me that the guy who did the merge
isn't the guy who wrote the code and that I can find the real history
for the changes on the branch...</p></div>

<p class="question">What version control tools have you had experience
with?</p>

<div class="answer"><p>p4, cvs, vss (*sigh*)</p></div>

<p class="question">What does your organization use branches for?
Select all that apply:

   a)  Maintenance/releases
   b)  Experimental efforts
   c)  Customized versions for customers
   d)  Other (describe)</p>

<div class="answer"><p>mostly a, occasionally b</p></div>

<p class="question">What is the size of your organization's data set
and what is the number of branches in your projects?</p>

<div class="answer"><p>too many to count.</p></div>

<p class="question">Summarize your general branch and development
strategy.</p>

<div class="answer"><p>Our branch strategy is minimize branches and their
associated overhead.  We create branches only when we have a past tag
that needs work or if we really need it for parallel development.
Branches are a sometimes necessary evil.  People always have a
tendency to make a mess with them.  If anything, the most important
part of merge tracking is to protect people from themselves.  Warn
them when they're about to double merge or do something eqally
inclined to cause pain.</p></div>

</div>  <!-- investment-banking -->

<div class="h3" id="financial-information">
<h3>Responses from a <i>Financial Information</i> company</h3>

<p class="question">What tools you have used previously had merge
tracking features, and did you like them?  Why or why not?</p>

<div class="answer"><p>Pretty much just base Rational ClearCase -
experimented with UCM a bit (didn't like the posted delivery bit)</p>

<p>Nearly all merge tracking done through the CC merge manager.  Some
tracking done by running findmerge commands and logging results.</p>

<p>Like the CC merge manager gui and the flexibility of choosing
between branch, label or view configuration.  Do not like the
inability to export data from the merge manager into files (for
example to export the list of files merged for a report)</p></div>

<p class="question">What tasks did you use those features for?
(Define "merge tracking" as broadly as you need to answer this --
we're more interested in the tasks and how to make them easier than in
niceties of categorization.)</p>

<div class="answer"><p>Used the features to first preview potential
candidates that would merge between branches and then migrate code
changes from branch to branch.</p>

<p>Previews used to:</p>

<p>1) Provide evidence of needed merges so that merge
activities could be better planned.</p>

<p>Code migrations used to:</p>

<p>1) provide baselines for new development
efforts.</p>

<p>2) Rebase existing development efforts with
production changes</p></div>

<p class="question">If you have used Subversion, what tasks do you
feel would have been easier with merge tracking functionality?  What
were you trying to accomplish, and how would you have liked Subversion
to behave to help you accomplish it?</p>

<div class="answer"><p>I have not really used Subversion much at all.  I
did not find it very easy to figure out how to actually do a merge in
Subversion - it seemed very cryptic in terms of trying to decide where
the start and end points of a merge were.  I would like it to be
easier to merge from well defined points on a given branch (e.g. merge
from a label) and I would like to have reports of everything that
actually merged.  I would also like the ability to preview a merge,
getting a listing of potential merge candidates without having to
actually perform a merge (note: CC does this in part but it requires
merging of directory elements - this is acceptable to me as I can
simply cancel the checkout of the directory elements once a preview
has been generated)</p></div>

<p class="question">What version control tools have you had experience
with?</p>

<div class="answer"><p>RCS</p>

<p>Rational ClearCase</p></div>

<p class="question">What does your organization use branches for?
Select all that apply:<!-- the rest of this doesn't get nicely
                           formatted in the browser, but that's
                           probably okay -->

   a)      Maintenance/releases
   b)      Experimental efforts
   c)      Customized versions for customers
   d)      Other (describe)</p>

<div class="answer"><p>How about e) all of the above?  We primarily uses
branches for a) but we allow for local experiment branches and we
reserve the right to branch for a variety of reasons.  We look at
branches as ways to isolate changes from one another and there are
lots of reasons we might want to do that.  Our projects and releases
tend to be customer oriented so project requirements can differ
significantly from one to another.</p></div>

<p class="question"> What is the size of your organization's data set
and what is the number of branches in your projects?</p>

<div class="answer"><p>Our data set currently consists of 23 ClearCase
Vobs, the largest of these is around 15 G.  Of these there are several
that have multiple branches and are merged with regularity.  The
largest of these contains approximately 9000 elements and has as many
as 4-5 project branches active at any one time (main is not considered
a project branch).  Each branch represents a single development effort
(release) and the same branch type can exist in multiple Vobs.  There
can be multiple projects that encompass a development effort.</p></div>

<p class="question">Summarize your general branch and development
strategy.</p>

<div class="answer"><p>Our general strategy is to have the main branch
always represent production code and to branch as much as possible
from stable baselines off the main branch.  We do allow for cascading
when the need arises but we prefer to not let branches get more than
two levels deep.  New development efforts are given a branch when
needed.  Once a branch goes into production it is merged to main and
any other in-progress development efforts are rebased accordingly.
The branch that has gone into production then becomes the "emergency
fix" or "patch branch" so that emergency fixes can be made if
necessary.</p></div>

</div>  <!-- financial-information -->

</div>  <!-- h2 -->
</body>
</html>
