I previously documented my opinion on Clearcase as a version control system, but unfortunately I still use it. So I appeal to you guys to help me alleviate one of my disappointments.
We just moved from a system with one branch to a developer, to one branch for one task, trying to improve some of the problems that we had with determining why some files were changed. In general, I am pleased with the solution, but there is one serious problem. We use simple scripts to start and complete tasks, which create a new branch with the user name and task number, and then update the local snapshot view to have a configuration specification similar to the following:
element * CHECKEDOUT
element * ... / martin_2322 / LATEST
element * / main / LATEST -mkbranch martin_2322
load / Project / Application
Say my project has two linked files A.cs and B.cs. For my first task, I am making changes to the branch. Then I need to stop working on task 2322 for some reason and start working on task 2345 (task 2322 is not finished, so I will not combine it into the main one). I create a new branch 2345, edit both A.cs and B.cs, and merge the results back into main. Now I'm returning to work on 2322, so I change the configuration configuration to the one indicated above. At this moment, I see the A.cs file from the task branch (as I edited it earlier, so I got the version locally for this branch) and the latest version of B.cs from main. Since I have no changes made to A.cs on branch 2345, the assembly breaks. Instead, I need to collect task 2322, where I left off, and see it with the old version of A.cs - the onewhich was the last in the main part when the branch was created.
, :
, . , , , . ?
. , CC , , ( , 2322, )
main . , , , , , . , "--". , .
, - , , main . , , , Clearcase?