2. SVN-集中式版本控制系统.
SVN-集中式版本控制系统
SVN 官网:https://subversion.apache.org/ Github SVN 源码:https://github.com/apache/subversion
SVN是什么
SVN的全程是subversion,SVN版本控制软件可以解决协助开发、远程开发和版本回退三个问题。
特点:操作简单、入门简单、跨平台操作 。
SVN是输入C/S服务类软件,有客户端和服务端。
SVN的服务端
- Repository(源代码库):源代码统一存放的地方;
- Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份;
- Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更。Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。
- Commit(提交):当你已经修改了代码,你就需要Commit到repository;
SVN服务端
1 服务端安装:https://sourceforge.net/projects/win32svn/
2 配置工作:
- 先在svn目录下建立一个WebApp文件夹
- 在WebApp文件下建立Shop。目前还只是文件夹,还需要和svn产生联系
- (切换到Shop目录下)在DOS命令行下输入 svnadmin create Shop ,如果配置成功,那么shop应该多了6个文件(创建版本仓库)
3 服务器监管:
-
Apache— http://localhost:8080 访问htdocs目录
-
SVN— svn://localhost: 访问相关的数据仓库(如shop)
基本语法:
svnserve -d(后台运行) -r(监管目录) 版本仓库路径
示例:通过以上指令,我们的svn://localhost 或ip地址就可以直接指向Shop版本仓库。
4 SVN的权限的配置文件都在conf中
- 打开svnserver.conf ,找到 #anon-access = read (19行)anon-access = write
SVN客户端(TortoiseSVN)
1 安装 :下载地址:https://tortoisesvn.net/downloads.html, 页面里有语言包补丁的下载链接。
2 安装汉化包 (安装完成后,在桌面空白地方右键:TortoiseSVN -- Settings -语言)
3 配置完之后第一次牵手:checkout(检出)
1.首先随便建个文件夹,取名jingli;
2.在你的项目目录右键—>TortoiseSVN—>版本库浏览器—>输入SVN服务器地址;
打开隐藏功能如果能看到.svn这个文件夹就说明客户端和服务端连接起来了,检出成功;
SVN 使用的详解
-
三大指令
-
checkout 检出操作: 1.连接到服务器 2.第一次链接的时候更新数据到本地,后面使用update(更新指令)
-
commit 提交代码:
-
-update 更新操作
右键更新操作即可自动更新最新的版本到本地。
图标集的含义
图标集的一些含义
- 常规就是服务器和客户端数据一致;
- 无版本控制,编写好的文件没有上传队列;
- 锁定图标,服务器端已锁定。
忽略功能
忽略功能就是自己不想分享到服务器,仅仅是给自己看的内容:
1 忽略某个文件夹
2 忽略某个类型的文件
版本回退
- 每次修改的时候之后,提交的时候需要写好备注:
- 但是我又想恢复到某个版本:
可以根据日志的信息选择要回退的状态
//再也不担心错误删除了吧,前提是需要commit你的代码
版本冲突
1 当两个人同时修改一份文档的时候就可能发生冲突
避免版本冲突:
-
错开开发时间
-
错开开发模块
-
通过svn解决版本冲突问题:
一、更新服务器数据到本地
二、删除三个带问好的文件
三、修改index.php冲突的文件
四、重新提交
配置多仓库与权限
监管总目录
权限限制
authz:授权文件,告诉用户有哪些权限
passwd:认证文件,表示用户名和密码
默认情况、两个文件都是禁用的,必须要开启上面两个文件,具体步骤如下:
1 注释匿名用户可读写的权限:
2 开启认证和授权文件
3 编写认证文件,定义用户和密码:打开passwd
4 编写授权文件:
分组+授权
5 测试是否成功
配置服务器的自启动服务
sc create SVNService binpath = “D:\subversion\bin\svnserve.exe – service - D:/svnroot” start = auto
在cmd中输入相关命令: sc create 服务名称 binpath=空格"svnserve.exe --service"
在控制面板-管理工具-服务找到SVNserver
运行成功,svn监管服务开发成功
使用批处理文件来停止和开启管理器
启动服务 net start 服务名称
停止服务 net stop 服务名称
删除服务 sc delete 服务名称
封装成为.bat封装就可以减少很多工作量
模拟真实场景(重难点)
1、 使用钩子程序对项目进行更新
post-commit.tmpl: 事物完成之后触发的钩子程序
默认情况用批处理或者Shell指令完成
SVN扩展程序
1、BAE云引擎
百度应用引擎(BAE),网络应用开发平台。