这是一个小SVN
问题:
我在本地创建一个目录:
$ svn mkdir output
A output
我不小心将其删除了:
rm -rf output
现在,我该如何重新创建它?我试过这个:
$ svn mkdir output
svn: 'output' is already under version control
而且:
$ svn revert output
Reverted 'output'
但它仍然没有。
更新:人们建议删除后只需要一个简单的mkdir output
即可。但在我的SVN版本中并非如此。它忽略了我也删除了output/.svn
目录的事实。当然,只有mkdir output
不会带回那个。所以,不知何故,SVN必须参与output
目录的重新创建。 (我正在使用SVN 1.4.6。)
答案 0 :(得分:7)
在SVN中正式删除它:
$ svn rm --force output
svn: 'output' does not exist
然后再次创建它:
$ svn mkdir output
A output
上述svn remove
的输出有点误导。我认为删除失败了,它不会改变任何东西。
这不是SVN最直观的方法,但这种方式有效。
答案 1 :(得分:2)
只需mkdir output
即可。
答案 2 :(得分:1)
您也可以尝试使用mkdir
重新创建目录。
svn mkdir
创建目录,并且相当于svn add
,但只需一步。
因此,您遇到问题的原因是因为已完成“添加”。由于你没有提交,revert将不会执行任何操作,并且svn mkdir
将无效,因为Subversion已经列出了用于在下一次提交时添加的目录(因为你的rm
不在Subversion中)。
答案 3 :(得分:1)
要理解的是SVN维护的目录与本地文件系统维护的目录之间的区别。
原始帖子中发布的四个命令执行以下操作
如果你刚发出......
mkdir output
...作为你的第三步,一切都会好的 - 使用文件系统删除了目录,因此应该使用文件系统进行恢复。没有理由让SVN参与修复,正如您所发现的那样,尝试这样做只会让事情变得混乱。
HTH