------------------------------------------------------------------------------------------------------
此文章仅作为学习交流所用
转载或引用请务必注明原文地址:
http://blog.csdn.net/luzhenrong45/article/
或联系作者:[email protected]
谢谢!
------------------------------------------------------------------------------------------------------
SVN 使用
1.本地更新svn服务器地址:
网上介绍使用:
svn sw --relocate svn旧地址 svn新地址
但是我使用这个命令的时候,总是提示:
svn: E155024: Invalid relocation destination: 'xxxxxxxxx' (does not point to target)
后来直接使用以下命令就成功了
svn sw svn新地址
2. svn 解决树冲突
提示local unversioned, incoming add upon update
D C clock_data.c
> local unversioned, incoming add upon update
解决方法:
直接 svn revert clock_data.c 就行, 网上扯了一大堆,结果没用
3. svn只checkout单个文件:
比如我要checkout的文件为 build.sh, 所在的目录为 svn://www.laolu.coml/dev/Branches/Android/OS/
方式一:svn cat
缺点:相当于只是复制粘贴下来而已,并没有由svn跟踪,即使修改了文件,svn也识别不出来有改动
svn cat svn://www.laolu.coml/dev/Branches/Android/OS/build.sh > build.sh
方式二:svn co (推荐使用该方式)
(1)首先检出文件所在的目录
svn co --depth=empty svn://www.laolu.coml/dev/Branches/Android/OS/ work_dir
cd work_dir
svn up build.sh
4. 一次性svn add添加所有新文件
方式一:
svn st | grep '^\?' | tr '^\?' ' ' | sed 's/[ ]*//' | sed 's/[ ]/\\ /g' | xargs svn add
方式二:
svn st | awk '{if ( $1 == "?") { print $2}}' | xargs svn add
5. svn st 只显示修改过的文件
svn st | awk '{if ( $1 == "M") { print $2}}'
6. linux svn 默认过滤文件列表设置
1. 打开svn默认配置文件:~/.subversion/config
2. 查找 [miscellany] 字段,即可看到下面有个 global-ignores 键名,默认为注释掉了的,这表示SVN已经将它们作为默认值了。
3. 根据实际需要,取消注释,比如不要过滤.a, .so,就可以把 *.so *.so.[0-9]* *.a 去掉。
7. linux svn 增加可执行权限
本地文件在commit到仓库之前若没有chmod +x 权限的话,那在svn仓库里的文件将会保持当前无可执行属性状态。
即使在本地chmod +x filename 之后,再提交到仓库也是没有用的。check out到其他目录的时候,文件仍然没有可执行权限,需要使用svn 设置文件属性。
比如 build.sh 文件
svn propset svn:executable on build.sh