2010-12-17 178 views
3

我使用TortoiseSVN而無需外部Subversion服務器來管理LabView源代碼(即不斷變化的二進制文件的大量集合)。TortoiseSVN:將另一個分支的內容複製到另一個分支

我想要有一個任何人都可以訂閱並獲取每日更新的存儲庫的「測試版」分支。我想這與帶有獨立分支機構的常見測試版系列不同,但對於此項目來說這是正確的。

什麼是複製樹枝分支的特定修訂版的內容到beta分支的最佳/最簡單的方法?基本上我想要做的是刪除beta的舊內容並插入新內容。我想,刪除+添加是可行的,但顯然不是最理想的。除非我可以讓Tortoise自動解決中繼線有利的所有衝突,包括刪除文件,否則合併不是一種選擇。

更新:有幾個人問我爲什麼不想刪除+添加。我想要一個更清潔的替代品。

  1. 此方法導致Beta樹的一半更新正在「清除最後一次修訂」。
  2. 更新不是原子的,所以有人可以拿起一個空版本。
  3. 我還沒有嘗試過,看過,但beta不會是一個正確的分支。修訂日誌甚至會跟蹤多個修訂,因爲每次都是「新」文件?

更新2:svn允許前任意命令提交,但我不能讓龜這樣的工作方式。選擇「刪除」後,存根目錄仍然保留,直到我提交,此時我可以重新填充分支。當它存在於新舊標籤修訂版本中時,需要有一種方法來取消刪除目錄以進行刪除。

+0

我錯過了什麼或不是刪除然後複製你想要的東西? – 2010-12-17 16:32:39

+2

不,SVN是事務性的 - 刪除和複製(不添加!)不會有問題。而測試版可能是aproper分支(或更好的標籤) – 2010-12-17 19:02:33

+0

@Unquiet:啊,我甚至沒有想到!發佈它作爲答案,我會選擇它。 – Potatoswatter 2010-12-17 23:13:34

回答

1

SVN是事務性的 - 刪除和複製(不添加!)不會有問題。和β將是一個正確的分支(或更好的標籤)

+0

好點!然而,事實證明,龜龜似乎並不支持這樣的事務,因爲直到您提交刪除之前,剩餘的佔位符目錄才存在。所以,在選擇這個之前我會稍微等一下。 (另外,標籤在SVN中作爲分支實現,對吧?) – Potatoswatter 2010-12-18 03:51:53

0

爲什麼不刪除beta/*然後將trunk/*複製到beta /?

2

合併是不是一種選擇,除非我能得到 龜自動解決所有 在樹幹的青睞衝突, 包括刪除文件。

我不知道TortoiseSVN的,但如果你安裝了command line client你可以做以下合併的最新trunk更改爲beta分支:

cd c:/path/to/my/working/copy/of/beta/branch 
svn merge file:///c:/path/to/my/repository/trunk --accept theirs-full 
svn commit -m "merged latest trunk changes to beta branch" 

--accept theirs-full選項,通過解決所有衝突使用你想要的樹幹版本。

這有一些優點:顛覆將做representation sharing,因此存儲在兩個分支上的文件不會佔用額外的存儲空間。另外,當用戶更新他們的beta工作副本時,只有被更改的文件需要通過網絡進行傳輸。

相關問題