>I'm all for it.
>How do I do it? (Using WinCVS here)
To complete the warning of Simone: Just selecting a few files and klicking
on the branch button in WinCVS firstly creates a branch ON THE SERVER! That
is, in order to LOCALLY see/make changes within the branch, you have to
explicitely update the corresponding files and then setting the sticky
option: retrieve rev./tag/branch using the symbolic name you gave to the
branch. When done with that, WinCVS will show you the sticky tag associated
to your file.
In order to merge with the mainline, you normally first commit your changes
to the branch. In order to decide whether they are safe, you make a simple
recursive update which will give you the latest changes from the mainline
(for the files you have not branched) and the latest changes to your branch
(for the files where you have that sticky branch tag). Then run your unit
test and see whether you have broken something.
Now for the critical part: You reset your LOCAL state by making again an
update, this time using "reset any sticky tags" and checking the merge
option: "only this rev/tag" with your branch name. cvs will then merge the
changes that you have commited in your branch into the corresponding
files/directories from the mainline.
This can lead to many conflicts, if the branch was too big/long/ or
interacting with other changes in the mainline! But if you follow a certain
policy, this is normally no problem. Especially, since you have not yet
changed anything on the server - the merge is yet done only on your local
repository!
In order to get the merge into the mainline of the server, you resolved the
conflicts and run your unit tests again to see whether the merge was
successful. If they run through, you simply make a commit (now to the
mainline) and here you are.
In order to get used to it, it�s good to make a little experiment with a few
files and a standalone cvs server. once done it, it�ll turn out as a quite
useful way of coordination
throughout a distributed project (if handled with care, as Simone said).
In order to get JBoss used to it, it would be good to test it with a small
sub-project and a few developers in it. Then we�ll find out whether it will
work for the whole project, soon?
Best,
CGJ