Linux下SVN命令简介

2 篇文章 0 订阅

1. 将服务器文件签出到本地

  • 签出文件夹
svn checkout svn://192.168.16.68/demo/trunk /home/tom/works/demo/
  • 签出文件夹里的全部内容
cd /home/tom/works/demo
svn checkout svn://192.168.16.68/demo/trunk/ .
  • 签出某个版本的文件
svn checkout -r 88 svn://192.168.16.68/demo/trunk /home/tom/works/demo/

2. 添加新文件

svn add new.txt #需要提供修改后才能改变服务器里的内容

3. 提交修改

svn commit -m "添加了新文件" new.txt

4. 更新版本

  • 全部更新
svn update
  • 更新文件到某个版本
svn update -r 88 test.c

5. 删除文件

svn delete test.c -m "删除测试文件" #需要提供修改后才能改变服务器里的内容

6. 查看日志

svn log new.txt

7. 查看文件状态

  • 显示文件状态
svn status new.txt
#不显示:正常状态
#?:不受版本控制
#M:内容被修改
#C:发生冲突
#A:预定加入到版本库
#D:预订从版本库中删除
#K:被锁定
  • 显示修改状态
svn status -v path
#工作版本号 最后一次修改的版本号 最后一次修改的用户 文件名
#9        			9 			jerry        .
#9        			4 			wfc          a.h
#9        			4 			wfc          array
#9        			4 			wfc          array/array_hosts_for.sh
#9        			4 			wfc          array/array_hosts_while.sh
#9        			4 			wfc          array/count_shells.sh

8. 查看文件信息

svn info new.txt

9. 比较差异

  • 比较当前内容和最新版本
svn diff new.txt
  • 比较当前内容和某个版本
svn diff -r 88 new.txt
  • 比较任意两个版本
svn diff -r 88:99 new.txt

10. 加锁/解锁

svn lock new.txt -m "加锁"
svn unlock new.txt

11. 版本合并

将两个不同的版本进行diff,然后将diff的结果应用的到文件上。

  • 正向合并
$ svn merge -r old:new new.txt #old:以前的版本;new:新版本
  • 反向合并
    如果代码提交后发现需要回滚到旧的版本,则可以使用merge来完成该操作。
$ svn merge -r new:old new.txt #old:要回滚到的版本;new:新版本

12. 解决冲突

在使用svn更新,提交,合并等过程中会出现冲突,其解决是类似的,以下以update为例进行说明,如下图所示:
在这里插入图片描述
可以输入e通过编辑修改文件,解决冲突。如果出现 **“没有设置 SVN_EDITOR,VISUAL 或 EDITOR 环境变量”**的问题,则需要设置环境变量:

$ vim ~/.bash_profile #打开bash配置文件,在文件最后添加 export SVN_EDITOR=vim
$ source ~/.bash_profile #使新配置生效

输入e之后,打开编辑器会显示以下内容:
在这里插入图片描述
根据实际需求修改文件,解决有冲突的问题,然后保存退出。退出后选择(r)即可更新到最新版本,然后继续自己的修改,最后提交。
在这里插入图片描述
对于其他情况的冲突,修改完冲突后,需要重新标记文件为已解决了冲突,如下:

$ svn resolved new.txt

13. 恢复本地修改

$ svn revert new.txt

14. 添加文件夹

  • 直接在版本库中添加
$ svn mkdir svn://127.0.0.1/demo/trunk/newDir -m "添加新文件夹newDir"
  • 在工作目录中添加,然后提交修改
$ svn mkdir newDir
$ svn commit -m "添加新文件夹newDir"

15. 创建分支

$ svn copy svn://127.0.0.1/demo/trunk svn://127.0.0.1/demo/branches/branch1 -m "创建第一分支"
#如果svn://127.0.0.1/demo/branches/branch1文件夹已经存在,则拷贝trunk文件夹到branch1文件夹下

16. 合并分支到主干

#cd到主干的本地工作目录
$ svn update #需要更新到最新版本,否则会无法合并
$ svn merge svn://127.0.0.1/demo/branches/branch1 #合并分支中的内容到本目录,如果有冲突虚解决冲突

17. 切换代码库URL

$ svn swtich newURL

18. 显示版本库目录下的文件和目录

$ svn list svn://127.0.0.1/demo/trunk
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值