常用的svn使用方法

it2026-08-09  1

svn的使用

文章目录

svn的使用checkout 从服务器获取代码提交代码提交代码的基本流程日志查看日志怎么用命令修改log svn回滚TortoisSVN 拉分支在windows上拉分支 svn打补丁的方法用户,密码相关linux上切换svn用户的方法修改登录时是否需要密码的配置项 服务器(visualsvn)上设置 log 可编辑的方法?如何修改svn的url 地址在linux下用命令改在windows下用TortoisSVN改 技巧技巧1批量提交文件的方法ubuntu 下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访问地址。在本地的电脑上,准备好代码目录,例如:svncodesvn checkout http://svnserver/mycode svncode //checkout到这个目录提交原始代码: cd svncode; svn add *; 添加所有代码svn commit -m “commit the first version of mycode”

有用链接

svn参考手册

最新回复(0)