1

所以我的项目有一个主干,我们可以在其中进行所有开发更改。我们还有一个分支,其参数稍作修改,以适应另一个部门。我们分批工作,一旦完成对主干的一组更改,就切换到分支并合并所有适当的修订。这已经持续了一段时间,但我注意到一些奇怪的行为。如果我打开修订图并比较两个主要修订(主干和分支,我也可以通过 repo 浏览器执行此操作),它会显示两者之间不同的所有文件的列表。问题是当我双击某些文件时,文件中实际上没有文本差异。不应该有任何差异,但应该 t 将其标记为不同,对吗?这使得审计两个分支和跟踪差异变得更加困难,因为大量文件出现在“更改的文件”对话框中。

我注意到了一些事情:

  • 两个文件的修订号不同(如预期的那样)

  • 我尝试通过合并然后比较分支在测试存储库中重现此问题,但它工作正常(没有差异)

  • 我最初认为这可能与 svn:mergeinfo 属性之间的差异有关,但我不再那么确定了。

任何帮助,将不胜感激。

4

6 回答 6

2

一个常见的罪魁祸首是行尾。您的一些开发机器是基于 Windows 的,而其他机器是基于 *nix 的吗?如果不考虑或翻译不同的行结尾,将导致文件不完全匹配。

于 2008-10-28T14:45:34.030 回答
2

我认为你实际上得到了过去修改过的所有文件,所以即使内容相同,它们仍然显示为已更改,因为 svn 只是查看历史记录中哪些文件被触摸并从那里工作。您可以尝试进行忽略祖先的合并(在乌龟的某个地方有一个选项)并查看文件是否也显示在那里,afaik 他们不应该。

于 2008-10-29T18:10:28.283 回答
0

try the Clean up command, but read this first:

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-cleanup.html

于 2008-10-28T22:46:08.803 回答
0

好吧,我建议尝试使用其他一些合并软件。例如,不确定 Tortoise SVNCompare 是否像 WinMerge 那样明显地突出空格变化。

于 2008-10-28T14:47:14.933 回答
0

我尝试了两种不同的 diff/merge 软件(winmerge 和 diffmerge),文件完全相同。我只是注意到如果我打开 repo 浏览器,标记主干进行比较,然后将其与分支进行比较,它工作正常。它只显示实际不同的文件但是,当我通过修订图启动它时,它给了我同样的问题。生成的对话框完全相同,除了一个包含大量不同文件的对话框。这可能是 svn/tortoisesvn 的错误还是我错过了其他东西?

于 2008-10-28T15:04:52.727 回答
0

检查没有明显差异的两个文件的确切文件大小。还要检查修改日期。

于 2008-10-28T15:09:43.733 回答