我们偶尔会遇到 TortoiseSVN 的问题(我假设它是 Tortoise 而不是我们的 SVN 存储库),其中一个文件将被签入到存储库中(使用 repo-browser 你可以看到那里的文件),并且将为该人存在谁提交了它们,但是当另一个人进行更新时,这些文件将不会添加到工作副本中。如果我然后从存储库浏览器中选择“复制到工作副本...”并尝试提交,则这些文件对我来说被视为新文件,并且我的客户尝试添加它们,从而给出错误。更新也会导致一些错误(我不知道如何重现这个,所以我不知道具体是什么导致了这个,我不记得确切的错误)。然后我必须从存储库中删除文件,并将文件作为新文件提交。在这之后,
存储库通过 svn:// 协议访问到运行版本 1.4.6 的服务器。它托管在作为 Windows 服务运行的 Windows Server 2003 机器上。
存储库布局如下:
[存储库]/代码/[项目] [repository]/Code/[Website]/*这里的一些页面* [存储库]/Data/[杂项数据文件] [存储库]/参考/[dll/参考]
这几乎只发生在 .aspx/.aspx.cs/.aspx.designer.cs 中,通常一次全部发生 3 个。好像整个“页面”都不会添加到我的文件夹中。这发生在 Visual Studio 打开并运行解决方案的情况下,并且也没有打开 Visual Studio。
有没有人见过这个,你知道原因/解决方案吗?
我有时也遇到过所描述的问题。就在这时,又发生了。相同的情况: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
你可以使用命令行工具测试是tortoise还是svn。在 WC 根目录中键入“svn up”。
正如您所说的那样,您使用的是 1.4.6,稀疏目录没有问题。您的客户端设置中有忽略的文件吗?您确定您的 WC 指向存储库中的正确 URL 并且没有切换到其他分支吗?(您可以在文件夹的属性中看到这一点 - 有一个颠覆选项卡)
如果您在 WC 中执行“svn status”,您应该会在服务器目录中看到已更改文件的列表。
我在使用 SVN 1.6.2 和 1.6.3(命令行、Tortoise 和 Subclipse)时遇到了同样的问题。所以似乎问题与SVN本身有关。存在以下解决方法 - 尝试签出到同一目录 - 它只是添加丢失的文件。
我也遇到过 Tortoise SVN 的这个错误,至少 1.6.2 到我目前使用的 1.6.5。“获取最新”不会从存储库中获取文件。我不得不删除受影响的目录并获取父目录的最新信息以重新创建目录及其内容。
gbjbaanb,这绝对不是忽略文件或切换分支的情况。
使用 Daniel 链接中的说明,我无法完全解决这个问题,但我同意这似乎是 Windows 中大多数 SVN 实现的核心问题,至少。
为了解决我丢失文件夹的问题,我的步骤是:
希望这对其他人有帮助。
不幸的是,上面的先前答案对我不起作用。我遇到了同样的问题:我正在处理的一个文件夹中有一些未提交的对象。该文件夹由另一个用户更新了许多对象。我可以在存储库中看到该用户的对象,但每次我进行更新时,我永远不会得到该用户的对象。
有效的修复是在文件夹上使用 TortoiseSVN Revert。