常用的svn使用方法

svn的使用

checkout 从服务器获取代码

  • 普通的checkout
svn checkout http://192.168.1.207/svn/software/RG53262M/trunk RG53262M_rep
  • checkout分支,值啊分支目录里checkout就行了。
svn checkout https://117.84.30.110:918/svn/software/RG53262M/branches/53128_53101 53128_53101
  • checkout 特定版本的代码
svn checkout -r r205 https://192.168.1.10/svn/software/RG53262M/trunk bcm53262_r205

提交代码

svn commit -m "详细注释,都改了些什么,怎么改的。"  /app/mstp/stp.c

提交代码的基本流程

  • checkout代码到本地
  • 找到问题修改或者开发
  • 提交之前svn update 版本库上最新代码, 如果有冲突解决冲突。
  • svn status -q 查看所修改的所有内容,-q对于那些未版本管理的内容不显示,例如:.o文件。
  • 使用svn add /app/mstp/api.c 添加新加的文件,使用 svn commit -m "提交注释" /app/mstp/stp.c 提交修改和后添加的的文件。
  • 提交完成

日志

查看日志

svn log -l 10   //查最近的10条日志
svn log -r 10:11 --diff //查看r10 和r11版本之间都改了些什么
svn log -r 10:12 --diff /app/mstp/stp.c  //当然也可以查特定文件修改的内容
svn log -r 20 touched.txt --diff  //r20都改了些什么
svn log -v -r 204 //查看204都改了哪些文件。
svn log -v -r 205:208  //看205到208的提交记录

怎么用命令修改log

svn propedit svn:log --revprop -r 295

(这时候会出现一个编辑器,在其中将原先的内容进行修改,然后保存,看到下面的输出信息就说明操作成功了)
Set new value for property ‘svn:log’ on revision 295

svn回滚

  • 从r374 回滚到r373
svn merge -r 374:373 apps/rc/include/apps.h 
  • 从回退中恢复为最新的代码
svn revert  -R ./    //这个目录和子目录下的所有代码全部回退
svn revert xxx.c  //单独revert一个文件

TortoisSVN

拉分支

  • 使用命令行拉分支
svn copy https://192.168.1.10/svn/software/RG53262M/trunk https://192.168.1.10/svn/software/RG53262M/branches/53128_53101  -m 'make branches for 53128 53101' 
  • 合并回主分支
    命令:svn -r 分支版本号:HEAD 分支的URL
    解释:HEAD为当前主干上的最新版本
    示例:
cd trunk    要在主分支的代码上操作
svn merge -r 615:HEAD https://192.168.1.10/svn/software/RG53262M/branches/bcm_poe

在windows上拉分支

第一步:checkout一份代码
第二步:在刚刚checkout出的代码上鼠标右键,TortoiseSVN – Branch/tag。
第三步:选定分支所要放置的目录即可。

svn打补丁的方法

svn diff > patchfile
svn diff -r 20:21 /appDemo/boardConfig/gtRd_xCat_24GE_4HGS.c > XGport.patch
patch -p0 < patchfile //应用patch文件, -p0 选项要从当前目录查找目的文件(夹)
patch -p1 < test.patch // -p1 选项要从当前目录查找目的文件,不包含patch中的最上级目录(夹)

参考链接

用户,密码相关

linux上切换svn用户的方法

  • 怎么看出当前登录的用户是什么?
    cd ~/.subversion/auth/svn.simple
    cat 一下里边的文件就可以看到当前登录的svn账号了。

  • 临时切换:
    svn update –username quzhifeng –password 123456

  • 永久切换:
    删除目录 ~/.subversion/auth/ 下的所有文件。下一次操作svn时会提示你重新输入用户名和密码的。换成你想用的就可以了。然后系统默认会记录下来的。

修改登录时是否需要密码的配置项

服务器(visualsvn)上设置 log 可编辑的方法?

在要配置的Repositories上鼠标右键 -> 所有任务 -> Manage Hooks -> 点击hooks页签 –> 编辑Pre-revision property change hook , copy如如下的内容既可

if "%4" == "svn:log" exit 0
echo Property '%4' cannot be changed >&2
exit 1

如何修改svn的url 地址

在linux下用命令改

svn switch --relocate http://192.168.1.10/svn/Vitesse_CEservice/trunk/CE_ECOS http://192.168.1.10/svn/Vitesse_CEservice/branches/vitesse_cn_web

在windows下用TortoisSVN改

windows TortoisSVN客户端
在工作复本的根目录上右键->TortoiseSVN->重新定位(Relocate),然后修改URL。(要在最最上层目录鼠标右键,否则没有relocation这个选项啊。)

技巧

技巧1批量提交文件的方法

  • 所有修改收集到一个文件中
svn status > tmp.txt   //所有修改收集到一个文件中
  • 使用notpad++的列编辑模式,把前边的内容去除掉,只留文件名称。
  • 删除不需要提交的文件。
  • 把tmp.txt中列出来的所有文件都提交上去
svn commit -m "提交注释信息" $(<tmp.txt)

ubuntu 下svn安装

sudo apt-get install subversion 
  • 是什么原因导致拉分支不成功?
svn copy https://192.168.1.10/svn/VitesseLinuxCEService/trunk/vitesse_linux_src https://192.168.1.10/svn/VitesseLinuxCEService/branches/vsc_linux_fix/ -m "fix demo problem."
svn: E175013: Access to '/svn/VitesseLinuxCEService/!svn/rvr/6/trunk/vitesse_linux_src' forbidden

解决:发现代码的trunk目录中,有部分代码我不能访问,没有读写权限,将docs目录配置有读写权限了,就可以拉分支出来了。

如何上传初始代码?

  • 在svn服务上新建一个代码仓库,并记录下仓库的url访问地址。
  • 在本地的电脑上,准备好代码目录,例如:svncode
  • svn checkout http://svnserver/mycode svncode //checkout到这个目录
  • 提交原始代码:
    • cd svncode; svn add *; 添加所有代码
    • svn commit -m “commit the first version of mycode”

有用链接

svn参考手册

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值