[Webtest] Integrating changes in CVS

Paul King webtest@lists.canoo.com
Wed, 18 Aug 2004 11:17:37 +1000


Ji Kim wrote:
> I have a more general question about how people maintain the changes. I
> have CVS repository of WebTest, stripped down from the initial Canoo's
> CVS checkout and updated with the new src.zip later point. It seemed to
> make sense to start with CVS check out since it was most complete. But
> it had more stuff that how the tool was going to be used and confusing,
> so I stripped it down to what was actually going to be used. Then with
> updates, it was easier to apply changes to my CVS repository. I am just
> wondering how people are handling the updates. I am not particularly
> knowledgeable in CVS so perhaps it's really about learning to use CVS
> better.

Removing bits and pieces gets messy unless you can limit the changes you 
are making to particular directories. Then you can simply limit CVS 
updates to the directories you haven't changed (and hope that things in 
the directories you aren't updating haven't changed so much as to break 
your build). You might also be able to make use of the vendor branch as 
per below but you might need to look into not copying things you don't 
want into HEAD. Not sure how well that will work.

Cheers, Paul.

-------------------

Here is what WINCVS help says:

> Tracking third-party sources
> 
> If you modify a program to better fit your site, you probably want to include your modifications when the next release of the program arrives.  CVS can help you with this task.
> 
> In the terminology used in CVS, the supplier of the program is called a "vendor".  The unmodified distribution from the vendor is checked in on its own branch, the "vendor branch".  CVS reserves branch 1.1.1 for this use.
> 
> When you modify the source and commit it, your revision will end up on the main trunk.  When a new release is made by the vendor, you commit it on the vendor branch and copy the modifications onto the main trunk.
> 
> Use the import command to create and update the vendor branch.  When you import a new file, the vendor branch is made the `head' revision, so anyone that checks out a copy of the file gets that revision.  When a local modification is committed it is placed on the main trunk, and made the `head' revision.