2009-02-02 25 views
5

在工作中設置Subversion版本庫沒有太多規劃其結構。目前沒有明確的標籤,樹幹或樹枝配置,但也有一些標註元數據存在通過使用Subclipse的組成:標籤重組Subversion版本庫的長期影響

目前該庫的格式爲:

/CoreCodeA

/CoreCodeB

/PROJECT1

/Project2的

最近,一個新的開發者開始在我們的內部應用程序的 「2版」 就是他在不同的文件夾下:

/新/ NewCoreA

/新/ NewCoreB

/新/項目3

/新/ Project4

這些項目都有依賴於核心代碼的各個部分,以及類似的項目(例如,幾個項目可能依賴於相同的主題)。這些依賴關係在一些基於文本的項目屬性文件的內容中被引用。

我一直在玩使用svndumpfilter命令,通過sed管道輸出並將其重組爲兩個單獨的存儲庫(「舊」和「新」)。很容易做到,現在我有兩個不同的存儲庫,並設置了trunk,tags和branches(subclipse標籤信息可以在以後重新存檔)。

我擔心的是,通過擺脫每次提交的顛覆結構,我打破以前工作的構建,尤其是考慮到對其他項目的依賴關係。另一方面,我需要儘早在此代碼庫中添加標籤和分支。但是,如果我在幾個月後改變主意,我也不想強迫開發人員重新檢查他們的項目。

我想我的每個倉庫的選擇是:

  1. 號碼以「轉型前的」標籤庫,整理我多麼希望庫,標籤與「-重組後
    • 。好:不會打破歷史建立
    • 壞:有效切斷從過去的工作今後的工作中,沒有簡單的能力,使XX1補丁發佈
  2. 改組整個倉庫,打破以前的版本
    • 好:代碼歷史連續性保持
    • 不好:以前的版本被破壞,肯定會需要x.x.1個補丁版本,如果以後再需要
  3. 改組整個倉庫,並在每個階段編輯項目屬性文件
    • 好:代碼保持連續性和項目應該建立
    • 壞:編輯實際內容文件是比較脆弱不是簡單地改變關於他們的位置

前兩種選擇都容易ENO元呃要做 - 但我希望從其他開發者那裏得到一些真實世界20-20年的事情,看他們在類似情況下做了什麼,以及出了什麼問題或錯誤。

回答

4

版本庫佈局(更改)更多的是關於您的開發組織,而不是任何技術。不知道代碼量是多少,重組後的代碼需要更改的數量以及代碼工作人員的數量,要推薦任何特定的東西是非常困難的,但我首先要讓所有受影響的人員參與其中,將1到2天的時間用於回購大修 - 代碼凍結,只允許修復代碼以便構建代碼。最後,每個人都會變得更加快樂。試圖做這種臥底可能會讓你有一個流氓開發者仍然在你的SVN服務器的一個黑暗角落裏做他/她自己的分支。

我不會擔心訪問歷史代碼佈局的太多問題。您可以隨時在/ oldlayoutdonottouch之類的標籤下標記當前佈局,而不需要做任何修改,並將其留在那裏以便修補舊版本。對於這樣的技巧,SVN是一個非常棒的工具。

P.S.我從來沒有使用過subclipse,但看起來像subclipse標籤與書中的SVN標籤完全不同。他們似乎更喜歡CVS標籤。確保你沒有混淆。

1

我不會觸及歷史。這當時很糟糕,如果你想再次回到那裏,你必須付出代價。

當然,你可能會「知道」你會經常回顧過去,那麼通過#3獲得並將整個回購通過它的步伐與所有重要的新的.1版本發佈是有道理的。

0

有沒有什麼辦法可以讓構建屬性文件反映相對路徑而不是硬編碼路徑?

假設您的任務涉及到組織主標籤,分支和主幹文件夾,我認爲子文件夾/文件(至少在一定程度上)將保留其相對位置(s)?

如果我是你,我會考慮我的固定屬性文件變得更加通用的,獨立的絕對路徑..

希望這有助於..乾杯!