今天在提交项目时添加一个文件夹(folderName),结果svn出现了:Folder(文件夹)is already under version control这样的警告信息,并且怎么也提交不上。刚遇到此问题的时候感觉很奇怪,自己并没有在svn上添加这个目录(folderName),这里却提醒此目录(folderName)已经有version。而且svn上该目录状态也是?状态。经过查阅资料后才明白,原因是:我所添加的这个文件夹是从另一个项目中拷贝过来的,而且这个项目也是在svn上保存的,这样就导致我所提交的文件或目录是其他svn的东西,也就是说下面有.svn的目录,要解决此问题,删除要提交目录下的所有.svn文件即可,记住是该目录下所有.svn文件,注意递归子目录。
这里给出三种解决方式:其中前两种方法是递归删除该目录以及子目录下下所有.svn文件;第三种是本人用的比较笨的方法:也就是新建一个文件夹,然后将我们所需要的文件夹下的文件选中拷贝一份(记住不要拷贝目标文件夹,只拷贝里面需要的文件即可),最后将拷贝的文件放到新建的文件夹下,然后导入工程,避免有旧的.svn文件存在。
方法一:
打开终端,cd到你新增加的那个目录,然后用下面的命令
find . -mindepth 2 -name '.svn' -exec rm -rf '{}' \;
说明: -exec之后的rm -rf是命令以及参数,{}就是find的命令找到的结果集,\; 也是需要输入的哦
方法二:
同样是在终端里,cd到你新增加的那个目录,然后用下面的命令
find . -type d -name “.svn”|xargs rm -rf
方法三:
见上描述,本人觉得此方法是比较笨的方法,若有童鞋对命令行比较熟悉,可以采用以上高大上的方式,若像我一样对命令行了解不多,可以采用此方法,毕竟比较实用,哈哈!