SVN版本控制详解
1 版本控制
1.1 如果没有版本控制?
Team开发必备。
一个人开发(必备)。
版本控制:控制(代码)版本。
论文:版本控制?
毕业论文-4-22.doc
毕业论文-5-01.doc
毕业论文-final.doc
毕业论文-final-final.doc
毕业论文-final-final2.doc
软件的代码
- 备份多个版本,费空间,费时间
- 难于恢复至以前正确版本
- 容易引发BUG
- 解决代码冲突困难
- 难于追溯问题代码的修改人和修改时间
- 无法进行权限控制 (读 写 哪些代码开放)
- 项目版本发布困难
1.2 什么是版本控制
2 SVN
2.1 简介
2.2 环境搭建
2.2.1 Svn服务器
VisualSVN-Server-3.3.1 window上的svn服务器软件
安装过程百度一下。
2.2.1.1 配置用户
2.2.2 Svn客户端
跟svnserver交互的客户端软件 集成了svn的各种命令。
安装步骤见安装的word文档。
2.3 Svn的基本使用
控制任何语言的代码。
基本的功能的使用。
2.3.1 使用svn服务器软件创建版本仓库
2.3.2 Svn仓库的目录结构
- 仓库目录说明
- db目录:就是所有版本控制的数据存放文件。
- hooks目录:脚本文件的目录。
- locks目录:用放置hook来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端。
- format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
- conf目录:是这个仓库的配置文件(仓库的用户访问帐号、权限等)。
2.3.3 Svn checkout (检出)
要找一个空白的目录从服务器上把代码仓库下载到本地。
2.3.4 Add
把新增加的文件纳入到版本控制。
2.3.5 Commit
把本地的内容提交到服务器上。
2.3.6 Update
去服务器上获取最新的版本内容。
可以在文件上操作 ,表示仅仅更新这个文件
可以在空白处操作。表示更新这个项目服务器上的所有东西。
2.3.7 代码冲突的解决。
2.3.7.1 Case1 冲突文件的代码 被svn工具自动合并了(罕见)。
Svn帮你合并的(知道一下)
提示应该先去更新
选择update,把服务器上的版本 更新下来。
自动合并。
svn自动合并之后,需要程序员自己去检查一下,svn自动合并是否正确。
如果正确,继续提交。
2.3.7.2 Case2 (svn工具整合的时候报错了,需要我们自己解决冲突 大部分情况)
需要自己手动merge。
解决冲突
冲突解决完毕之后
2.3.8 History
在空白处查看—— 查看的是整个项目的提交历史
在某一个文件上点击
单个文件的history
2.3.9 文件的锁定
用户Alock之后,
其他用户可以update,但是无法commit。
用户A什么时候unlock
当他提交之后,就unlock了。
2.3.10 版本回滚(回退)。
2.3.10.1 Revert to this reversion (回退到这个版本)
比如当前的版本是9.
回退到这个版本8.
Revert to this reversion 8,本地变成8. 再次提交,提交之后。会产生一个新的版本10. 跟之前的8一样。
2.3.10.2 Revert change from this version
(把这个版本的变化撤销)
如果当前的版本是10
选择版本6,进行 revert change from this version,
本地的代码会把版本6的变化撤销。
撤销之后有可能会代码冲突。此时需要解决冲突。
提交之后,产生一个新版本11.
此时11里没有版本6的修改。但是还有7 8 9 10
2.4 Svn和eclipse的结合使用
2.4.1 Eclipse 安装一个svn插件
2.4.1.1 方法1
在线安装
2.4.1.2 方法2
离线安装
2.4.2 整合之后的基本使用
2.4.2.1 把svn服务器的项目checkout到myeclipse里
2.4.2.2 基本使用跟tortoisesvn一样
右键操作
2.4.2.3 冲突解决
Merge code 手动去解决冲突代码。
2.4.2.4 版本回退
第一个:
从修订版4 回复更改 –> 把修订版4 恢复(撤销)更改。
等价revert change from this version,
第二个:
Switch to reversion 4 ——》
切换到版本4
Revert to this reversion。回退到版本4.
SVN版本控制详解的更多相关文章
- SVN功能详解
SVN功能详解 TortoiseSVN是windows下其中一个非常优秀的SVN客户端工具.通过使用它,我们可以可视化的管理我们的版本库.不过由于它只是一个客户端,所以它不能对版本库进行权限管理. ...
- 【山外笔记-SVN命令】svn命令详解
本文打印版文件下载地址 [山外笔记-SVN命令]svn命令详解-打印版.pdf 一.命令简介 svn命令用于Subversion命令行客户端,执行svn相关的操作. 二.命令语法 1.svn语法: ( ...
- svn merge详解
svn merge详解 [OK] http://blog.163.com/lgh_2002/blog/static/4401752620106202710487/ Subversion的分支通常用于在 ...
- Linux SVN 命令详解
1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain ...
- Linux SVN 命令详解(zz)
Linux下常用SVN命令 2012-04-02 11:46:00 标签:服务器 目录 Linux checkout linux系统 1.将文件checkout到本地目录 svn checkout p ...
- Linux下svn命令详解
本文主要是说明linux下svn命令的使用方法,同时记录自己在使用中遇到的一些疑惑. 1.Linux命令行下将文件checkout到本地目录 svn checkout url(url是服务器上的目录) ...
- SVN命令详解
在开发中,除了在本机文件夹上进行svn更新外,在命令行中进行svn操作也非常关键,下面列举下网站摘抄的一些文档:1.将文件checkout到本地目录 svn checkout path(path是服务 ...
- svn status详解
svn 是在提交前查看本地文本和版本库里面的文件的区别.返回值有许多种具体含义如下: [url=] L abc.c # svn已经在.svn目录锁定了abc.c M ...
- Linux SVN 操作详解(转)
1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain ...
随机推荐
- EventListener中的handleEvent
在研究代码时发现类似这样一段代码: function TEST() {} TEST.prototype = { init:function() { window.addEventListener('m ...
- u-boot 学习系列 1 - SPL
u-boot这个东西从自我N年前使用到现在,变化好多,今天开始重新研究下,本系列的研究都是基于BeagleBoneBlack(bbb)开发板和 u-boot v201801版本的. SPL介绍 在源代 ...
- 献给写作者的 Markdown 新手指南及语法
烈推荐所有写作者学习和掌握该语言.为什么?可以参考: 『为什么作家应该用 Markdown 保存自己的文稿』. 『Markdown写作浅谈』 让你专注于文字而不是排版. 标题 只需要在文本前面加上 # ...
- Android之——卸载应用程序
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47357729 不多说,不废话,直接上代码,大家都懂得 //卸载应用程序 //參数为 ...
- 错误Log日志的收集
1.在Application里面初始化 AppCrashHandler.getInstance(this); 2.创建一个类 package com.lvshandian.partylive.util ...
- RTSP转RTMP-HLS网页无插件视频直播-EasyNVR功能介绍-音频开启
EasyNVR简介 EasyNVR能够通过简单的摄像机通道配置.存储配置.云平台对接配置.CDN配置等,将统监控行业里面的高清网络摄像机IP Camera.NVR.移动拍摄设备接入到EasyNVR,E ...
- Node.js面试题
Node.js面试题列表 什么是错误优先的回调函数? 如何避免回调地狱? 如何用Node来监听80端口? 什么是事件循环? 哪些工具可以用来保证一致的编程风格? 什么是测试金字塔?对于HTTP API ...
- python cookbook第三版学习笔记十三:类和对象(四)描述器
__get__以及__set__:假设T是一个类,t是他的实例,d是它的一个描述器属性.读取属性的时候T.d返回的是d.__get__(None,T),t.d返回的是d.__get__(t,T).说法 ...
- Table control 相关
转:晚上回去有时间看看 http://help.sap.com/saphelp_nw04/helpdata/en/9f/dbac1d35c111d1829f0000e829fbfe/frameset. ...
- 【linux】新添加一块硬盘制作LVM卷并进行分区挂载
linux服务器新添加一块硬盘,可以直接将盘格式化挂载就能用,比如挂载在/usr/local目录,但是这样有一个弊端,就是如果这一块磁盘满了,后续想要扩容的话,不能继续挂载这个/usr/local挂载 ...