如何针对这种情况制作/应用差异补丁?

发布于 2024-07-13 15:07:38 字数 538 浏览 6 评论 0原文

我有一个项目,例如 WORDPRESS。 我正在使用SVN。

我有以下副本:

A. 来自 wordpress.org 的 WP2.6

B. WP2.6,我修改了一些核心文件(添加/删除/更改一些文件的代码)

C. 来自 wordpress.org 的 WP2.7

我想更新版本A 到 C 并保留版本 B 的更改。

我的一些更改可能是这样的:

版本 A 代码:

123 123

版本 B 代码:

123 x 123

版本 C 代码:

123 123 123

预期的最终版本:

123 x 123 123

如何为该项目制作/应用补丁? 如果我有 100 多个不同的文件,任何更快/更简单的方法

也许我的想法是错误的。 请建议改正。 谢谢。

I have a project, for example WORDPRESS. and I am use SVN.

I have following copies:

A. WP2.6 from wordpress.org

B. WP2.6, I modify some core files (add/del/change some files' code)

C. WP2.7 from wordpress.org

I would like update Version A to C and keep the changes of version B.

some of my changes maybe like that:

Version A code:

123 123

Version B code:

123 x 123

Version C code:

123 123 123

expected final version:

123 x 123 123

How can I make/apply patch to this project ? any faster/easier way if I have 100+ different files

maybe I thinking in wrong way. please suggest to make it right.
thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

哆啦不做梦 2024-07-20 15:07:38

(简单的答案):没有全自动的方法来做到这一点 - 您将需要分支和合并,合并意味着您必须查看您的修改并测试它们。

  1. 从 (A) 作为 /trunk 开始,签出到您的工作副本
  2. 为 WP2.6 创建一个“供应商”分支 将
  3. (B) 复制到主干。 小心
    将 svn rm 和 svn mv 删除并
    重命名文件,并提交
    trunk
  4. 将工作副本切换到 (A)-WP2.6 分支
  5. 将 (C) 复制到此分支(再次强调,如果需要,不要忘记 svn mv 和 svn rm),然后 commit
  6. 将工作副本切换回 trunk
  7. 合并WP2.6 供应商分支
    回到后备箱(这是
    大部分艰苦的工作将是)
  8. 在提交到主干之前测试它到您需要的任何程度的信心
  9. 在未来的版本中重复

为了说明通常无法自动解决的困难,请考虑以下内容:在您的示例中,希望-最终版本可以是以下之一:

123 x 123 123
123 123 x 123

(Simplistic Answer): There's no fully automatic way to do this - you will need to branch and merge, and merging will mean you have to look at your modifications, and test them.

  1. Start with (A) as /trunk, checked out into your working copy
  2. Create a "vendor" branch for WP2.6
  3. Copy (B) into the trunk. Take care
    to svn rm and svn mv deleted and
    renamed files, and commit to the
    trunk
  4. Switch the working copy to the (A)-WP2.6 branch
  5. Copy (C) into this branch (Again, don't forget svn mv and svn rm if needed), and commit
  6. Switch the working copy back to the trunk
  7. Merge from the WP2.6 vendor branch
    back into the trunk (this is where
    most of thehard work will be)
  8. Test it out to whatever degree of confidence you need before committing to the trunk
  9. Repeat for future releases

To illustrate the sort of difficulty that can't normally be solved automatically, consider this: in your example, the hoped-for final version could be either of these:

123 x 123 123
123 123 x 123
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文