2013-05-28 25 views
4

我們已經開始在這裏使用功能分支模式。如何防止人們在SVN中使用重新集成的分支?

一切似乎運作良好,這裏我們使用步驟:

  1. 開發分支樹幹
  2. 開發(S)完整實現,並使用分支
  3. 開發合併主幹到分支測試,帶來該分支最新爲重新整合做好準備
  4. 維護者將分支重新集成到主幹
  5. 版本,構建和標記。

開發商已經閱讀在樹枝上的文件夾/寫訪問,讀取訪問變量和軀幹

維護人員已經閱讀到所有文件夾

我們使用svn 1.5.1(通過限制/寫訪問服務器到Ubuntu Server 8.04),儘管我們正在使用最新的svn轉移到最新的服務器(Ubuntu Server 12.04)。

客戶端我們TortoiseSVN 1.7.6,svn客戶端版本1.7.4。

到目前爲止,一切都運行良好,我們有多個開發人員都在同一時間寫功能。

不過,目前我是唯一提名的維護者,一旦這個過程被打破,人們已經接受了足夠的訓練,其他人將被提名。

我的擔憂是一個過程變得更加自主和我的直接參與減少可能出現以下情況,我不能告訴你怎麼防止他們:

  1. 開發者忘記了一個分支已經重返並意外地向其提交工作
  2. 維護人員沒有充分檢查分支機構是否爲最新版本並準備好重新整合並執行重新整合和提交。

我看不到任何東西在Tortoise或SVN,警告或阻止你這樣做。

然後,我還沒有嘗試過任何討厭的事情,只是爲了看看它做了什麼。

我該如何自動阻止用戶做出這些糟糕的提交?

+0

刪除,因爲既不是自動的,也不回答的主要問題只是一個註釋:有一個章節[保持一個重新整合Branch Alive](http://svnbook.red-bean.com/en/1.7/svn.branchmerge.advanced.html#svn.branchmerge.advanced.reintegratetwice)用於1.8之前的svn。基本上,你應該使用'--record-only'來僞造合併重新集成分支到trunk的修訂(修訂不是,不能合併到分支),以修復分支並防止「壞的承諾」。你可以使你的重新整合過程成爲假合併的一部分。 – valid

回答

2

它看起來像你要在Subversion 1.8中愛automatic merges

檢查SVNBook章節"Reintegrating a Branch"。如本章所述,您可以在完成之後刪除重新集成的分支。

但是:

如果您選擇不將其重新整合到 幹線您可以繼續執行同步從主幹合併後刪除您的分支,然後再 重返分支。如果您這樣做,只有在第一次重新集成之後在分支上進行的更改 合併到 中繼。

+0

現在在RC2中有1.8個,所以看起來像是向上移動這將是解決方案。 – RoboJ1M

2

我們遇到過類似的問題,並以組織的方式解決:當分支最終合併到主幹時,它將在團隊會議中進行溝通,然後分支將被重命名,所以這樣所有的結賬「死」 - 意外檢查是不可能的。工作得很好(在我們的團隊中)。

+0

我想我可以讓維護人員移除分支機構的rw訪問權 – RoboJ1M

2

我什麼都看不到壞分公司更比單一重返社會(爲1.7.X SVN) - --reintegate不能轉換成支非功能性的子樹,並軌旁邊正好犯分支

變化

而且,BTW,merge --reintegrate將失敗,如果主幹沒有與分支範圍同步。

作爲最後的手段,ACL的功能分支可以重返社會後,被限制爲RO爲大家或分公司從倉庫

+0

您能確認只有1.7+不會將分支機構轉換爲非功能性狀態嗎?在1.5 - 重組似乎合併,但有很多衝突等。不是「你不能這樣做,因爲」錯誤。 – RoboJ1M

+0

我已經重新閱讀了關於1.5,7和8的相關章節,它看起來像我們可能產生的大多數問題都來自我們仍然在1.5的問題。對我們來說,保護很少,儘管它爲我們提供了多年的完美服務。 1.7手冊仍指出分支重新集成使分支處於不可用狀態,應予以刪除。 1.8現在有一個同步合併算法 – RoboJ1M

+0

@ RoboJ1M - 我有1.6和1.7的客戶端,可以使用(有時使用)重新集成的分支只有1.7 –

相關問題