Linux svn使用方法杂记(持续更新...)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/luzhenrong45/article/details/52584400

------------------------------------------------------------------------------------------------------

       此文章仅作为学习交流所用

       转载或引用请务必注明原文地址:

       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


(2) 进入work_dir目录,单独更新build.sh

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




猜你喜欢

转载自blog.csdn.net/luzhenrong45/article/details/52584400