[cvsnt] Branching/Tagging Best Practices

Ryan Parlee rparlee-cvsnt at flyinghippo.com
Mon May 19 05:45:53 BST 2008


Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.


Arthur,

My version of cvsnt didn't have the -B option on commit.  I downloaded and 
installed the latest release and am beginnging to play with it.

I don't understand, however, the purpose behind this option.  Can you please 
tell me what this is used for and why it's important.  Also, internally does 
it work as any other tag except that it's just applied to the files which 
are committed?

Should we be using the -B option on all commits when doing bug fixing on a 
branch?

Thanks,
Ryan




"Arthur Barrett" <arthur.barrett at march-hare.com> wrote in message 
news:mailman.1041.1210973156.1277.cvsnt at cvsnt.org...
Ryan,

> I don't understand what you mean by "user defined
> changesets".  Can you
> please explain what these are and how I am supposed to use them?

An 'automatic changeset' (what SVN and many SCM tools call 'atomic
commits') is an ID that is generated and applied to ALL the files in a
commit.  The reason SVN calls these 'atomic' is that if the commit fails
you can use the generated id to 'roll back' the partially committed set.
SCM systems that use Oracle/MSSQL like ClearCase, CMSynergy, Dimensions
and our own EVSCM (previously known as CVSNT v3) support 'real' atomic
transactions which are automatically rolled out if there is a problem
with transmission/reception during commit.

A 'user defined changeset' (what CVSNT calls BUG IDs) is the same as an
automatic changeset, but can traverse multiple commits as well as
multiple files.  So you end up with 'user defined change set' 1001 as:
* Hello.c revisions 1.2-1.9
* Hello.h revisions 1.2-1.3

You can then use the changeset with merge to merge a changeset from one
branch to another rather than merging the entire branch.  So if you have
branch dev_1 and also branch dev_2 and you want to port a bug fix from
release 1 to release 2 you can use:

  cvs co -r dev_2 hello
  cd hello
  cvs up -j dev_1 -B 1001
  cvs ci -B 1001 -m "Merged bug 1001 to rel 2"

Other changes will not be included (unless they are dependant).

Regards,


Arthur




More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook