SVN
svn客户端和服务器的安装
- svn服务端和客户端的安装几乎都是傻瓜式操作,不在赘述,客户端和服务端软件现在地址:链接: https://pan.baidu.com/s/1nxqsqqH 密码: gpjw
仓库的创建(Windows服务器)
- 打开客户端界面,单击
Repositories
右键Create New Repositories
输入仓库名称。
- 点击下一步,一般默认选择第一个“空仓库”,第二个涉及到Svn的标准目录结构,下面会有解释。
- 点击下一步 选择用户权限,点击
Custom
按钮选择开发人员并赋予他们相应的读写权限。
- 点击
Finish
完成仓库创建。
svn客户端和服务器建立关联
- 获取刚才创建仓库的公网地址、相应开发人员的用户名和密码。
- 点击鼠标右键,点击
Svn Checkout
。 - 输入刚才的svn地址相应的用户名和密码。
- 关联完成后文件夹会出现一个绿色对勾并且文件夹中会有一个隐藏文件夹
.svn
,如果未出现绿色对勾请重启电脑或资源管理器。
svn常见的图标
- 绿色对勾 代表和服务已经建立关联、提交成功、更新成功等
- 蓝色? 代表服务器不知道有这个文件
- 蓝色+ 代表计划加入到版本控制库中
- 黄色感叹号 代表遇到了冲突
- 红色感叹号 代表修改了这个文件 需要提交到版本控制库中
- 灰色对勾 代表文件只读
- 锁 注意锁在开发中慎用
svn中的代码版本备份
- 选中要查看版本的文件 右键操作如下图。
- 点击
Show log
会出现这个文件的各个版本。
- 选择某一版本,点击相应的文件,就可以查看文件的具体内容。
- 选择某一版本下的文件可以对其进去保存备份,如下。
svn中的冲突控制
- 当某个用户提交代码前为更新时,容易出现冲突。
- 当出现冲突后会提示你先进行更新,按提示操作更新后会出现如下文件。
- 进行一下操作解决冲突
- 点击之后会出现如下界面,黑色框的两行问号表示svn不知道选择那个人提交的所以会出现冲突。
- 选择问号行要使用的内容进行替换。之后点击
Mark as resolved
。
- 解决之后如图,多出的文件消失
- 重新提交,冲突解决。
SVN中的删除与忽略
- 当我们想删除svn中的某个文件时可以进行如下操作。
删除完成后进行提交。
当我们想忽略某个文件时可以进行如下操作
- 忽略之后进行提交。
文件的只读设置与获得锁(不建议使用)
- 当某个svn文件我们不想让其他人修改的时候可以设置只读属性
- 这个这个文件就被设置成了只读,如果修改后再进行提交时不能够被允许的,只有获得锁的情况下,才能进行修改提交。
- 修改提交后锁自动释放。
svn服务器端仓库的备份
- 安装svn服务器的时候默认把仓库的位置放在了C盘的Repositories文件夹下
- 选择此文件夹下需要备份的项目仓库文件,复制一份到其他地方(云盘等)保存即可。
svn服务器端仓库的还原
- 单击
Repositories
右键所有任务
选择Import Existing Repository..
。 - 浏览备份的文件进行还原。
svn代码提交的原则
- 先更新在提交
- 多提交
- 不要提交不能通过编译的代码
- 每次提交必须书写明晰的标注
- 提交时注意不要提交本地自动生成的文件
- 不要提交自己不明白的代码
- 慎用锁定功能
svn的标准目录结构
- 当我们创建仓库选择的不是空仓库而是标准的目录结构的话,创建完成后会出现三个子文件夹。
- Trunk:这是SVN目录的主分支,表示日常开发中的项目,任何时候Trunk里包含的都是最新的开发代码。 这里的代码将会工作到你的下一个主要发布版本。Trunk应该只被用来开发将会成为你的下一个重要版本的代码。
- Branches:
- Experimental branches有时你想将某个新技术引进项目。这很好, 但是你当然不想赌上你的整个项目。
- Bug fix branches分支也可以用于处理trunk或release branches 里发现的严重的Bug。
Tags:一般情况下,tag,是用来做一个milestone的,不管是release,都是一个可用的版本。Tags,一般是只读的。
例如我们在svn服务器上新建一个标准目录结构的
momo
项目。- 我们先和momo项目下的Trunk建立关联。
- 假设momo的1.0版本后取得了很大的成功,是一个里程碑,我们要对它进行备份,操作如下。
- 手动修改为tags文件夹并对备份文件命名为1.0
- 假设随后momo1.3版本也发布了,同样很成功,我们也如上对他进行了备份。
- 假设用户发现了版本1.0中存在巨大的bug需要进行修复,那么我们修改版本1.0的bug时就需要先关联tags目录下的1.0版本然后把1.0版本复制到Branches分支下,然后svn客户端和Branches分支下的1.0版本进行关联并对bug进行修复。
- 修改1.0bug完成后需要和正在开发的1.4版本进行合并,选中正在开发的1.4版本,操作如下。
- 合并完成。