我有一个开发目录,其中包含来自svn存储库的检出项,这些存储库保留在非svn目录中.我想更新svns中的所有dirs.
目录结构类似于下面的一个:

你会如何解决这个问题?
我带来了"蛮力"解决方案,但它不是很聪明:
for i in `find . -mindepth 1 -maxdepth 3 -type d | grep -v .svn`; do svn up $i; done
Run Code Online (Sandbox Code Playgroud)
如果有这样的话会很高兴:
svn --recursive update development_dir.
Run Code Online (Sandbox Code Playgroud)
小智 6
不幸的是,svn不支持此功能.但是,你可以做的是通过消除循环和管道到grep来优化你的命令.该命令应如下所示:
find . -mindepth 1 -maxdepth 3 -name "*.svn" -type d -exec svn up {}/.. \;
Run Code Online (Sandbox Code Playgroud)
为了简化生活,您可以设置Bash别名,例如:
alias svn_up_recursive='find . -mindepth 1 \
-maxdepth 3 -name "*.svn" -type d -exec svn up {}/.. \;'
Run Code Online (Sandbox Code Playgroud)
...并使用svn_up_recursive命令调用整个脚本.或者创建一个shell脚本并将其放入您的bin目录中.我个人更喜欢shell脚本,因为它更容易支持,扩展它们,处理命令行参数等.
| 归档时间: |
|
| 查看次数: |
985 次 |
| 最近记录: |