2013-02-04 105 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