2009-02-12 155 views
16

我們正在考慮從ClearCase轉移到Subversion。該項目已有一段時間(7年),我們積極支持三個「主要」版本(分支機構),以及一些舊版本的偶爾修復。該項目相當大 - 大約2百萬行java代碼。從ClearCase遷移到SVN的最佳策略是什麼?

我很好奇,如果有人做過類似的遷移。

  • SVN能夠處理這麼大的項目嗎?
  • 遷移所有歷史版本/分支是否有意義?這些工具可以選擇性地做到嗎?
  • 遷移過程需要多長時間才能完成這樣的項目?遷移過程中有效的工作方式是什麼?
+0

我第二個問題。 ;-) – 2009-02-12 17:39:52

+0

簡短的問題。視窗? – Avram 2009-02-12 17:53:49

回答

9

,做出了這樣的幾個遷移,我認爲:

  • 你不需要導入所有 ClearCase的版本到SVN的歷史。大多數情況下(根據我的經驗),除非您真的需要精細的歷史修訂版本,否則只需要標記版本(在給定集合的所有文件中一致地應用的版本)。

  • 你需要考慮重組在遷移過程中:??是否進口什麼,什麼你離開,你要SVN內容反映正好文件的結構存儲在ClearCase VOB?有時候,這種遷移是重新考慮某些文件組織的機會(通常通過對某些目錄進行簡單的重命名規則)。

  • 遷移是在ClearCase 2 SVN方式更快,因爲SVN是倉庫爲中心,提交一組文件,而ClearCase是文件爲中心,提交文件的文件(多sloooower)

  • 如果要導入的文件集清楚地標識出來,遷移過程可以重複多次,這意味着您可以在第一次(大)導入時在ClearCase中繼續工作,然後將基線(UCM標籤)在您的代碼上,並只重新導入增量,有效地結束遷移過程。

1
  1. 是的,Subversion可以處理非常大的項目。例如,所有Apache projects都位於一個Subversion存儲庫中,子項目是簡單的子文件夾。
  2. 如果轉換所有歷史記錄是有意義的,那麼您必須自行決定。但有很多工具可用。一篇好博客文章可以在here找到。
  3. 我不知道這種轉換需要多長時間。但是,您可以先嚐試一個小子集並測量時間。
5

首先是一些資源:

  1. Clearvision CC2SVN Tool
  2. SVN Importer by Polarion
  3. Article and resources on CollabNet

實際存儲庫的大小,文件或它們的尺寸的數量不是限制因素SVN。開發人員的數量,變化的併發性,集成和發佈過程的複雜性,合併和目錄版本控制(重構)的需要都可能對大型項目造成問題。如果你的項目很大,但它相當穩定,開發人員少,分支機構數量少,並且不需要爲以前的幾個版本支持大量的修復程序,SVN應該對你很好。

我寫了一個自定義的遷移工具,將數據帶出ClearCase,這不是一件容易的事。每兩個系統對數據都有不同的數據模型和操作。我不會建議嘗試編寫任何自定義遷移工具,因爲以任何有意義的方式實際從ClearCase中獲取數據非常困難。有關商業解決方案侷限性的詳細信息,我建議聯繫資源鏈接的解決方案提供商。

我個人會盡量提供儘可能多的數據,但您必須瞭解SVN與ClearCase相比的侷限性。在此遷移過程中,任何目錄版本控制(重構)歷史記錄都可能會丟失。 SVN不支持像ClearCase這樣的稀疏分支,如果你使用了任務分支,它可能會膨脹你的SVN倉庫的大小。在這種情況下,你可能只想限制自己到系統分支。 ClearCase中的文件具有獨立的分支結構,而SVN的每個產品都有分支排序,這將導致在該過程中進行大量的分支轉換。通過將自己限制爲系統分支,並且可能只在這些分支上標記版本以獲得系列中完全集成的標籤,可以爲自己節省很多麻煩。如果你的團隊使用UCM,你幾乎可以忘記所有的UCM元數據。他們不會翻譯成SVN。

時間框架很大程度上取決於所使用的工具。對於像你這樣的重大項目,甚至可能要數週。 ClearCase數據庫存在一些奇怪的原因,即使在讀取操作時也會出現大量鎖定,並且存在一箇中心表,這些表會導致大量訪問(如遷移會導致大量問題)。我第一次在產品上運行我的工具比你的產品大一些時,我們估計它會運行3年,經過很多優化,並行化和增量遷移後,它會減少到大約一週。但預計取決於該工具的完成程度,可能需要很多時間差異。雖然自從你遷移到SVN並且你會忽略ClearCase的許多歷史和元數據,你的遷移應該更快。

ClearVision在其網頁上提到其CC2SVN工具可以在兩種產品之間創建一個橋樑。雖然我沒有使用這個工具,但是如果它按我的設想工作,它可以讓你在處理一些內容後同步這兩個版本庫,這將允許你進行一些週末切換,並且零開發停機時間。如果這是不可能的,請嘗試尋求一些替代方法,如增量遷移,您首先遷移到某個日期,然後遷移自該日期以來更改的一小塊數據。

該過程的非常重要的部分是後期移植階段。請不要打擾交換機給您的開發人員帶來的麻煩。你不能低估培訓和明確文件的需要。您還需要在軟件工程部門接受培訓的支持團隊來操作SCM系統,並向開發人員解釋如何在新系統中完成他們習慣的操作。這實際上是一個可能會在移民中打破脖子的點。開發人員抵制任何變化,以及SVN給這個項目帶來的優勢,它本質上就是更差的系統。 ClearCase爲開發人員提供了極大的靈活性,他們將永遠不會與SVN一起工作,除非您在開發過程中儘早使用它們,否則您可能會失去它們甚至更糟糕,導致整個遷移過程逆轉,宣佈災難並失去自己的工作。

1

另一種選擇是Migrate2SVN。開發人員(Clearvision)剛剛發佈了v2.0,它似乎包含許多對Polarion軟件和上述其他方法的許多改進。

相關問題