Svn 如何修复工作副本中被阻塞的目录

Svn 如何修复工作副本中被阻塞的目录,svn,tortoisesvn,Svn,Tortoisesvn,我有一个将数据保存在目录树中的应用程序 现在,我想用svn对这个目录进行版本控制 然而,问题是,此应用程序会不时删除并重新创建此树中的某些目录,这会导致相应的.svn子目录丢失,然后Otteroisesvn会大声抱怨目录受阻 是否有任何特殊选项、脚本(cygwin batch、windows cmd、python…)或程序可以修复这些工作副本?目前,我正在使用目录同步工具从第二个工作副本重新添加丢失的.svn文件,但这非常麻烦 谢谢 对不起,丢失的东西你无法修复 文件夹不见了,不能凭空重新创建。

我有一个将数据保存在目录树中的应用程序

现在,我想用svn对这个目录进行版本控制

然而,问题是,此应用程序会不时删除并重新创建此树中的某些目录,这会导致相应的.svn子目录丢失,然后Otteroisesvn会大声抱怨目录受阻

是否有任何特殊选项、脚本(cygwin batch、windows cmd、python…)或程序可以修复这些工作副本?目前,我正在使用目录同步工具从第二个工作副本重新添加丢失的.svn文件,但这非常麻烦


谢谢

对不起,丢失的东西你无法修复


文件夹不见了,不能凭空重新创建。重新获取它们的唯一方法是运行更新,但这要求首先删除整个文件夹,因为更新不会覆盖现有文件。

我重命名了冲突文件夹,并运行了SVN更新以从SVN还原文件夹


在使用我最喜欢的diff工具(在Total Commander中同步目录)进行diff之后,我发现唯一的区别是冲突的文件夹中有一个.svn文件夹。

我的问题是VS中的Visual svn,它丢失了绑定,尽管上次提交时evreything还不错。删除了磁盘上项目根文件夹中的.svn文件夹,并进行了更新。一切恢复正常,如上面Andy的回答所示。

SVN提交时目录受阻的一个原因可能是像Visual Studio这样的IDE删除并重新创建输出目录,从而删除.SVN文件夹。因此,在其他地方构建此VS项目,然后覆盖到原始签出位置以保留.svn文件夹。然后执行SVN添加和SVN提交。

我单击了“TortoiseSVN>清理…”(所有选项都被勾选,除了“递归还原所有更改”)。
之后,我进行了“SVN更新”,问题就解决了。

SVN在管理这样的目录更改方面非常有限。如果这是您项目的一个选项,我强烈建议您考虑git。@佩恩:对不起,git目前不是一个选项。我还了解到svn开发人员计划将其工作副本格式更改为工作副本根目录中的全局目录。但与此同时,一个脚本或一些简单地重新创建.svn子目录的东西也可以,但是所有的信息都在那里,在svn存储库中,不需要凭空创建它。新签出,然后手动将每个子目录中的所有.svn目录从新签出复制到我的工作副本,解决了这个问题(但很麻烦)。应用程序不会以任何方式重新构造目录,它只是删除一些子目录并以相同的方式重新创建它们(减去一些修改过的数据文件)。我接受这个答案,尽管它不能解决我的问题。同时,通过更新应用程序解决了这个问题,不再删除目录,SVN 1.7本可以通过在每个目录中不需要.SVN子目录来解决这个问题。答案完全没有抓住要点。我有一个类似的应用程序(Mendeley Desktop),它删除并重新创建目录。我不想还原它们,只要让SVN添加它们,就好像它们还没有受到版本控制一样,在其中创建一个新的.SVN子目录,并(提交时)覆盖以前版本中的任何内容。谢谢。非常乐观,谢谢!原来我在子目录中有一个svn文件夹,它不需要在那里。我删除了它,然后像我所希望的那样在父文件夹上运行svn更新,并对子目录中的文件进行了版本控制。这就是发生在我身上的情况,我删除了一个文件夹,并且删除了.svn子文件夹。我按照Cees T所说的做了,得到了我的旧文件,然后将新文件移到了通过更新恢复的文件中。瞧!谢谢