Subversion在更新期间错过了新目录

时间:2009-11-30 19:47:13

标签: svn tortoisesvn

我正在使用SVN 1.6.3和TortoiseSVN 1.6.6。定期从项目的根目录进行更新时,SVN无法获取新添加的目录(由同事添加)。我已经验证了修订号是否正确,甚至可以在该修订的日志中看到新目录(及其文件)。这似乎不会影响所有计算机(在另一台计算机上工作正常),多次更新将无法纠正它。但是,如果我删除上面这个新目录所在的目录并进行另一个SVN更新......问题就解决了。

我的第一个想法是它的问题已经通过随后的SVN版本(1.6.6等)解决或者我的TortoiseSVN客户端版本的问题。谁能确认/否认其中任何一个?是否可以轻松升级到具有现有存储库的新SVN版本?

感谢...

5 个答案:

答案 0 :(得分:18)

听起来你有一份sparse工作副本。试试svn update --set-depth infinity并查看是否可以。

当您拉出“更新”对话框时,Tortoise中的等效项将“更新深度”设置为“完全递归”。

答案 1 :(得分:5)

也许this可能会有所帮助?

  

当我更新工作副本时,不会添加新文件!

     

在TortoiseSVN 1.6.0和1.6.1之间,   已添加的文件夹添加了深度   “只有这个项目”。这导致了这样的结果   被称为“稀疏结账”的那一部分   你的工作副本。

     

请更新到最新版本   TortoiseSVN避免了这样的问题   未来。

     

要修复稀疏的工作副本,   而不是“更新”,使用“更新   修改......“来自的命令   TortoiseSVN子菜单(右键单击   探险家),改变“更新深度”   组合框到“完全递归”。

答案 2 :(得分:5)

我们看到的情况是,先前的合并导致树冲突,然后特定目录根本不更新,但在更新时不会抛出错误消息。事实上,一旦它发生,我们似乎无法找到任何检测情况的程序化方法。检查修改时,树冲突不会显示,我们知道遇到问题的唯一方法是手动将文件与repo-browser和日志进行比较。只有通过演绎,我们才发现它与树木冲突有关。

我们必须删除原始目录并重新结帐。我们发现没有以编程方式检测何时发生这种情况。它很少见,但已经复制了几次。

我知道非常稀疏的信息。

答案 3 :(得分:2)

我每个月都会遇到这样的问题。在我的情况下,存储库中有一个文件在本地丢失(我可以浏览存储库并查看它),但svn认为我的目录版本是最新的。存储在本地文件中的目录的内部版本号是正确的,但我需要的文件不在那里。我刚刚查看了整个辣酱玉米饼馅的新鲜本地副本来修复它。

答案 4 :(得分:1)

SVN过去总是向后兼容存储库,因此您无需担心这一点。特别是因为最新版本只有1.6.6,所以你不会落后。

您能否确认您期望的目录确实在存储库中?

svn ls <repository-url>

在您希望添加的目录的父目录中,或使用Tortoise的存储库浏览器检查它们是否存在。