svn 命令行技巧

subversion/svn的设计还是非常棒的!子命令清晰明了,外围工具或plugin有时不能work,还必须用命令行(根本入手)。

当时对scalability需求不强,所以没有像git, mercurail一样设计分布式。所以,这几年用svn少了一些。但对小项目足够了。

 

1. 外部editor

 

很多命令可能用外部editor,有时不用还搞不定(如下面的设置ignore list)。

 

* 可以在.profile里 export SVN_EDITOR=vim (or mate)

 

* 其实一般用editor来写一些命令参数args,如  svn pe svn:ignore .    这样打开一个svn*.tmp的文件,保存即可

 

* 使用时指定tmp文件, svn ps svn:ignore --file svn-prop.tmp .

 

2. ignore文件和目录

 

$ svn export spool spool-tmp
$ svn rm spool
$ svn ci -m 'Removing inadvertently added directory "spool".'
$ mv spool-tmp spool
$ svn propset svn:ignore 'spool' .
$ svn ci -m 'Ignoring a directory called "spool".'

 

3. ignore多个文件和目录

 

上面的方法只能是对一个目录和文件有效

 

多个的话,后面的文件会覆盖前面文件,可以用svn pg svn:ignore来查(反馈是多少重要)

 

此时可用 svn ps svn:ignore --file svn-prop.tmp . 把ignore list写在.tmp文件里

 

svn-prop.tmp:

dir1

dir2

dir3

 

4. 暴力解决问题

 

有时svn死活管不好,往往出现在目录移动上。这时就把目录下.svn目录删掉。

 

update 肯定会冲突,不怕。用svn resolve --acept working , 然后再把需要svn add回去,再svn ci

 

5. 多用缩写

 

svn st 比svn status好打多了

 

6. 批量操作

 

 

   svn delete $(svn status | sed -e '/^!/!d' -e 's/^!//')

 

   svn add $(svn status | sed -e '/^?/!d' -e 's/^?//')

 

7. 切换库

 

svn switch --relocate svn://58.61.1.1/genius/master svn://192.168.1.1/genius/master

 

8. 外部引用

 

svn ps svn:externals --file external.txt .

external.txt

lib/zlib  svn://192.158.1.100/a/b/lib/zlib

 

这样就可以多个项目引用基础库了!

 

9. 暴力删除svn:external

 

svn propdel -R svn:externals

 

10. 暴力删除svn的所有配置文件

 

find . -type d -name ".svn" |xargs rm -rf

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值