补丁赢了申请(一切都被拒绝)。我该怎么办?

时间:2014-02-07 03:30:57

标签: svn patch

我刚开始参与一个开源项目,我已经获得了补丁以继续开展工作。我已将本地工作副本更新到最新的主干,当我应用补丁时,几乎所有的帅哥都被拒绝了。

我猜这个补丁是用稍早版本的主干制作的,这就是为什么行号可能不匹配的原因。我想我总是可以手动复制并粘贴每个大块的代码,但是我会花费所有的开发时间修补我的代码而不是贡献!

有没有简单的方法来解决这个问题?补丁是否包含有关它所针对的主干版本的任何信息?我是否应该尝试还原我的工作副本,直到找到该修补程序适用的修订版?

或者我只是遗漏了一些简单的东西?经常更新的Trunk更新 - 我无法想象项目中的每个人都有这些问题......

1 个答案:

答案 0 :(得分:0)

如果已创建补丁

  • 来自SVN工作副本
  • 使用SVN命令svn diff而不是特定于操作系统的

你可以看到有关补丁点的补丁文件信息。

在存储库

中的两个修订版之间修补svn diff
...
--- trunk/G1.txt    (revision 3)
+++ trunk/G1.txt    (revision 4)
...

在BASE修订版和修改后的工作副本之间修补svn diff

...
--- G1.txt  (revision 4)
+++ G1.txt  (working copy)
...

(两个案例中的---个字符串都包含必须应用补丁的修订版本

对于这个简单的情况,您有svn up到SOURCE修订版svn patch补丁文件,为了将应用的更改提交为新版本,您必须(使用修改后的工作副本)svn up HEAD修订,解决所有可能出现的冲突,并且只有在解决所有冲突后才提交修改

另一种(以某种方式更有用的方式)可能是:从SOURCE修订版创建分支,将补丁应用于此分支的WC,将分支(其中包含补丁)合并回主线。

我更喜欢seconf方式 - 减少头痛,减少犯错的机会