Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Feature branches in CVS?

I'm duty-bound by policy to use CVS in this certain project, so even though I'd really to switch to something else, like Git, I cannot.

So, my real question goes like this: We have a convention that we create a new branch in CVS every time we make a release (we also tag, but that is besides the point). We call these version-branches, and they allow us to easily check out a specific version and make hot-fix changes to it - this is what our minor-releases are.

But now I have some large-ish, risk-ridden changes coming up and if I was working in Git, I'd be creating a feature-branch in the blink of an eye. However, working in CVS, I tried creating feature branches in another project and found that things quickly turned out messy. I ended up with lots of branches and I lost track of which branches were synched, which needed merging and which were no longer in use.

So, inching closer to the question mark, is it feasible to use feature-branches in CVS? Are they too much trouble to be worth it or will I eventually end up being sorry for not using them? Should I bite the bullet and just start coding in HEAD but bend my coding process to introduce the changes in the most unobtrusive way possible?

like image 312
Chris Vest Avatar asked Sep 26 '08 10:09

Chris Vest


People also ask

What is branch in CVS?

CVS allows you to isolate changes onto a separate line of development, known as a branch. When you change files on a branch, those changes do not appear on the main trunk or other branches. Later you can move changes from one branch to another branch (or the main trunk) by merging.

How do I create a new branch in CVS?

Use the command cvs tag -b branchname to create the branch. The tag command tags the last revisions that were committed to the repository or updated from the repository, which hopefully are the revisions before the changes you want to branch off of.

How do I merge branches in CVS?

You can merge changes made on a branch into your working copy by giving the ' -j branchname ' flag to the update subcommand.

What are CVS tags?

Tags are often used to record the version number used by the developers, rather than the CVS revision number, which is used primarily as a CVS internal designation. Tag names must start with a letter and can contain alphanumeric characters, hyphens (-), and underscores (_).


1 Answers

If you are the only one developing on the feature-branch, you could simply use Git as your "sandbox development" system and then once you have the changes done, merge them into your CVS repository.

You still gain the benefit of source control for your intermediate work product.

like image 144
Benoit Avatar answered Sep 27 '22 21:09

Benoit