我应该如何构建我的插件开发以及如何将补丁应用于 svn 中的补丁?
Posted
技术标签:
【中文标题】我应该如何构建我的插件开发以及如何将补丁应用于 svn 中的补丁?【英文标题】:How should I structure my plugins developments and how to apply a patch to a patch in svn? 【发布时间】:2013-02-04 18:59:09 【问题描述】:我刚开始开发 redmine 插件和补丁,我正在使用 svn。我有下一个结构:
doc/
src/
src/branches/
src/plugins/
src/patches/
src/trunk/
我的想法是为我要开发的每个插件或补丁从主干创建一个分支。 plugins 文件夹用于存储插件的不同版本,而 patchs 文件夹用于存储补丁的版本。
我现在面临下一个问题:我创建了一个分支 issue_x 来开发补丁。在第一个版本之后,我使用svn diff > patch.diff
来获取补丁。然后我将它保存在补丁文件夹中,然后使用patch -p0 < ../patch.diff
将其应用到主干。很酷,但是我必须对补丁进行一些修改,因为在生产中发现了一个错误。
我该怎么办?
创建一个新补丁来修复错误? 修复错误,创建一个完整的补丁(包括所做的所有更改),恢复主干中的补丁,然后重新应用新补丁? 还有别的吗?【问题讨论】:
【参考方案1】:Subversion(以及任何常见的 SCM)方式是“合并更改”来自不同的开发线。
也就是说,您使用 svn 内部技术而不是 diff-patch 方式 - 将分支合并到主干,在分支中添加一些更改后重新合并,而您不需要的结果
阅读SVN Book,很有用的东西
【讨论】:
【参考方案2】:我不确定您为什么使用补丁而不是合并。这很奇怪。
(对我来说)最明显的事情是从issue_x
分支出来,修复错误,合并回issue_x
,然后将issue_x
合并回trunk
。
在您的情况下,我建议您进行更改以修复issue_x
中的错误,创建补丁并将其应用于trunk
。不过,您仍然应该从SVN Book 了解SVN branching and merging。
【讨论】:
以上是关于我应该如何构建我的插件开发以及如何将补丁应用于 svn 中的补丁?的主要内容,如果未能解决你的问题,请参考以下文章