1

我使用 TortoiseSVN 进行版本控制。在我已经工作了数周的工作中,我突然看到“SVN commit..”对话框中出现了一些“已更改”的文件,这些文件我绝对没有接触过,并且不包含任何真正的差异:

替代文字 http://www.pekkagaiser.de/TortoiseMerge.gif

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

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

替代文字 http://www.stadtpflanzen.de/images/StackOverflow1.gif

替代文字 http://www.stadtpflanzen.de/images/StackOverflow2.gif

这几乎不可能是行尾的事情,可以吗?这并不紧急,因为它现在很少发生,但我仍然很好奇。

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

4

4 回答 4

3

您是否使用过 SVN 1.5+ 的新“合并跟踪”功能?合并时,它将添加/更改所svn:mergeinfo涉及文件的属性,即使是那些未更改的文件。这些然后显示为要提交的更改。

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

于 2009-10-24T10:41:23.120 回答
2

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

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

检查此链接以获得有关此属性的完整描述

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

于 2009-10-24T11:10:08.303 回答
2

查看 Repo 浏览器。有列显示文件的内容是否已更改,或者文件的属性是否已更改。听起来可能属性已更改,但文件未更改。

于 2009-10-24T11:35:25.663 回答
2

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

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

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

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

让我们知道你发现了什么!

于 2009-10-31T17:13:22.190 回答