2013-02-04 141 views
0

我剛開始開發redmine插件和補丁,我使用svn。我有下一個結構:我應該如何構建我的插件開發以及如何在svn中將補丁應用到補丁?

doc/ 
src/ 
src/branches/ 
src/plugins/ 
src/patches/ 
src/trunk/ 

我的想法是爲每個插件或我要開發的補丁創建一個分支。 plugins文件夾旨在存儲不同版本的插件,補丁文件夾將修補程序的版本存儲在文件夾中。

我現在面臨着下一個問題:我創建了一個分支issue_x來開發一個補丁。第一個版本之後,我用svn diff > patch.diff來獲得補丁。然後我將它保存在補丁文件夾中,然後將其應用到patch -p0 < ../patch.diff的主幹上。很酷,但我必須對修補程序進行一些修改,因爲在生產中出現錯誤。

我該怎麼辦?

  • 創建一個新的補丁來修復錯誤?
  • 修復錯誤,創建一個完整的修補程序(包括所做的所有更改),恢復主幹中的修補程序,然後重新應用新修補程序?
  • 還有什麼?

回答

0

Subversion(和任何共同的SCM)方式是從不同開發線上「合併更改」。

即代替差異補丁的方式使用SVN內部技術 - 合併分支到主幹,分支增加了一些更改後重新合併,而你沒有得到需要的結果

SVN Book,它是有用的東西

0

我不確定你爲什麼使用補丁而不是合併。這很奇怪。

最明顯的事情(我)會岔開的issue_x,修正錯誤,合併回issue_x然後合併issue_xtrunk

在您的場景中,我建議您進行更改以修復issue_x中的錯誤,創建補丁程序並將其應用於trunk。您仍然應該從SVN Book瞭解SVN branching and merging