2

我有一个树干和那个树干的分支 A。

我将二进制文件两次更新为修订版 A,然后更新到修订版 B。

如果我先 svn 合并修订版 B,然后再合并修订版 A,则必须不会发生冲突,或者冲突取决于二进制文件的内容?

如果冲突是必须的,那么我可以手动处理它。否则,任何人都可以建议在这种合并案例中处理二进制文件的方法吗?

4

1 回答 1

4

有两种方法可以处理这个问题:

不要在存储库中存储二进制文件

许多站点将他们构建的工件存储在他们的 Subversion 存储库中,这并不是一个好主意。它们占用大量空间,并且通常保质期很短。由于您无法轻松清除 Subversion 存储库,因此它往往会快速增长。当我们删除二进制文件时,我已经看到占用几乎 1 TB 空间的 Subversion 存储库减少到了几个 GB。

而且,无论如何,这些二进制文件并不那么容易检索。那些真正需要它们的人——比如进行测试或部署的人——必须在他们的计算机上安装 Subversion 并学习如何使用 Subversion 才能获得它们。也没有任何真正的目的拥有这些文件的各种版本。他们的历史很少能对开发人员产生启发。

您最好将构建的工件存储在发布存储库中。我们使用ArtifactoryJenkins的组合。即使我不使用 Maven,我也使用过 Maven 存储库。我将它们与 Ant 和 Ivy 一起使用,我什至在我们使用 C/C++ 的地方使用过它。这允许您共享一个项目产生的另一个项目可能需要的工件。

svn:mime-type在二进制文件上使用该属性

有时您必须存储二进制文件,因为它们是源文件。例如,GIF 和 JPG。svn:mime-type在这种情况下,您可以在该文件上使用 Subversion 。这可以防止 Subversion 首先尝试合并二进制文件。

当您进行合并时会发生什么,并且二进制文件存在冲突?你只有两个选择,你可以接受你的意思是保留我当前版本的这个文件,或者你可以接受他们的意思是用另一个分支的那个替换你当前版本的这个二进制文件。这简化了合并/解析过程。

于 2012-08-31T13:43:27.963 回答