Linux之svn常用命令详解
扫描二维码
随时随地手机看文章
1、签出代码
#svn co path
2、添加文件
#svn add xxx
将xxx文件或目录添加到svn库中。
3、删除文件
#svn delete xxx
将xxx文件或目录从svn库中删除
4、修改文件
#svn move xxx yyy
将xxx文件重命名为yyy,类似于Linux的mv命令。
5、检查修改
#svn status
检查修改了哪些文件。
6、查看差异
#svn diff
列出修改的明细。
#svn diff -r 3
同具体的版本进行diff
#svn diff -r 2:3
比较具体的两个版本之间的diff
7、查看日志
#svn log
查看历史日志信息。
8、撤销修改
#svn revert xxx
撤销修改,恢复到未改变的本地工作副本。
9、移除冲突
#svn resolved xxx
移除冲突,但并不解决冲突。
10、提交代码
#svn ci -m "message" xxx
将xxx文件提交到svn库。
12、更新版本
#svn update -r xxx path
将代码更新到xxx版本,如果update后面什么都没有,则将当前目录更新到最新版本。
13、分支与合并
(1)创建分支
#svn copy trunk branches/xxx -m "message"
从trunk创建一个分支branch,这样就可以checkout branch分支来开发了。
需要注意的是:最好将branch与trunk放在同一层级,否则,容易引起混乱。
(2)分支合到主干
先用svn st查看branch分支没有任何本地修改,即代码都提交到svn了。
再checkout一份trunk代码到本地,并切换cd到trunk目录下,执行如下命令来将branch分支上的改动merge到trunk:
#svn merge http://.../branches/xxx
如果出现merge冲突则进行解决,如下查看冲突文件:
#svn st|grep ^C
解决冲突后,执行svn ci提交变动到svn。
当然也可以merge指定branch上的某些版本合并到trunk:
#svn merge http://.../branches/xxx -r 150:HEAD
上面命令将branch中从版本150到当前版本的所有改动都合并到trunk中。
合并完后,可以用如下命令来查看merge情况:
#svn mergeinfo http://.../branches/xxx
执行上面命令可以查看当前branch中有哪些改动已经合并到trunk中了。
#svn mergeinfo http://.../branches/xxx --show-revs eligible
执行上面命令可以查看branch中哪些改动还未合并。
(3)主干合到分支
主干合并到分支的过程同上,具体如下:
#svn co http://.../branches/xxx
#svn merge http://.../trunk -r 150:160
#svn st|grep ^C
#svn ci -m "merge trunk to branch"
#svn mergeinfo http://.../trunk
#svn mergeinfo http://.../trunk --show-revs eligible
14、版本回退
将代码回退到某一个版本的方法有2种:
(1)svn merge
#svn up
先将本地代码update到最新版本,比如:20。
#svn log
查看历史版本,找出要恢复的版本,比如:10(svn版本号在查看的时候会是rxxx,但用的时候要去掉r)。
#svn diff -r 10:20 代码目录
如果有必要的话,可以用上面命令来查看待恢复版本与当前版本的差异。
#svn merge -r 20:10 代码目录
回滚版本即反向合并,注意上面版本号之间的顺序,上面命令将版本r20回退到r10。
如果需要从当前最新版本回退到xxx版本,还可以如下:
#svn merge -r rHEAD:xxx http://.../trunk
上面的地址是待回退分支,操作完成后,本地的working copy会更新为trunk的xxx版本的代码。
#svn diff -r 10 xxx.cpp
如果必要可以用如上命令来查看回退后文件差异,如果有则手动修改之。
#svn ci -m "roll back to r10" 代码目录
如果没有差异,则需要将代码提交到svn,否则回滚不会生效,提交后会在svn库中生成新的版本号,比如这里会是:r20。
(2)svn up
还可以如下来回退版本:
#svn up
#svn up -r 10
#svn ci -m "roll back to r10" 代码目录
15、创建tags
#svn mkdir tags
#svn copy trunk/ tags/project_1.0.0
执行上面命令将备份版本copy到tags。
#svn ci -m "add project_1.0.0 to tags"