我有一条主干和从该主干分支出来的A分支。
我将一个二进制文件更新了两次,先到了版本A,然后到了版本B。
如果我先合并版本B,然后再合并版本A,是否一定会发生冲突,还是冲突取决于二进制文件的内容?
如果必须发生冲突,那么我可以手动处理它。否则,有没有人可以建议一个在这种合并情况下处理二进制文件的方法?
我有一条主干和从该主干分支出来的A分支。
我将一个二进制文件更新了两次,先到了版本A,然后到了版本B。
如果我先合并版本B,然后再合并版本A,是否一定会发生冲突,还是冲突取决于二进制文件的内容?
如果必须发生冲突,那么我可以手动处理它。否则,有没有人可以建议一个在这种合并情况下处理二进制文件的方法?
很多网站将编译后的文件存储在Subversion代码库中,但这并不是一个好主意。它们会占用大量空间,而且通常寿命很短。由于无法轻松地清理Subversion代码库,因此它往往会快速增长。我曾经看到过几乎占用1TB空间的Subversion仓库,在清除二进制垃圾后仅剩下几GB。
此外,这些二进制文件也不是那么容易获取。那些确实需要它们的人 - 比如正在进行测试或部署的人 - 必须在自己的计算机上安装Subversion并学习如何使用Subversion才能获得它们。此外,对于开发人员来说,保留这些文件的各种版本没有任何真正的目的。它们的历史很少对开发人员有所启示。
最好将编译后的文件存储在一个发布仓库中。我们使用Artifactory和Jenkins的组合。即使我没有使用Maven,我也使用Maven仓库。我将它们与Ant和Ivy一起使用,甚至在使用C / C ++的地方也使用它。这使得一个项目生成的构件可以被另一个项目使用。
svn:mime-type
属性有时你必须存储二进制文件,因为它们是源文件。例如,GIF和JPG。在这种情况下,你可以在该文件上使用Subversion的svn:mime-type
。这可以防止Subversion首先尝试合并二进制文件。
当你进行合并时,如果二进制文件存在冲突会发生什么?你只有两个选择,你可以接受你的版本,意思是保留当前文件的我的版本,或者你可以接受它们的版本,意思是用另一个分支的此二进制文件替换你当前的版本。这简化了合并/解决过程。