Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

(sort of OT) cvs/vendor supplied modules/our own modifications

by pg (Canon)
on Jul 24, 2004 at 17:07 UTC ( [id://377143]=perlquestion: print w/replies, xml ) Need Help??

pg has asked for the wisdom of the Perl Monks concerning the following question:

This is sort of OT, but not really.

We get packages from a vendor (some application), and they provide us updates periodically. At the same time, we make our own modifications to various modules. Obviously not ideal, but that is how life goes on.

Obviously we have to keep track of all the changes, and it is a given that cvs is the tool.

What's in my mind now, is to have a main branch, which we make changes to.

Every time we get a version from vendor, we create a new branch, and then merge this new branch back to the main branch (which includes our own changes). The merge then happens automatically for us, hopefully without conflict, although not much hope. But we can always resolve the conflicts.

Does anyone have a similar needs? What did you do?

  • Comment on (sort of OT) cvs/vendor supplied modules/our own modifications

Replies are listed 'Best First'.
Re: (sort of OT) cvs/vendor supplied modules/our own modifications
by hbo (Monk) on Jul 24, 2004 at 20:00 UTC
    But, given that CVS really is the solution you are stuck with, the procedure you outline is the recommended one. CVS supports this with the import command:
    import Import sources into CVS, using vendor branches · Synopsis: import [-options] repository vendortag releasetag..

    There are many alternatives to CVS, perforce and subversion being proprietary and free options respectively, and many of them may handle this task more or less better than CVS. But the real complexity is in the subsequent merge of the vendor branch into your mainline. None of the VC systems do this hard work for you.

    "Even if you are on the right track, you'll get run over if you just sit there." - Will Rogers
Re: (sort of OT) cvs/vendor supplied modules/our own modifications
by superfrink (Curate) on Jul 24, 2004 at 18:09 UTC
    I use CVS at work and for personal projects (I even used it for many undergrad assignments). My main complaint is trouble doing the branching and merging (also deleting and renaming files erase all history of those files). Maybe I just haven't learned enough about how to use CVS. (I assure you I've read and googled and tried to figure it out though.)

    One company I've worked with is currently considering subversion though they haven't switched over yet and I understand there is a fee to use it.

      Subversion solves the complaints you listed, including keeping the history when deleting/renaming files. I made the switch from CVS to Subversion a little while back with the help of the online version of a great book, and I've really liked it a lot.

      There shouldn't be a fee at all; subversion is licensed under the Apache 1.1 license (but with CollabNet as the copyright holder).

        I switched to subversion a while ago just for ease of branching and merging. But, I also needed compatibility with CVS-based hosting services (like SourceForge), so I wrote svn2cvs. With cvs2svn and this tool I made successfull transition to subversion.

        Vendor branches in subversion are just directories. Basic principle is following: You have version 1.0 of vendor (upstream) branch. You do copy (which is cheap in subversion) to your trunk (current working tree). When vendor release version 1.1, you do merge. Subversion will diff vendor version 1.0 and 1.1 and apply changes to your working tree. If there are conflicts, you will get original file, left and right merge, just to make it easier. All that is described in much more details in subversion book.

        I must also warn you: if you try subversion branches, you won't be able to go back to CVS :-)


        2share!2flame...
Re: (sort of OT) cvs/vendor supplied modules/our own modifications
by gaal (Parson) on Jul 24, 2004 at 17:24 UTC
    I'm not sure how helpful it'll be to you since you state that cvs is "the" tool, but have you tried out Arch? I found it infuriating to learn (and am still a beginner), but it seems to be better designed for the things you're describing than cvs. (It would work better if the vendor himself uses Arch, so I know this is a long shot.)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://377143]
Approved by gaal
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (5)
As of 2024-04-19 10:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found