2014-09-24 19 views
0

我有一个问题涉及CVS中的标记(我知道有比cvs更好的工具,但这是它在我公司中的用途)。CVS标签他们如何确切地工作?

我在CVS有一个项目,在过去的几个月里,人们已经应用了很多标签。 我不得不从基线进行更改,而不是最新的标签。 因此,假设您有以下标签CVS:

Project_V1 Project_V2 Project_V3

客户问了几个基于Project_V2变化。

我的问题是:

1)如果我承诺我的变化,然后申请一个新的标签,将这些变化对Project_V3上方应用或只是Project_V2的顶部? 2)如果是我的思维方式(即,它们在Project_V3上供给)有没有办法避免这一点,并有类似:

Project_V1 Project_V2 Project_V2_B Project_V3

使标记为Project_V3的软件的最新版本没有收到这些更改?

分支是currenlty不适合我们,所以它不是一个选项,这就是为什么人们到目前为止标记。

感谢 中号

回答

0

您的方案要价是分支完美的情况。

其他明智的,你可能需要做一些丑陋的代码回奏,并重新签入现在

 
Lets take one file and see how the history grows. 
File A 
    rev 1.1 
    rev 1.2 -> Label Project_V1 
    rev 1.3 
    rev 1.4 
    rev 1.5 -> Label Project_V2 
    rev 1.6 
    rev 1.7 -> Label Project_V3 

,因为你想更改文件修订版1.5,您可以从标签Project_V2分支并创建文件更改。现在文件修订版本将是1.5.1.2。

 
File A 
    rev 1.1 
    rev 1.2 -> Label Project_V1 
    rev 1.3 
    rev 1.4 
    rev 1.5 -> Label Project_V2 -> 1.5.1.2 -> Label Project_V2_B 
    rev 1.6 
    rev 1.7 -> Label Project_V3 

其他解决方案(我没有个人喜欢)是:

 
overwrite the latest files with files checked out using Label Project_V2 
make the necessary changes, apply label Project_V2_B. 
Recheck-in the files from Label Project_V3. 
 
File A 
    rev 1.1 
    rev 1.2 -> Label Project_V1 
    rev 1.3 
    rev 1.4 
    rev 1.5 -> Label Project_V2 
    rev 1.6 
    rev 1.7 -> Label Project_V3 
    rev 1.8 (checkout from label Project_V2) 
    rev 1.9 -> Label Project_V2_B 
    rev 1.10 -> (check out from label Project_V3 and recheck-in) -> apply label again Project_V3 

这使得凌乱的档案。