首页 / 知识

如果.svn文件夹已损坏,如何恢复svn控制?

2023-04-17 08:59:00

如果.svn文件夹已损坏,如何恢复svn控制?

How can I restore svn control if the .svn folder has been damaged?

我有几个大型结帐文件,其中.svn文件夹已损坏,因此我得到了一个错误,"清理程序无法处理以下路径。。"而且我无法再提交或更新该目录中的文件。

我只是删除并再次结帐,但整个目录都超过了演出。

有没有一种工具可以还原特定文件夹的.svn文件夹而不必下载所有内容?

我知道必须下载该文件夹中的所有文件,以便可以确定它们是否已更改。.但是带有有效.svn文件夹的子目录应该没问题。

哦..我是TortoiseSVN或Linux命令行的忠实拥护者。

有什么想法吗?


如果您对文件进行了更改,但无法删除它们,则可以使用Subversion 1.5功能,该功能允许您"使用障碍物签出"。

只需删除此目录中的.svn目录,然后:
(使用--depth文件时,您无需删除内部目录,谢谢Eric)

如果损坏的目录是工作副本的顶层目录:

1
svn checkout --depth files --force REPOS WC

如果上面的目录仍然存在版本,请运行:

1
svn update --depth files --force WC

在该目录中。
在这两个示例中,REPOS是存储库中与损坏的目录匹配的url,而WC是该目录的路径。

此后,最初修改的文件将处于修改状态。


如果您知道哪个文件夹的.svn目录已损坏,则可以删除该目录并再次运行svn更新。您可能必须删除整个目录,包括其当前内容。当然,如果损坏的.svn目录的文件夹是包含1 GB的文件夹,那么您将回到开始的位置。


对缺少.svn的文件夹进行备份

然后删除文件夹

如果它是结帐的根源,则必须重新结帐

如果不是根目录,请从上面的目录运行更新。

然后将备份文件夹移到其顶部。 (理想情况下,不要移回.svn文件夹)

继续工作,并确保更新/提交!


我过去曾遇到过这种情况,除了"核选项"(即删除目录并重新签出)外,没有找到任何可行的解决方案。

不知道这是否是您的问题,但我的损坏是由与SVN服务器位于同一台计算机上的按访问病毒扫描程序引起的。


选定的解决方案对我来说可以还原顶级.svn文件夹,但是它不能识别子对象,因此,尽管子文件夹中的版本控制完好无缺,但是这一切似乎对SVN而言都是陌生的。


如果子目录还可以,并且子目录很大,则可以尝试进行非递归的新签出。


我今天遇到了同样的错误。当我尝试切换分支并且无法删除不在svn存储库中的文件之一时,发生了这种情况。之后,该文件夹已被锁定,我无法使用任何命令来使其再次工作。

我基本上删除了所拥有的东西并重做结帐。这很耗时,但是我真的想确保svn清晰无误,然后我才能再次开始工作。谢谢!


损坏恢复控制文件

最新内容

相关内容

猜你喜欢