SVN与二进制文件合并处理

时间:2012-08-31 08:54:20

标签: svn

我有一个行李箱和那个行李箱的分支A.

我将二进制文件两次更新为版本A,然后更新为版本B.

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

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

1 个答案:

答案 0 :(得分:4)

有两种方法可以解决这个问题:

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

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

而且,无论如何,这些二进制文件都不容易检索。那些真正需要它们的人 - 比如正在进行测试或部署的人 - 必须在他们的计算机上安装Subversion并学习如何使用Subversion来获取它们。也没有,有这些文件的各种版本的真正目的。他们的历史很少对开发者而言具有启发性。

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

在二进制文件

上使用svn:mime-type属性

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

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