TortoiseSVN:没有发现差异

时间:2012-07-13 19:19:06

标签: svn tortoisesvn visualsvn

在Windows 7 64 Pro上运行Visual Studio 2008项目,并安装以下软件:

TortoiseSVN 1.7.7,Build 22907 - 64 bit

我最近从1.6升级到看看它是否会缓解我们遇到的问题,但无济于事。

无论如何,这个问题:

对于这个特定的项目,我们使用CodeSmith Generator为我们的应用程序生成netTiers层。这些文件生成到一个单独的目录,只有必要的文件被复制(我们不会复制所有文件,因为我们不希望我们的部分文件被覆盖)到我们工作的SVN项目副本。

复制完这些文件后,我们在本地编译,测试,然后在稳定时提交SVN。这个项目在这个项目上工作了一年多。

最近,我们的一位开发人员将代码生成为常态。他复制了它只是为了发现TortoiseSVN没有发现任何文件发生变化。奇怪的是,考虑到数据库中添加了一个新字段,这通常会影响很多文件。然后他通过TortoiseSVN Explorer命令做了一个“与先前版本的差异”来确认或否认这个问题。

然而,当在先前版本和工作副本版本之间进行差异时,他发现文件实际上已经改变了。出于某种原因,TortoiseSVN没有看到文件发生了变化。

所以,我想给我的侦察员最好的确定这是否是他的机器上的某些孤立问题或更多。我杀了我的工作副本,重新检查,并尝试做同样的步骤。同样的问题。 TortoiseSVN没有发现变化。

现在,就像一个实验一样,我打开了文件并手动复制了内容。在这种情况下,TortoiseSVN完美地接受了这一变化。

当然,手动执行此操作的问题在于,它依赖于开发人员必须知道已更改的每个文件...此外,由于更新了大量文件,因此需要花费更多时间。< / p>

所以,我们在这里结束了我们的智慧。这是一个错误吗?一些可能被欺骗的环境?没有通过TortoiseSVN通知更新的事件?

谢谢你们, -Steve

2 个答案:

答案 0 :(得分:4)

Windows 7无法更改&#34;最后修改后的#34;复制文件时的时间戳。根据{{​​3}},svn查看文件是否被修改的第一步是检查&#34; Last Modified&#34;时间戳,而不是像Git这样做的校验和。由于目录显示已修改,但没有文件显示为已修改,这可能是因为您正在复制文件

尝试打开其中一个已修改的文件,添加一些微不足道的内容,如空格,关闭它,然后再尝试检查已修改的文件。我打赌这会导致它出现

答案 1 :(得分:1)

这是一个令人遗憾的开发人员错误,他们不仅已经在过去生成了更改,而且还没有知道这些知识。在这个过程中,简直就是混淆了自己和其他人。