TortoiseSVN 更新时缺少文件

TortoiseSVN 更新时缺少文件

我们偶尔会遇到 TortoiseSVN 的问题(我认为是 Tortoise 而不是我们的 SVN 存储库),其中文件将被签入存储库(使用存储库浏览器,您可以在那里看到文件),并且对于提交它们的人来说将存在,但是当另一个人进行更新时,这些文件将不会添加到工作副本中。如果我从存储库浏览器中选择“复制到工作副本...”,并尝试提交,这些文件将被视为新文件,而我的客户端会尝试添加它们,从而出现错误。更新也会导致一些错误(我不知道如何重现这个问题,所以我不知道具体是什么原因导致的,我不记得确切的错误)。然后我必须从存储库中删除文件,并将文件提交为新文件。此后,一切都正常,原始人员的文件没有任何问题。

该存储库通过 svn:// 协议访问,服务器运行版本 1.4.6。它托管在作为 Windows 服务运行的 Windows Server 2003 计算机上。

该存储库的布局如下:

[存储库]/代码/[项目]
[存储库]/代码/[网站]/*此处的一些页面*
[存储库]/Data/[其他数据文件]
[存储库]/参考资料/[dll/参考资料]

这几乎只发生在 .aspx/.aspx.cs/.aspx.designer.cs 上,而且通常这 3 个都会同时发生。好像整个“页面”都不会添加到我的文件夹中。在打开 Visual Studio 并运行解决方案时会发生这种情况,在未打开 Visual Studio 时也会发生这种情况。

有人见过这种情况吗?您知道原因/解决方案吗?

答案1

我有时也遇到过上述问题。就在此刻,它又发生了。同样的情况:SVN 客户端 A 在 SVN 服务器上更改/添加/删除/移动了多个文件,而 SVN 客户端 B 更新了其工作副本(使用 Tortoise SVN)。更新后,从 A 添加的一些文件没有出现在 B 的工作副本中,但存储库浏览器将它们显示在 SVN 服务器上的正确位置。再次使用 Tortoise 更新总是声称所有内容都是当前修订版。文件缺失的文件夹中的“svn up”也表示所有内容都是当前修订版。

我在用着

Tortoise SVN 1.6.6,构建 17493 - 64 位

Visual SVN 1.7(SVN 集成到 Visual Studio 2008)

编辑:这似乎是一个已知问题,解决方案如下:http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2379518

答案2

您可以使用命令行工具测试它是 tortoise 还是 svn。在 WC 根目录中输入“svn up”。

正如您所说,您使用的是 1.4.6,因此您没有遇到稀疏目录的问题。您的客户端设置中是否有忽略文件?您确定 WC 指向存储库中的正确 URL 并且没有切换到其他分支吗?(您可以在文件夹的属性中看到这一点 - 有一个 subversion 选项卡)

如果您在 WC 中执行“svn status”,您应该会看到服务器目录中已更改文件的列表。

答案3

我在使用 SVN 1.6.2 和 1.6.3(命令行、Tortoise 和 Subclipse)时也遇到过同样的问题。因此,问题似乎与 SVN 本身有关。存在以下解决方法 - 尝试签出到同一目录 - 它只会添加缺失的文件。

答案4

我无法完全使用 Daniel 链接中的说明来解决此问题,但我同意这至少似乎是 Windows 中大多数 SVN 实现的核心问题。

为了解决我的丢失文件夹问题,我的步骤如下:

  1. “更新至修订版本”,选择文件夹中任何文件被修改、添加或删除之前的提交编号,并确保选择“完全递归”。 (这将导致 Tortoise 出现一些奇怪的错误。这是意料之中的!)
  2. 执行清理。
  3. 再次更新文件夹,您应该会得到整个文件夹!

希望这对其他人有所帮助。

相关内容