文档章节

svn linux常用命令、解决冲突、回滚版本和分支

big_cat
 big_cat
发布于 2015/12/15 15:58
字数 840
阅读 2983
收藏 6

检出

svn checkout svn://svnserver.com
svn co svn://svnserver.com

更新

#更新到最新版本
svn update
svn up
#更新到某一版本 但要注意这并不会重新生成新的版本库 即 r20 更新到 r10 你 commit 后不会生成 r21
svn update -r reversion
svn up -r reversion


添加\删除\未提交恢复

#将文件加入版本控制
svn add filename/dirpath
svn delete filename/dirpath
#未提交 可恢复
svn revert filename/dirpath

查看文件状态

svn status
svn st
A 新增 C 冲突 D 删除 G 合并 U 更新 E 存在 R 替换

查看版本日志

svn log
#这里的99 88 为版本号 注意使用时不带r
r99-------------
r88-------------
#查看指定文件的日志
svn log filename

查看版本信息

#查看本项目的信息
svn info
#查看指定文件的信息
svn info filename

提交

svn commit -m "your tip message"
svn ci -m "your tip message"

查看文件不同版本差别

svn diff -r 10:20 // 10 和 20 的
svn diff -r 10 current_version.sh // 10 和当前文件的

冲突解决

当我 与 A 同时修改了 same_time.txt 文件,并且 A 早于我提交,当我提交时就会提示冲突发生,会提示你要先进行更新(当然 svn 客户端会智能的检测看是否能进行merge合并),若无法合并则会让你手动解决,同时更新会让你选择

Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,
        (s) show all options:

一般我选择 p ,将冲突更新到本地,与 A 协同一起解决冲突

vi same_time.txt      //引入冲突的  

<<<<<<<
mine content
============
A content
>>>>>>> .r11

#我的
same_time.txt.mine
#冲突前的
same_time.txt.r10
#冲突的
same_time.txt.r11

#当你与 A 协同好后,执行下面的命令即可通知服务器冲突已解决 它会把 mine r10 r11自动删除
svn resolve --accept working same_time.txt
svn ci -m "resolve the conflict A and me"

即可解决冲突,其实比较蛋疼的是你手动把 mine r10 r11那三个文件删了 svn 服务器也会认为你解决的冲突,团队协作开发中应分工明确,尽量不要两人同时工作于同一文件,发生冲突要协作解决

回滚到某一版本 merge -r v_2:v_1 filename (to v_2 from v_1) 

#首先更新到最新版本 获取当前版本的版本号
svn up 
#获取最新的版本号
Updated to revision 12 

#如果我想恢复到11版本则先看下两者的差别
svn diff -r 12:11 same_time.txt
#-r version_1:version_2 是说 to version_1 from version_2
svn merge -r 12:11 same_time.txt

#有冲突解决冲突 没冲突提交
#提交生成新的版本库
svn ci -m 'revision 13 revert same_time.txt from 11'

分支Branch

#创建分支 创建后可根据路径检出
svn cp/copy svn://127.0.0.1/project_1/trunk svn://127.0.0.1/project_1/branch/project_1_sub -m "create branch"

#删除分支
svn delete/rm/remove svn://127.0.0.1/project_1/branch/project_1_sub -m "delete project_1_sub"
合并分支

#查找分支被创建是的版本号
cd /var/www/project_1/branch/project_1_sub
#最后一个就是 比如为 r11
svn log | tail
#进入主干目录
cd /var/www/project_1/trunk
#将分支版本合并到主干,范围为 r11到当前 HEAD 版本
svn merge -r 11:HEAD svn://127.0.0.1/project_1/branch/project_1_sub -m "merge branch"
#没有冲突提交即可



© 著作权归作者所有

big_cat
粉丝 49
博文 237
码字总数 162865
作品 0
长宁
后端工程师
私信 提问
svn 常用操作命令及问题处理

[TOC] 1. 常用命令 1.1. 基本使用 检出 checkout 加入版本控制 add 提交 commit 更新 update 清除锁定 重定向仓库地址到新地址 切换当前项目到指定分支 检查工作副本下的文件状态 查看工作副...

whoru
2018/10/21
286
0
详解Linux命令行下常用svn命令

1、Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、Linux命令行下往版本库中添加新的...

墙头草
2010/11/19
1K
1
SVN常用命令

SVN(Subversion)是一个自由、开源的项目源代码版本控制工具。目前,绝大多数开源软件和企业代码管理,都使用SVN作为代码版本管理软件。 Subversion将文件存放在中心版本库里,这个版本库很...

长平狐
2013/01/06
1K
0
评《GIT和SVN之间的五个基本区别》

原文链接http://www.oschina.net/news/12542/git-and-svn,首先说明,我没看英文原版,因为就我目前来说,自认为没这个需要了。好吧,我承认其实是犯懒。。。 下面我结合自身体会,逐条评论一...

Mr_Anarchy
2014/03/31
7.9K
11
TortoiseSVN使用说明

google的svn http://code.google.com/intl/zh-CN/ TortoiseSVN是windows下其中一个非常优秀的SVN客户端工具。通过使用它,我们可以可视化的管理我们的版本库。不过由于它只是一个客户端,所以...

xiahuawuyu
2012/07/20
103
0

没有更多内容

加载失败,请刷新页面

加载更多

CQRS与AXON

CQRS 看了蛮多文章,只会CRUD,却不懂CQRS,CQRS是遵循DDD思想而产生的一种模式,Command and Query Responsibility Segregation 命令与查询隔离。查询就直接通过正常的模式service调dao层。...

无极之岚
27分钟前
4
0
OSChina 周三乱弹 —— 欢迎你来做产品经理

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :10多次劲歌金曲获奖,更多叱咤歌坛排名,黎明才应该是四大天王之首,只可惜拍的电影太少。单曲循环一个多月的歌,力荐 《无名份的...

小小编辑
42分钟前
78
5
500行代码,教你用python写个微信飞机大战

这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。 帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!...

上海小胖
今天
8
0
关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
7
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部