我最近做了一个svn add Foo/
它失败了,因为有一个文件(不是目录)呼吁Foo/.svn
SVN卡在破碎的状态
没有真正的想法,我也rm Foo/.svn; svn add Foo/
失败的原因是“富已经下版本控制”,虽然示出了svn status
~ Foo
代替
A Foo
因为这个,我不能svn commit
。 svn add --force Foo/
没有帮助。
我该如何解决这个问题?
我最近做了一个svn add Foo/
它失败了,因为有一个文件(不是目录)呼吁Foo/.svn
SVN卡在破碎的状态
没有真正的想法,我也rm Foo/.svn; svn add Foo/
失败的原因是“富已经下版本控制”,虽然示出了svn status
~ Foo
代替
A Foo
因为这个,我不能svn commit
。 svn add --force Foo/
没有帮助。
我该如何解决这个问题?
如果您确认Foo的.svn的内容,您可以在条目中看到它。这意味着它已经被保存在Svn本地数据库中,即使它没有把它的.svn数据库放到Foo中。
svn revert Foo
迫使Svn将其从条目中删除。
如果你现在问的状态,你的目录是
? Foo
然后,您可以重试svn add
它,它会工作。
尝试在该目录上执行更新以将工作副本恢复到执行rm之前的状态。
您可以重命名Foo/
所在的目录。然后执行svn up
并手动合并您的更改。然后你可以添加Foo/
目录。
既然你刚删除Foo/.svn
其中只包含元数据,本地文件的更改在Foo/
仍然存在,你可以按照以下步骤来保存所有更改,修复损坏的工作副本:
svn info
获得工作拷贝的版本号,你会看到类似 Revision: 94168
mv Foo Foo.bak
来备份broken
美孚目录svn up -r 94168 Foo
重新从远程存储库中检出Foo,请将94168
替换为您的实际修订版本号rsync -av --exclude='.svn' Foo.bak/ Foo/
覆盖最新检出的Foo /以前备份的Foo.bak中的文件,但保留正确的.svn元数据。svn status Foo
,那么你应该看到所有的本地修改(如果你确实进行了更改)为foo没有内部文件合并应采取。
这将需要一轮麻烦的备份,因为其他目录中还有其他更改。我正在寻找一种解决方案,只触及'Foo /' – spraff 2012-01-13 16:35:58
我不直接使用svn,而是使用乌龟。有了这个,你可以更新一个目录。因为它在下面使用svn,我认为它可以直接通过命令行。 – 2012-01-13 16:48:20
如果您需要更新“Foo /”而不更新其子级,请使用:--depth空或--depth文件 - 但是,无论如何,我建议您执行烦人的备份操作,以防万一 – 2012-01-13 17:08:12