将所有未版本化的文件添加到SVN
我有一个工作副本,可以通过脚本在一夜之间自动提交到SVN 我使用SVN命令行这样做 在与Google进行了一场令人沮丧的战斗之后,我一直无法解决如何在提交之前将工作副本中的所有未版本文件自动添加到存储库中 有人知道我该怎么做吗 提前表示善意和感谢 丹将所有未版本化的文件添加到SVN,svn,Svn,我有一个工作副本,可以通过脚本在一夜之间自动提交到SVN 我使用SVN命令行这样做 在与Google进行了一场令人沮丧的战斗之后,我一直无法解决如何在提交之前将工作副本中的所有未版本文件自动添加到存储库中 有人知道我该怎么做吗 提前表示善意和感谢 丹 但是要小心,因为这也会添加任何svn:ignore'd文件。在svn commit之前,您必须在脚本中为每个未版本的文件调用svn add——类似于shell脚本: for file in `svn st | grep '^\?' | awk '{
但是要小心,因为这也会添加任何
svn:ignore
'd文件。在svn commit
之前,您必须在脚本中为每个未版本的文件调用svn add
——类似于shell脚本:
for file in `svn st | grep '^\?' | awk '{ print $2; }'`; do
svn add $file
done
试着穿上这件衣服,看看尺寸——比强行穿上svn add要优雅得多:
$ svn add `svn status|grep '\?'|awk '{print $2}'`
公认的解决方案
svn——强制添加
还将添加所有被忽略的未版本文件。大多数人可能更喜欢
只需添加所有未设置版本但未被忽略的文件
要添加所有未设置版本但未被忽略的文件,codefox421回答正确:
svn st|grep||sed||xargs-I%svn添加%
因为svn st不显示被忽略的文件。在我的情况下,我需要指定:
svn --force add dir/*/*/*
*
是我要添加的树级别
用计算机检查结果
svn status --no-ignore
在进一步测试之后,似乎不需要深度,但也不会有任何伤害。力是我所缺少的。。。谢谢你!这也将添加当前忽略的文件,请小心!我们怎样才能只添加未版本的文件而不忽略它呢。在工作目录的根目录上使用
--force
将自动在其下添加任何未版本的文件。虽然您的答案在技术上是正确的,但考虑到其他选项,它的设计太过复杂:)如果文件名中有空格,则此操作将失败。或者尝试此操作。它接受路径中的空格:svn st|grep'^\?'| sed's/^\?*/'|xargs-I%svn add%
我使用了codefox421的建议,在~/.bashrc:alias svn add unversioned=“svn st | grep'^?'| sed's/^?*/'| xargs-I%svn add%
现在我只需键入svn-a
,然后点击tab,输入!
svn status --no-ignore