如何将所有新文件添加到SVN

Bri*_*ian 62 svn

我正在使用ORM从CLI生成大量文件.是否有一种简单的方法来运行svn add目录中的所有文件,这些文件在?我运行时出现svn status

编辑 这些文件存在于目录树中,因此添加*一个目录将不起作用.

Sto*_*ica 135

这将在指定的目录树下添加所有未知(除了忽略)文件:

svn add --force path/to/dir
Run Code Online (Sandbox Code Playgroud)

这将在当前目录及下面添加所有未知(除了忽略)文件:

svn add --force .
Run Code Online (Sandbox Code Playgroud)

  • +1 - 这似乎是最正确的.我正在删除原来的答案. (5认同)

pha*_*zei 68

作为参考,这些 非常相似的问题.

这些似乎对我来说是最好的.它们也适用于空格,不会重新添加被忽略的文件.我没有看到他们在我看到的任何其他答案中列出.

添加:

svn st | grep ^? | sed 's/?    //' | xargs svn add
Run Code Online (Sandbox Code Playgroud)

删除:

svn st | grep ^! | sed 's/!    //' | xargs svn rm
Run Code Online (Sandbox Code Playgroud)

编辑:如果要保留被忽略的文件,请不要使用"add*",否则将重新添加被忽略的所有内容.


pro*_*son 29

你可以做一个svn add path/to/dir/*你会得到关于任何已经在版本控制中的东西的警告,但它会添加一些不是.

  • 如果你忽略了文件,你真的不想这样做,因为它会重新添加它们. (30认同)
  • http://svnbook.red-bean.com/en/1.6/svn.ref.svn.c.add.html - >"通常,命令svn add*将跳过已经受版本控制的任何目录.但是,有时您可能希望在工作副本中添加每个未版本化的对象,包括那些隐藏得更深的对象.传递--force选项会使svn将recurse添加到版本化目录中" (7认同)

mar*_*rkb 9

svn status | grep "^\?" | awk '{print $2}' | xargs svn add
Run Code Online (Sandbox Code Playgroud)

取自网络上的某个地方,但我已经使用了一段时间,它运作良好.


Car*_*rum 5

如果svn add whatever/directory/*不起作用,你可以用艰难的方式做到:

svn st | grep ^\? | cut -c 2- | xargs svn add
Run Code Online (Sandbox Code Playgroud)