SVN:递归添加

时间:2012-11-30 09:53:48

标签: svn

我正在尝试从我的工作副本中新添加新项目文件到SVN文件夹中。它询问“递归”选项,并显示消息“您确定要添加 * 许多项吗?” 。有人可以指导我使用这个“递归”选项来启用吗?我是否应该在新添加新项目文件时启用它?

谢谢。

4 个答案:

答案 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.'