52 svn
有时我在项目的不同目录中包含许多文件.现在我在提交之前将所有文件逐个添加到我的项目中.是否有任何Linux终端命令可以将所有未版本控制的文件添加到Subversion?
如果我想添加除一个或两个文件之外的所有文件怎么办?
cle*_*tus 79
svn add --force <directory>
Run Code Online (Sandbox Code Playgroud)
添加已经是递归的.您只需强制它遍历版本化的子目录.
Jam*_*ore 27
添加任何旁边带有问号的文件,同时仍然排除被忽略的文件:
svn status | grep -v "^.[ \t]*\..*" | grep "^?" | awk '{print $2}' | xargs svn add
svn commit
Run Code Online (Sandbox Code Playgroud)
http://codesnippets.joyent.com/posts/show/45
小智 23
这将尝试添加所有文件 - 但实际上只添加尚未包含在SVN中的文件:
svn add --force ./*
Run Code Online (Sandbox Code Playgroud)
pet*_*gnz 13
此命令将在svn st命令输出中列出的任何未版本控制的文件添加到subversion.
请注意,不会添加在svn stat输出中包含空格的任何文件名.此外,如果任何文件名包含'?',则可能会出现奇怪的行为.
svn st | grep ? | tr -s ' ' | cut -d ' ' -f 2 | xargs svn add
Run Code Online (Sandbox Code Playgroud)
或者如果你擅长awk:
svn st | grep ? | awk '{print $2}' | xargs svn add
Run Code Online (Sandbox Code Playgroud)
说明:
第1步: svn st命令
[user@xxx rails]$svn st
? app/controllers/application.rb
M app/views/layouts/application.html.erb
? config/database.yml
Run Code Online (Sandbox Code Playgroud)
第2步:我们使用grep命令grep未版本控制的文件:
[user@xxx rails]$svn st | grep ?
? app/controllers/application.rb
? config/database.yml
Run Code Online (Sandbox Code Playgroud)
步骤3:然后?使用tr命令删除挤压文件路径和文件路径之间的空格:
[user@xxx rails]$svn st | grep ? | tr -s ' '
? app/controllers/application.rb
? config/database.yml
</pre>
Run Code Online (Sandbox Code Playgroud)
步骤4:然后使用cut命令从输出中选择第二列:
[user@xxx rails]$svn st | grep ? | tr -s ' ' | cut -d ' ' -f 2
app/controllers/application.rb
config/database.yml
Run Code Online (Sandbox Code Playgroud)
步骤5:最后,将这些文件路径作为标准输入传递给svn add命令:
[user@xxx rails]$svn st | grep ? | tr -s ' ' | cut -d ' ' -f 2 | xargs svn add
A app/controllers/application.rb
A config/database.yml
Run Code Online (Sandbox Code Playgroud)
Amb*_*ber 10
默认情况下,该svn add命令是递归的.只需将它指向项目的顶级目录,它应该添加任何尚未存在的文件.
您可能希望包含该--force选项,但请记住,这也会添加由于svn:ignore而被排除的文件(如果您不使用svn:ignore,那么您将不会遇到任何问题).
| 归档时间: |
|
| 查看次数: |
65724 次 |
| 最近记录: |