都已经用了,为什么还要介绍呢?为了让aicoder.com的学员能够掌握多种的源代码管理工具的使用方法,更快的融入到项目开发中,特整理此文档。
通常软件开发由多人协作开发,如果对代码文件、配置文件、文档等没有进行版本控制,将会出现很多问题:
- 备份多个版本,占用磁盘空间大
- 解决代码冲突困难
- 容易引发BUG
- 难于追溯问题代码的修改人和修改时间
- 难于恢复至以前正确版本
- 无法进行权限控制
- 项目版本发布困难
版本控制(Revision control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。
SVN(Subversion)是一个开源的版本管理工具。
在这种模型里,每一个客户读取项目配置库建立一个私有工作副本——版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。
锁定-修改-解锁方案:
在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。 此模式不适合软件开发这种工作。
- 从普通用户模式进入管理员模式
- 安装svn
检验是否安装上了
- 创建仓库所在文件夹
在该文件夹下创建版本库
- 配置SVN
找到SVN配置文件夹
成功进入后,输入命令 ls 可以看到该目录下的文件:authz passwd svnserve.conf
- 配置svnserve.conf
进入文件后 按i进行编辑,将下列代码前的#和空格删去,直至顶格
编辑结束后 按esc退出修改模式 后再输入:wq,即保存退出
- 配置passwd
密码文件内容如下:
格式:用户名=密码
修改后同上保存退出
- 配置authz
权限有三种:rw(读写)r(只读)w(只能写)
- 关闭防火墙
关闭开机启动
查看防火墙状态
出现not running就表示关闭成功了
- 启动SVN
例如:
svn客户端需要通过网络访问svn服务端提交文件、查询文件等,可通过以下客户端类型访问svn服务端:
1、使用Subversion提供的客户端命令
使用方式:在命令行下输入命令操作。
2、使用Torotise图形化界面操作(推荐)
3、使用开发工具插件操作(推荐)
TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,不需要为使用它而付费。
可以找老大要一下仓库的地址,并让代码管理员帮忙创建仓库的账号和密码。
当检出目录或子目录中内容有修改,目录图标变为:
提交Commit 提交本地修改至svn服务器:
所谓的 Tag 或是 Release 就是一个特别的版本,因为这个版本可能有特别的意义。例如:这个版本是特别的 Milestone 或是 release 给客户的版本。其实,Tag 与 Release 的作法与 Branch 完全相同。只是 Branch 可能会需要 merge 回原来的 trunk 中,而 tag 及 release 大部分都不需要 merge 回 trunk 中。