Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Building a new CVS module from existing modules

Building a new CVS module from existing modules

Building a new CVS module from existing modules

CVS Experts,

I am working w/ a team that has been misusing CVS for code management for the past year, and I am trying to straighten things out.

Instead of using branches and tags against a single code mainline, the team has been creating a new code repository for each new internal release and/or code freeze point. So CVSREPO contains multiple repositories like:


The current working "mainline" is in App-1_0_0_4_4.

What I am trying to do is reconstruct the project history accurately into a single repository w/ App-1_0_0_1 as the starting point. Then I want to create a branch for each of the above repositories and import the respective repository into that branch.

So I wish to do the following:
1. Create a release branch RB-1_0_0_2 off the mainline that contains the identical codebase that is currently isolated in App-1_0_0_2.
2. Establish a release tag along this branch, REL-1_0_0_2, to reflect a snapshot of the code that was deployed to a customer.
3. Merge the released code back into the mainline.
4. Create another branch for the next release, and so on.

QUESTION: What is the best approach in CVS for accomplishing my goal?

REQMT: It is essential that the resulting mainline HEAD be identical to the current App-1_0_0_4_4 working repository.
REQMT: It is essential that each of the release branches be identical to the code in the corresponding orphan repository App-1_0_0_x. (sidebar - does anyone know how I can diff two separate cvs repositories with each other?)

Here's what I have tried:

1. Creating a release branch, and then manually overwriting the code in the branch w/ the code in the App-1_0_0_x in the file system. Then commiting the changes in CVS. This approach is highly manual, and very error prone.

2. Using cvs -ko import... to create a new branch as if the App-1_0_0_x code is "vendor" code. I'm not certain what the behaviors will be when I merge this branch into the mainline. I would really like for deleted files and directories in the branch to also be deleted in the mainline. I'm not confident that this approach is right, or will produce the results I want.

Any recommendations would be greatly appreciated.


Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members! Already a Member? Login

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close