在TortoiseSVN / TortoiseMerge中出现的神秘不变

时间:2009-10-24 10:36:08

标签: svn tortoisesvn tortoisemerge

我使用TortoiseSVN进行版本控制。在一个工作的小伙子,我已经工作了几个星期,我突然看到一些“改变”的文件出现在“SVN提交...”对话框中,我肯定没有触摸,哪些没有包含任何真正的差异:

alt text http://www.pekkagaiser.de/TortoiseMerge.gif

据我记忆,我没有更改这些文件的编码,也没有对它们执行任何其他操作。 有谁知道这是什么以及如何摆脱它?

编辑:此行为再次出现。乌龟声称“文本改变”,即使没有:

alt text http://www.stadtpflanzen.de/images/StackOverflow1.gif

alt text http://www.stadtpflanzen.de/images/StackOverflow2.gif

这几乎不能成为终结事,是吗?这并不紧急,因为它现在很少发生,但我仍然很好奇。

  

编辑:好的人,有时间拥有。这真的很尴尬,但我发现它是什么。我没有指出,因为我认为这不重要,是因为我没有在Tortoise的“提交......”对话框中工作,但是在“检查修饰“即可。我想你可以收集其余部分:我在IDE和Tortoise之间来回切换,检查各种文件,每当我签入文件时,点击刷新,做其他事情和再次检查,因为我忘了,它不会工作 - 但当然仍然在列表中。谢谢你的时间! + 1'每个答案,并接受最长时间坚持我的人:)

4 个答案:

答案 0 :(得分:3)

您是否可以使用SVN 1.5+的新“合并跟踪”功能?合并时,它将为所涉及的文件添加/更改属性svn:mergeinfo,甚至是那些未更改的文件。然后这些就会显示出要改变的变化。

请参阅http://svnbook.red-bean.com/en/1.5/svn.branchmerge.basicmerging.html#svn.branchmerge.basicmerging.mergeinfo

答案 1 :(得分:2)

如果您的文本文件没有将svn:eol-style属性设置为native,并且您只是在编辑器中打开它们,那么行结尾可能会更改,然后保存它们。

某些编辑器和工具会自动将文件转换为其本机EOL版本(例如,将LF行尾更改为CRLF)。

Check this link to have a complete description on this property

必须在每个文本文件上手动设置svn:eol-style,这就是为什么有一种方法可以通过编辑客户端配置文件通过文件扩展名自动完成 - 使用TortoiseSVN设置,常规设置,编辑subversion配置文件;或检查this link并查找enable-auto-props条目。

答案 2 :(得分:2)

查看Repo浏览器。有些列可显示文件的内容是否已更改,或文件的属性是否已更改。听起来好像属性已经改变但文件没有改变。

答案 3 :(得分:2)

好吧,让我们拿出大枪。 : - )

将文件(styles.css版本40)签出到一个单独的目录中。

运行一个程序,在您的工作副本和存储库副本上计算md5(例如md5md5sumopenssl md5)。如果你得到不同的答案,文件是不同的,TortoiseMerge没有向你展示重要的东西。如果你最终得到相同的答案(忽略了两个不同但非常相似的文件有两个相同的md5哈希值的极有可能的情况),那么文件显然是相同的,并且TSVN有一些问题。 (也许它正在查看文件日期?)

编辑:我想到的唯一病态案例是文件可能有不同的编码(例如UTF-8与ASCII)...几个月前我从WinXP SP2升级到SP3偶尔会遇到奇怪的事情(显然是UTF-8 byte order marks),其中前几个字符在文本编辑器中出现奇怪。

让我们知道您的发现!