TortoiseSVN更新中缺少文件


12

我们偶尔会遇到TortoiseSVN的问题(我假设它是Tortoise而不是我们的SVN信息库),在那里文件将被检入信息库(做一个repo-browser,您可以在其中看到文件),并且该人将存在谁提交了这些文件,但是当其他人进行更新时,这些文件将不会添加到工作副本中。如果然后从仓库浏览器中选择“复制到工作副本...”,并尝试进行提交,则文件对我来说将被视为新文件,并且我的客户端尝试添加它们,从而出现错误。更新还会导致一些错误(我不知道如何重现此错误,所以我不知道是什么原因导致的,并且我不记得确切的错误)。然后,我必须从存储库中删除文件,然后将文件提交为新文件。在这之后,

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

存储库的布局如下:

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

这几乎完全发生在.aspx / .aspx.cs / .aspx.designer.cs中,通常一次全部出现3个。好像整个“页面”都不会添加到我的文件夹中。这是在Visual Studio打开并运行解决方案的情况下发生的,并且也没有打开Visual Studio。

有人看过吗,您知道原因/解决方案吗?


1
您能否发布TortoiseSVN的版本以及SVN的托管方式(http://,svn://,本地等),以及通过什么方式(Apache,IIS,VisualSVN等)发布,包括任何其他版本号。
理查德·斯莱特2009年

1
还尝试重新创建工作目录(只是再创建一个),以查看第一次签出时是否出了问题。
reconbot

1
第一步,升级到最新版本的TSVN(目前为1.6.3)。我相信在1.6.x中有一个相关的错误,该错误已在1.6.2版中修复。
Milen A. Radev

2
我们将TortoiseSVN 1.7客户端连接到Subversion 1.6存储库时遇到了同样的问题。那里有类似的解决方法吗?
JNappi 2011年

Answers:


10

有时我也遇到了描述的问题。就在这时,它又发生了。相同的情况:在SVN服务器上,从SVN客户端A更改/添加/删除/移动了多个文件,并且SVN客户端B更新了其工作副本(使用Tortoise SVN)。更新之后,从A添加的一些文件不存在于B的工作副本中,但是存储库浏览器将它们显示在SVN服务器上的正确位置。再次使用Tortoise更新总是声称一切都在当前版本中。丢失文件的文件夹中的“ svn up”也表示一切都在当前版本中。

我在用着

Tortoise SVN 1.6.6,Build 17493-64位

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

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


1
对于其他任何人:这是直接的解决方案:对于每个麻烦的工作副本,请使用“更新到修订”,并将工作副本的深度设置为“完全递归”。
coding_idiot

3

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

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

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


3

我在SVN 1.6.2和1.6.3(命令行,Tortoise和Subclipse)中也遇到了相同的问题。因此看来问题与SVN本身有关。存在以下解决方法-尝试签出到同一目录-它只是添加丢失的文件。


1

我在Tortoise SVN上也遇到了此错误,该错误至少与我当前使用的1.6.5相比至少为1.6.2。“获取最新”将不会从存储库中获取文件。我必须删除受影响的目录,并获取父目录的最新信息以重新创建目录及其内容。

gbjbaanb,这绝对不是被忽略文件或切换分支的情况。


1

使用Daniel链接中的说明,我不太能解决此问题,但我同意,至少在大多数Windows中,这似乎是大多数SVN实现的核心问题。

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

  1. “更新至修订版”,在修改,添加或删除文件夹中的任何文件之前选择提交编号,并确保选择“完全递归”。(这会在Tortoise中引起一些奇怪的错误。这是预期的!)
  2. 执行清理。
  3. 再次更新文件夹,您应该获得整个文件夹!

希望这可以帮助其他人。


0

不幸的是,上面的答案对我不起作用。我遇到了同样的问题:我正在使用的文件夹中包含一些未提交的对象。另一个用户使用许多对象更新了该文件夹。我可以在存储库中看到该用户的对象,但是每次执行更新时,我都永远不会得到该用户的对象。

起作用的解决方法是在文件夹上使用TortoiseSVN Revert

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.