当前位置:  开发笔记 > 运维 > 正文

解决svn二进制冲突

如何解决《解决svn二进制冲突》经验,为你挑选了2个好方法。

我使用svn作为一个与其他几个开发人员合作的项目.Svn适用于源代码控制,但是当我们提交dll时,我们都会遇到冲突.

当我解决冲突(删除我的dll作为差异程序无法处理二进制文件),然后必须重建提交.你是如何解决这样的冲突的?

编辑:

dll位于一个单独的svn文件夹中,因为该项目是游戏模式,非程序员需要访问最新版本.



1> Steven Robbi..:

如果它是一个你正在构建的DLL(而不是你没有源代码的外部代码)那么源应该在源代码控制中,而不是二进制代码.

如果您不想将其包含在该特定存储库中,则可以将其包含在svn:external中.



2> Stefan..:

正如其他答案中所述:您不应该首先对生成的dll进行版本控制.但是如果你真的必须对它们进行版本化,那么你可以在不使用删除dll文件的diff工具的情况下解决冲突:

对于每个冲突的文件,Subversion在工作副本中放置三个额外的无版本文件:

filename.mine

这是您更新工作副本之前存在于工作副本中的文件,即没有冲突标记.此文件仅包含您的最新更改.(如果Subversion认为该文件不可合并,则不会创建.mine文件,因为它与工作文件相同.)

filename.rOLDREV

在更新工作副本之前,这是BASE修订版的文件.也就是说,您在进行最新编辑之前检出的文件.

filename.rNEWREV

这是您更新工作副本时Subversion客户端刚刚从服务器收到的文件.此文件对应于存储库的HEAD修订版.

这里OLDREV是.svn目录中文件的修订号,NEWREV是存储库HEAD的修订号.

现在,要解决此类冲突,请删除您不需要的其他文件:

如果你想保留自己的dll,删除文件filename.rOLDREV,filename.rNEWREV

如果要保留存储库中的dll,请删除文件filename.rOLDREV和filename.mine,然后将filename.rNEWREV复制到filename

之后,执行

svn resolved filename

告诉Subversion你自己解决了冲突.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有