2009-11-07 42 views
0

由于某些原因,SVN只会将新生成的模板代码合并到已实现的代码中(因此会覆盖我所做的任何事情),但是却没有其他办法。自动合并文本文件的工具?

例如,

1)I生成名为SomeFile.java文件。我把它交给主干。我也分支到feat1/SomeFile.java

2)我工作的feat1/SomeFile.java(分支)。一旦一切都好,我只需承诺feat1分支,并重新集成到主干。

3)现在我需要重新生成代码(有一些变化)。我之前做过的事情是我将它交给了主干,然后我试图从feat1分支合并到主干。 但是由于某些原因,SVN根本不合并这些文件。

我做错了什么?

回答

1

我觉得再集成是不是你想要的。

尝试正常合并。在后备箱:

svn merge [url]/feat1 
+0

谢谢。我会试一试,并让你知道。 – sivabudh 2009-11-07 07:11:53

+0

哇..很简单。谢谢。你会如此善意地告诉我使用TortoiseSVN做同样的事情吗? – sivabudh 2009-11-07 07:38:58

+1

对不起,我是一个命令行Mac的家伙。不知道TortoiseSVN。不指定版本的合并(让系统跟踪已合并的内容)是Subversion的一项非常新的功能,因此在旧的图形客户端中可能不会受到支持。由于乌龟很受欢迎,我认为这是一种方法。 – 2009-11-07 18:00:28

0

我经常做自动合并。我所做的是非常低的技术。我生成了差异的补丁文件,然后再应用它们。

我使用了针对windows的补丁工具的变体。我注意到,windiff,tortoisesvn和几乎任何差异工具都可以使用命令行选项应用修补程序文件。

(也许应该关闭这个问题进行superuser.com后的副本)

+0

@Andrew,你可以检查我的更新,如果你想,看看如果我做错了什么。 – sivabudh 2009-11-07 06:33:20

0

我会建议在阅读本书SVN上Branching and Merging的章节。

从你的步骤描述在我看来,你是从一个分支合并多次到主干,这可能不是一个好主意,或(在你的情况下)可能不会在所有的工作。

之前重返分支到主干,您应该从主干合并分支。这将确保干线和分支之间的唯一区别是您在分支中所做的更改。然后,您将分支中的更改重新集成到主干中。中继和分支现在应该处于相同的修订级别。

在步骤3中,它听起来就像您更改树干,提交这些更改,然后从分支到主干再次合并。来自分支的更改已经在步骤2中合并,所以SVN不会再次合并。