[cvsnt] Edit/Commit by bug ( was Latest updates )

Mike Wake mike.wake at thales-tts.com
Wed Aug 25 16:49:03 BST 2004


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.


Hi Tony,

I am interested in learning more about the Edit/Commit by Bug new to 2.0.52
<snip>
* Edit/Commit by bug.  The edit system allows you to specify a bug
number when editing, then unedit/commit based on that bug number.  The
notifyinfo procedure now takes some more parameters to handle that (do a
'cvs init' for the latest documentation on that if you're interested).
Basically the best documentation at the moment is 'cvs -H edit' and 'cvs
-H unedit'.  Most of these features need both a 2.0.52 client and server
to make any sense.
</snip>

Is the intention of this concept to be used like a mini branch per bug. 
  This would be great to allow developers to further isolate themselves 
from each other while still having the ability to checkin incremental 
changes to the repository without the overhead/mess created by applying 
  a branch to their whole working area.

Some of the groups around me are (un)/lucky enough to have clearcase 
licenses and have a nice front end that sets up a config_spec based on 
developer and change request/bug that tells clearcase to do a mkbranch 
on checkin.

Could this new "Edit/Commit by bug" feature be used to achieve something 
similar with CVSNT.

Below is a worked example of how I was thinking of manually achieving 
something similar with current CVSNT functionality.  This of course 
could do with a nice frontend to automate it and do the hard work. (Just 
like in Clearase).

Cheers
Mikew


Branch Per Feature Process Within CVS.

Stage 1: Starting out.
     checkout latest baseline
     cvs checkout main.cpp
     Or Update to latest baseline
     cvs update -A main.cpp
     Or update to baseline branch
     cvs update -r ib_v4_02_rX

Stage 2: Do some dev.
     Make some changes till the point that you wish to commit
     a snapshot of them to the repository.

Stage 3: Commit to working on a single Bug within this file.
     Ask Which Bug are you working on? User Types "Bug0123"
     Parse the output of cvs status main.cpp to check that it
     isn't already on this branch fb_Bug0123.
     if !onbranch(fb_Bug0123)
     {
        cvs tag -b fb_Bug0123 main.cpp
        cvs update -r fb_Bug0123 main.cpp
        cvs commit -m "Initial snapshot of fix to Bug0123" main.cpp
     }
     else
     {
        cvs commit -m "subsequent snapshot of work onBug0123" main.cpp
     }


Stage 4: Prepare for Ready_For_Recheck(RFR)
     Merge in latest changes from latest baseline.
     cvs update -jHEAD main.cpp
     or
     cvs update -jib_v4_02_rX

     resolve any conflicts
     do some more testing
     Commit any merged changes to the fb_Bug0123 Branch.
     cvs commit "Merged with latest baseline"

Stage 5: Mark as Ready_For_Recheck
     Now tag bug Ready_For_Recheck (RFR)
     cvs tag -c fb_Bug0123_RFR main.cpp

Stage 6: Prepare to Integrate into baseline
     To intergrate onto the tip of the main trunk.
     cvs update -A
     Or To integrate onto the tip of a branch called ib_v4_02_rX.
     cvs update -r ib_v4_02_rX

Stage 7: Integrate to the baseline using a merge.
     Merge from the Bug0123 Branch into the baseline.
     cvs update -jfb_Bug0123_RFR main.cpp

     resolve any conflicts
     do some more testing.

Stage 8: Commit the change to the Baseline.
     cvs commit -m "Integrated Bug0123"














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