TortoiseSVN:没有发现差异(TortoiseSVN: Not picking up differences)

在安装了以下内容的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完美地接受了这一变化。

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

所以,我们的斗智尽头。 这是一个错误吗? 一些可能被欺骗的环境? 没有通过TortoiseSVN通知更新的事件?

谢谢你们,-Steve

Have a Visual Studio 2008 project running on Windows 7 64 Pro with the following installed:

TortoiseSVN 1.7.7, Build 22907 - 64 bit

I'm recently upgraded from 1.6 to see if it would alleviate the issue we're having, but to no avail.

Anyways, the issue:

For this particular project we use CodeSmith Generator to generate our netTiers layers for our application. These files are generated to a separate directory, and only the necessary files are copied over (we don't copy all, because we don't want our partial files to be overwritten) to our working SVN copy of the project.

Once those files are copied over, we compile, test locally, and then commit to SVN when stable. This has worked fine on this project for more than a year.

Recently, one of our developers generated the code as the norm. He copied it over only to find that TortoiseSVN did not find any files changed. Odd, considering a new field was added to the database, and that usually affects quite a few files. He then did a "Diff with previous version" via the TortoiseSVN Explorer commands to confirm or deny the issue.

However, when doing a diff between the previous version and the working copy version, he found that the file has, in fact, changed. For some reason TortoiseSVN isn't seeing that the file has changed.

So, I wanted to give it my scout's best to determine if this was some isolated issue on his machine or something more. I killed my working copy, rechecked out, and tried doing the same steps. Same issue. TortoiseSVN was not picking up the changes.

Now, just as an experiment, I opened up the file and copied over the contents manually. In this case, TortoiseSVN picked up the change perfectly.

The issue with doing this manually, of course, is that it relies on the developer having to know every single file that was changed...and in addition takes a lot more time due to the sheer number of files updated.

So, we're at our wits' end here. Is this a bug? Some setting that might have been tricked? An event not firing to notify TortoiseSVN of the update?

Thanks guys, -Steve

最满意答案

复制文件时,Windows 7不会更改“上次修改”的时间戳 。 根据TortoiseSVN的FAQ页面 ,svn查看文件是否被修改的第一步是检查“Last Modified”时间戳,而不是像Git那样执行校验和。 因为目录显示它已被修改,但没有文件显示为已修改, 这可能是因为您正在复制文件

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

This was an unfortunate developer error, where they not only already generated the changes int the past, but didn't make that knowledge known. Simply ended up confusing themselves as well as others in the process.

更多推荐