【问题标题】:Mysterious non-change showing up in TortoiseSVN / TortoiseMergeTortoiseSVN / TortoiseMerge 中出现神秘的非变化
【发布时间】:2009-10-24 10:36:07
【问题描述】:

我使用 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 的 "commit..." 对话框中工作,而是在 "check for修改”。我想你可以收集其余的:我在 IDE 和 Tortoise 之间来回切换了很多,签入各种文件,每当我签入一个文件时,单击刷新,做其他事情然后再次检查它,因为我忘记了,它不起作用 - 但当然仍会在列表中。谢谢你的时间!为每一个答案 +1 并接受与我相处时间最长的人:)

【问题讨论】:

  • 可以更改行尾吗?转到设置并取消勾选忽略行尾

标签: svn tortoisesvn tortoisemerge


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      Check this link to have a complete description on this property.

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

      【讨论】:

      • 这似乎不是 EOL 样式,因为没有显示任何更改,并且 EOL 问题会在每个 ling 中亮起。 (对吧?)
      • 这取决于工具是否配置为检查行尾。我现在已经运行该工具再次检查(我通常使用 WinMerge 而不是 Tortoise diff 工具)并发现了一些东西,CRLF 的行尾符号与 LF 不同(第一个与您的图片中的一样,第二个是向下箭头)。所以看起来问题出在别的地方……
      【解决方案4】:

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

      【讨论】:

      • 不,没有属性发生变化(见上文)。