哪些因素可导致SVN更新错误地合并吗?
-
21-09-2019 - |
题
我从谁遇到了麻烦建设一个Delphi工程我对谷歌代码有人收到一封电子邮件,前几天。他有了一些变化我在检查更新后的项目文件和DFM文件中的一个被改写的。我们聊来回位,并追查到他说的是SVN在额外的东西扔。他删除的文件,并再次运行更新和它工作得很好。
我以前从来没有看到这个问题,我是不是能复制或在我的最终验证它的任何。有没有与其他用户的任何更新冲突,因为我是唯一一个对存储库的写权限。所以我不知道什么原因可能造成这一点。这是SVN一个已知的问题?有没有一种方法,以保持它的发生?
解决方案
如果DFM文件被颠覆视为文本,假设用户有局部的变化,它会尝试合并。哪里有冲突,Subversion不解决这些问题,这将增加额外的细节,以帮助您手动解决冲突,你会看到类似的文字<<<<<<< .mine
这当然会博克在Delphi。这也可能是颠覆自动做了合并,这并没有冲突,反而导致损坏的DFM文件。
为什么你没有看到这个问题的原因可能是因为你没有本地更改,所以没有合并是必要的。删除或恢复文件重置工作拷贝回到基地,所以任何更新不会需要做合并。
解决方法一:如果你的文本文件应的不的由Subversion合并,然后设置的 SVN:mime类型以适当的非文本值,它将把它作为二进制而不会尝试合并。您将需要手动解决问题。顺便说一句,这也是一个很好的提示,如果你需要存储在Subversion中的敏感文本文件和不希望的diff表示在内容:)
其他提示
假设他或他的本地系统管理,以裂伤的两个文件。
然后假设他更新和发现的东西不工作。经过一番手指指着他与删除,啊哈,本地MODS的文件,运行更新,并啧啧......正确的文件!
统一体非必须遵守multiplicanda praeter necessitatem 。
虽然它始终是可能的一个奇怪的语法错误是一个编译器错误和损坏的文件是一个svn
错误,通常有较为平淡的原因,我们有它的奥卡姆权威的更简单的解释通常是正确的威廉。
做了“被改写的”文件包含“地雷”或“他人的”文本?
如果这样,他可能打乱了他的解决冲突,并最终在不经意间犯了他们的还是我转。
或者,它完全有可能合并以为,因为他们是在文件的“不相关”的部分也可以自动合并更改,但对于SVN(或任何幼稚自动合并过程)“无关”仅仅意味着在的线文件不/不重叠。
“天真”自动合并一无所知的任何结构内部的文件,这样可以很容易地合并,它认为是无关的时候,其实是改变对对方不利的副作用的变化。如果不知道的恰恰的性质的“改写(munging)”很难肯定地说,虽然在这种情况下,提及“额外的东西”,这表明“地雷”或“他们”的修订无意提审似乎是最可能的。
哪些Delphi版?较早的德尔福版本有漏洞,其中有时文本文件DFM成为二进制文件。
文件突然成为二进制杀死任何源控制系统。
- 的Jeroen
您工作在多个平台上?您是否使用Unix的假设编辑lineendings(像一些Cygwin的工具?)
如果是这样,请检查您是否正确配置了EOL-style属性。
我是执行SVN更新和SVN被打乱了DFM文件与<<<<<<<<。我的,我可从来没见过。我不得不手动删除这些修改之前,德尔福将让我打开该项目。