我正在尝试从我的工作副本中新添加新项目文件到SVN文件夹中。它询问“递归”选项,并显示消息“您确定要添加 * 许多项吗?” 。有人可以指导我使用这个“递归”选项来启用吗?我是否应该在新添加新项目文件时启用它?
谢谢。
答案 0 :(得分:86)
简短版本: svn add * --force 就是您所需要的
长版: 根据{{3}}手册页
通常,命令svn add *将跳过已受版本控制的任何目录。但是,有时您可能希望在工作副本中添加每个未版本化的对象,包括那些隐藏得更深的对象。传递--force选项使svn将recurse添加到版本化目录中:
$ svn add * --force
A foo.c
A somedir/bar.c
A otherdir/docs/baz.doc
答案 1 :(得分:2)
首先回答您是否应该启用递归选项的问题: 如果您复制的文件夹结构中包含多个文件和嵌套的文件夹,则需要递归添加。
在命令行中,这应该对您有用:
svn add * --depth infinity
如果它不起作用,则可以尝试使用'--force'参数:
svn add * --force --depth infinity
或者,在某些情况下,忽略属性造成麻烦,您可能还需要使用'--no-ignore'来成功:
svn add * --force --no-ignore --depth infinity
答案 2 :(得分:0)
svn add * --force
在添加zip文件时对我不起作用。
相反,我不得不cd
到包含zip文件的目录并运行svn add .
$ svn add .
A .
A (bin) SOAPUI_TEST_1.zip
A (bin) SOAPUI_TEST_2.zip
A (bin) SOAPUI_TEST_3.zip
A (bin) SOAPUI_TEST_4.zip
答案 3 :(得分:0)
我不得不按如下方式使用我们的老朋友find
:
cd root_folder_I_want_to_checkin
递归添加文件夹:
find . -type d -exec svn add {} \;
检查状态(所有状态均应显示为A
)
svn status
某些文件仍显示状态?
,所以我也这样做了:
find . -type f -exec svn add {} \;
现在svn status
显示所有都是A
,所以现在:
svn commit . -m 'blah blah blah.'