2012-10-02 209 views
0

我在研究如何讓我的團隊工作從CVS轉移到SVN,在我看來,SVN與CVS相比具有很多優勢,但是將某個遺留系統和團隊從已用於10+年將證明困難。CVS vs SVN分支策略

我試圖第二次猜測當我提出爲什麼我們應該轉移到SVN並且想知道您是否可以填寫適當的答案(或者甚至爲什麼SVN更糟糕)時會問的問題。

我也會試着解釋一下我們目前的工作方式,如果能說出需要改變的地方,會很感激!


目前,我們有我們的CVS,HEAD(生產)的主要部分,並從TEST測試(TEST

守則夜間建成,如果生成成功標記有一個新的CVS標籤。一旦我們對此感到滿意,我們會將該標記從TEST拉到HEAD中,然後進行最終構建並部署給用戶。

我們廣泛使用CVS $ Header $特性,這與代碼合併時(尤其是反向合併)通常會導致衝突。

由於CVS處理單獨回滾中斷提交(甚至看到文件更改)的文件證明非常困難(逐個文件)。

辦理入住手續時CVS傾向於認爲你已經觸及許多文件,你有沒有去附近


總之,如何將變更爲SVN影響我們?

感謝您的時間,

+1

當你「拉進頭」你是否做一個合併? – Dave

+0

作爲參考,我建議你從SVNBook檢查「Subversion for CVS Users」:http://svnbook.red-bean.com/en/1.7/svn.forcvs.html – bahrep

+0

@Dave yes是的,我的意思是我們合併,bahrep這看起來很有趣 –

回答

1

我們廣泛使用CVS $頭$功能,用代碼合成(尤其是反向合併)時,這往往會導致衝突。

Subversion足夠聰明,可以在執行合併時忽略擴展關鍵字&差異。

由於CVS處理單獨回滾中斷提交(或甚至看到文件更改)的文件證明非常困難(逐個文件)。

由於Subversion版本是如何存儲/犯下的,它實際上容易回滾整個提交(修訂版),而不是櫻桃採摘從單個提交(甚至一組提交的)單個項目回滾。見http://svnbook.red-bean.com/en/1.7/svn.branchmerge.basicmerging.html#svn.branchmerge.basicmerging.undo

辦理入住手續時CVS傾向於認爲你已經觸及許多文件,你有沒有去附近

我不能說我曾經與Subversion看到了這一點。也許CVS正在採取變化,因爲上次修改時間已更改,但文件內容沒有? Subversion使用該文件的mtime來確定可能發生的變化是否發生,然後在當前副本&之間執行MD5比較,該比較是最後一次來自存儲庫的原始副本。如果m時間不匹配,但是MD5s不匹配,則不會將其標記爲變化。