Linux svn使用方法杂记

SVN 使用 1.本地更新svn服务器地址: 网上介绍使用: svn sw --relocate svn旧地址  svn新地址 但是我使用这个命令的时候,总是提示: svn: E155024: Invalid relocation destinatio...

SVN 使用


1.本地更新svn服务器地址:


网上介绍使用:


svn sw --relocate svn旧地址  svn新地址

但是我使用这个命令的时候,总是提示:

svn: E155024: Invalid relocation destination: 'xxxxxxxxx' (does not point to target)

后来直接使用以下命令就成功了


svn sw  svn新地址


如果url部分都一样,只是svn服务器地址变换了,使用如下方式:

svn switch --relocate svn://10.251.245.226/meitianhui_repo/sourcecode/ops/trunk svn://172.16.83.186/meitianhui_repo/sourcecode/ops/trunk

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


  • 发表于 2019-06-18 21:10
  • 阅读 ( 53 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
shitian
shitian

662 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章