2013-02-26 34 views
1

我們在這裏有以下情況:如何自動將Subversion中的文件從主幹複製到特殊分支?

  • 用戶開始提交(在幹線上)。
  • 他在他的提交信息中添加了特殊關鍵字來表示這個改變應該在分支上自動完成。

什麼可能是一個很好的解決方案來實現呢?我看到以下選項(但想在這裏認爲哪一個最好):

  • 查看後臺作業中的每個提交,並開始另一個提交以將相關更改複製到分支。
  • 實現一個post-commit-hook,直接提交後觸發更改。

您的意見在這裏?是否還有其他解決方案可供使用,甚至更加充分?

+1

你到底要如何處理另一個分支中的合併衝突? – prodigitalson 2013-02-26 13:33:29

+0

好吧,這裏沒有答案。我認爲不會有衝突,因爲沒有平行的發展。但會問發起人。 – mliebelt 2013-02-26 13:34:25

+0

如果某些提交合並而另一些不提交,將會有衝突,因爲合併提交可能會修改已在非合併提交中創建的代碼。 – 2013-02-26 13:38:59

回答

2
  1. 在Subversion,一些子樹複製修改現有的一些子樹合併(-c「摘櫻桃合併」在一個修訂的情況下)
  2. 合併只能在工作副本
進行。第1和2的

條件給我們的初步配方:

post-commit鉤子必須:

  • 檢測犯,有需要採取行動(否則什麼都不做)
  • cd到本地(服務器)WC
  • 執行svn merge -c... URL-OF-TRUNK,很可能爲自動解決衝突,使用--accept選項
  • 承諾分支

加成從@mliebelt:

  • 最好的解決辦法應該是,以實施腳本來自動執行該任務,但在客戶端上手動運行該腳本。
  • 然後,配置管理員(或另一個可知的用戶)應該手動澄清可能發生的衝突,在最好的情況下,他只需使用適當的日誌消息來提交更改。
+0

非常感謝,這說明了爲什麼服務器解決方案可能不合適。稍等一些,以獲得更多的反饋... – mliebelt 2013-02-26 15:13:44

+0

我希望可以添加一個好的解決方案如何工作,你可以自由地再次編輯它;-) – mliebelt 2013-02-27 10:48:37

+0

@mliebelt - no-no ...你會使用(想)作爲猴子的集成管理器,這是不好的風格。只有合併**與衝突合併**用戶的干預,不要取代人類機器人 – 2013-02-27 17:44:26

相關問題