svn命令行使用方法

SVN命令行使用方法


前言

SVN作为一款经典的版本管理工具,仍有不少公司在使用。在国产化的浪潮下,有些公司会选用ubuntu作为开发系统,本文主要讲述在命令行下svn的一些基本操作方法。


一、常见的操作及对应的指令

下文中会使用“<>”来表示一定要键入的参数。

1、显示当前目录下的版本信息

svn info

2、显示当前目录下的文件状态

svn st
? 代表未受到版本控制的文件
M 代表本地有修改但没有提交的文件
C 代表有冲突的文件
A 新增的文件
D 删除的文件

3、检出代码

svn co <URL>
如果在当前位置检出
svn co <URL> ./

4、代码加入版本控制

svn add <file 或者 dir>
如果加入单个文件,例如文件名字是 note.txt
svn add note.txt
如果加入一个目录以及目录下所有文件
svn add new notes/
如果误添加目录或者文件想要去除
svn revert <file 或者 dir>
如果递归该目录可以加上 --recursive
注意:加入版本库只是在本地操作,需要提交后才可以传到服务器

5、代码提交

svn ci -m<提交说明><文件或目录>
新增了文件,在提交时也要在文件或者目录中提及

6、从版本库中删除文件

svn delete <file 或者 dir>
注意:将文件剔除版本库只是在本地操作,需要提交后才可以传到服务器

7、冲突解决

svn resolve --accept <参数> <file 或者 dir>
参数可以是 'base', 'working', 'mine-conflict','theirs-conflict', 'mine-full', 'theirs-full'
如果要合并代码,首先使用 working 参数解决冲突状态,
然后对文件进行修改,提交代码

8、动态库无法上传的问题

修改 /home/<用户名>/.subversion/config 文件将global-ignores键值设置放开,使之等于空
global-ignores =
用户名为本机用户名
操作之后可以使用 svn add 、svn ci指令完成动态库的上传

二、高级操作

1、比对同一路径下 不同版本之间的差异

将URL的REV版本变动保存到note.txt中
svn diff -c <REV> <URL> >>note.txt
-c 后面可跟多个版本<r1,r2,r3...>的修改
将差异打patch到另外一个分支
patch -p0 < <patchfile>

2、生成一个分支

copy SRC[@REV]... DST
同一个svn服务器 目标目录的倒数第二级需要在服务器上存在 否则会创建失败 ,可以使用 -r 指定版本
svn copy <URL> -r 10 <DST_URL>
不同svn服务器并不能copy
会提示svn: E200007: 来源与目标 URL 似乎不在同一版本库。
不同的服务器手动检出代码,然后上传。

3、从一个分支向主干合并

merge: Merge changes into a working copy.
merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]  (the 'cherry-pick' merge)
进入到要合并的源分支目录进行操作
svn merge -c <r1> SOURCE[@REV] [TARGET_WCPATH]
合并的流程:
trunk:	--------REV1→----REV4→---------- REV6→------------------------REV10→-------                     
				  |            \                                      /(merge from branch1)
                  |              \                                   /
                  |(copy)          \(merge from trunk )           /
branch1:        REV2→----REV3→------REV5→------------------------REV7→
名词解释:
trunk:干线 主干。branch1:branch分支,分支1
REV:版本。

4、查看某个目录的合并信息

svn proplist <dir>
svn propget svn:mergeinfo <dir>

5、外链操作

外链是指定一个受版本控制的目录的某些目录从外部拉取代码,在维护工程时,外链目录要选择合适版本。
进入到某个目录下
svn propset svn:externals "outlink <URL>" ./

总结

本文简单介绍了SVN命令行的使用方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值