一、SVN和GIT
SVN: 集中式版本控制系统
集中式是版本库是集中到服务器的,即是必须依赖于服务器,必须联网才能工作;GIT: 分布式版本控制系统
分布式是每个人的电脑都是一个完整的版本库,服务器只是充当于数据交换的;
二、SVN搭建
SubVersion: 实现服务系统的软件,即是SVN服务端程序;
SubVersion还需要配合Apache服务器使用,为了简单操作直接使用VisualSVN(集成了SubVersion和Apache);TortoiseSVN: 是SVN客户端程序,为windows外壳程序集成到windows资源管理器和文件管理系统的Subversion客户端;
下载地址: 360软件管理(TortoiseSVN和TortoiseSVN中文语言包)
(右键菜单没有显示SVN相关内容: 开始菜单中的搜索 —> regedit —> HKEY_CLASSES_ROOT/*…/TortoiseSVN —> 右键TortoiseSVN —> 权限 —> 高级 —> 所有者 —> 将所有者改为administrator —> 应用 —> 确定 —> 确定 —> 重启电脑)
三、SVN服务器端
- 创建SVN仓库(打开VisualSVN Server Manager)
- db目录就是所有版本控制的数据存放文件;
- hooks目录放置hook脚本文件;
- locks目录放置Subversion文件库说动数据的目录,用来追踪存取文件库的客户端;
- format文件是文本文件,里面只放一个整数,表示当前文件库配置的版本号;
- conf目录是这个仓库的配置文件(仓库的用户访问账号、权限)
创建用户(添加组)
SVN仓库添加对应用户的权限
四、客户端操作
- SVN操作:
- checkout 将服务器上最新的代码仓库下载本地"只需要做一次"
- update 从服务器上将其他人所做的修改下载到本地"每天上班必须要做的事情"
- commit 将工作提交到服务器(提交之前最好是先操作update)"每天下班之前至少做一次"
版本控制器最常见的两个错误:
1、超时
SVN原则: 先更新再提交;只有本地版本号大于等于服务器版本号时,才能提交,否则会报错out data;
2、冲突
仅仅在两个人同时修改同一行代码时,才会出现冲突,但更多最好不要多人同时修改同一个文件;
(双击错误信息,版本对比)
main.html.mine(冲突版本:自己的)
main.html.r9(数字小的,是未冲突版本)
main.html.r10(数字大的,是冲突版本:对方的,即服务器的)
而在main.html中也会出现自己代码以及对方代码,即标识出哪现冲突【 <<< 存放的是自己修改的代码 ==== 存放的是服务器最新的代码 >>>> 】