2010-03-15 63 views
4

我已經簽出了一份代碼庫的本地工作副本,它存在於一個svn回購庫中。這是一個很大的Java項目,我使用Eclipse進行開發.Eclipse當然會按照自己的方式構建一切,所有的二進制文件以[project root]/bin結尾。對我來說,這對開發來說非常好,但是當構建在構建服務器上運行時,它看起來有很大的不同(maven構建,二進制文件以不同的目錄結構等)。我可以有一個既是git工作區也是svn工作區的工作區?

有時我需要在本地開發系統上重新創建構建服務器環境,以調試構建或你有什麼,所以我通常最終將一個全新的工作副本下載到一個新的工作區並從那裏運行構建(阻止讓我的開發工作空間與所有構建工件混淆在一起,並弄髒工作副本)。當然,有時候我有興趣運行完整的代碼構建,但我不想檢查代碼,因此我將手動將「開發」工作區複製到「構建」工作區。除了花費大量額外的時間來複制大量我實際上不需要的文件(僅僅覆蓋舊的文件)之外,這也會導致我的svn元數據無法使用,這意味着我無法檢查「構建工作區「的工作副本,而且我最終不得不重新下載代碼以使其恢復到已知狀態。

所以我想我讓我的svn工作拷貝一個本地git倉庫,然後從svn working copy/git master中「簽出」開發代碼到本地的構建工作區。然後,我可以構建,恢復我的更改,擁有版本控制的工作副本在構建工作區中的所有優點。然後,如果我需要對構建進行更改,將它們推回到git master(這也是svn工作副本),然後將它們檢入到主svn repo中。

|-------------| 
|main svn repo| <------- |---------------------| 
|-------------|   |svn working copy  | <------- |--------------------| 
         | (svn dev workspace/ |   | non-svn-versioned | 
         | git master)  |   | build workspace | 
         |---------------------|   | (git working copy) | 
                  |--------------------| 

只需切換一切git的顯然是更好的,但是,大公司,使用的人太多了SVN,代價太大改變一切,等我們陷入SVN爲主體的回購現在。

順便說一句,我知道有一個Eclipse的Maven插件和一切,我主要感興趣的是知道是否有辦法維護一個既是git工作副本又是svn工作副本的工作區。實際上任何分佈式版本控制系統都可能工作(可能是?)。建議嗎?其他人如何處理這種不得不同時管理「開發」構建過程和「生產」構建過程的情況?

回答

1

將git repo(svn repo的副本)複製到另一個git repo的想法可以工作。
由於Git1.7.0,您可以將此方法與sparse checkout關聯,如果您不想從您的第一個Git回購中籤出的所有內容

相關問題