我有一個主要項目我正在工作,其中有幾個模塊/目錄。 主項目綁定到本地svn倉庫。但是,無論何時我提交,我都想將一些模塊/目錄推送到Google代碼存儲庫。但是我只想從本地存儲庫進行更新。有沒有辦法自動做到這一點?我的IDE emacs的23svn提交到多個存儲庫
感謝
我有一個主要項目我正在工作,其中有幾個模塊/目錄。 主項目綁定到本地svn倉庫。但是,無論何時我提交,我都想將一些模塊/目錄推送到Google代碼存儲庫。但是我只想從本地存儲庫進行更新。有沒有辦法自動做到這一點?我的IDE emacs的23svn提交到多個存儲庫
感謝
這是how the SVN book recommends你這樣做。這似乎很痛苦,基本上圍繞每個回購有一個工作副本,並從字面上複製兩者之間的變化(你也可以用SVN補丁來做到這一點)。
或者,您可以將look into using SVK(這是SVN的分發層,向SVN添加Git-ish功能)將庫mirroring or merging設置爲外部回購。請注意,SVK的文檔有點雜亂無章。顯然,命令行幫助很好。
在SVN點每個工作拷貝到一個存儲庫。您可以使用svn switch
將您的存儲庫更改爲指向Google代碼存儲庫,然後再更新並提交您希望存儲在那裏的目錄。然後,您可以切換回您的標準存儲庫中的工作副本。當然,這依賴於兩個存儲庫兼容的目錄結構。
如果沒有錯,SVN交換機不是解決方案。
SVN交換機不僅將工作目錄從一個存儲庫連接(或切換)到另一個不同的存儲庫!它還會從新存儲庫中進行無提示更新(或檢出)。所以,如果我沒有弄錯,工作目錄中的任何本地修改都會丟失,因爲這個修改會被新的存儲庫覆蓋。
似乎每個存儲庫都必須有一個工作副本,並且將原始工作目錄之間的更改從字面上複製到其他工作目錄。
似乎有一個更好的解決方案,使用svnsync
。
從源存儲庫初始化用於同步的鏡像存儲庫。這是你在想成爲的鏡像版本庫運行第一svnsync的操作:
svnsync initialize MIRROR_URL SOURCE_URL
轉移從源存儲庫到鏡像庫中的所有待定修訂:
svnsync synchronize DEST_URL
只有用於選擇或特殊場合複製手冊中說明的未決修訂:
svnsync copy-revprops DEST_URL [REV[:REV2]