2014-09-24 17 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 

這使得凌亂的檔案。