【问题标题】:How should I structure my plugins developments and how to apply a patch to a patch in svn?我应该如何构建我的插件开发以及如何将补丁应用于 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 将其应用到主干。很酷,但是我必须对补丁进行一些修改,因为在生产中发现了一个错误。

我该怎么办?

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

【问题讨论】:

    标签: svn branch patch


    【解决方案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

      【讨论】:

        猜你喜欢
        • 2016-08-11
        • 1970-01-01
        • 1970-01-01
        • 2012-05-07
        • 2010-12-07
        • 1970-01-01
        • 2011-07-08
        • 2017-06-07
        • 1970-01-01
        相关资源
        最近更新 更多