0

我刚开始开发 redmine 插件和补丁,我正在使用 svn。我有下一个结构:

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

我的想法是为我要开发的每个插件或补丁从主干创建一个分支。plugins 文件夹用于存储插件的不同版本,而 patchs 文件夹用于存储补丁的版本。

我现在面临下一个问题:我创建了一个分支 issue_x 来开发补丁。在第一个版本之后,我曾经svn diff > patch.diff得到补丁。然后我将它保存在补丁文件夹中,然后使用patch -p0 < ../patch.diff. 很酷,但是我必须对补丁进行一些修改,因为在生产中发现了一个错误。

我应该怎么办?

  • 创建一个新补丁来修复错误?
  • 修复错误,创建一个完整的补丁(包括所做的所有更改),恢复主干中的补丁,然后重新应用新补丁?
  • 还要别的吗?
4

2 回答 2

0

我不确定您为什么使用补丁而不是合并。这很奇怪。

(对我来说)最明显的事情是分支issue_x,修复错误,合并回issue_x然后合并issue_xtrunk.

在您的场景中,我建议您进行更改以修复中的错误issue_x,创建补丁并将其应用于trunk. 不过,您仍然应该从SVN Book中了解SVN 分支和合并

于 2013-03-08T08:13:07.520 回答
0

Subversion (and any SCM in common) way is "Merge changes" from different development lines.

I.e instead of diff-patch way you use svn internal technique - merge branch to trunk, re-merge after some changes added in branch while you don't get needed result

Read SVN Book, it's useful thing

于 2013-02-04T22:06:19.833 回答