一、 版本控制和 SVN 入门
1. 什么是版本控制
a) 只要进行团队软件开发,就会涉及源代码的合并共享以及带来的相关问题
- 代码如何合并(手工合并几乎不可能)
- 历史版本的保存(各个版本间有大量重复,多大变化算一个版本)
- 跟踪哪些代码是谁修改(每个代码都写上注释说明作者?故意写成别人呢)
- 以上问题不解决,就会影响团队开发效率
b) 如何有效解决以上问题呢?这就需要版本控制
c) 目前计算机开发领域流行的是采用专门的版本管理软件来进行管理,大大提高了效率
2. 常用版本管理软件
a) VSS:Microsoft 提供,Window 平台,小型开发团队所适合的工具。
b) CVS:开源工具,跨平台。绝大多数 CVS 服务已改用 SVN。CVS 已停止维护
c) SVN(Subversion):开源,跨平台,在 CVS 的基础上开发。使用企业众多,稳定安全,操作简单。集中式版本控制系统。
d) GIT:开源的分布式版本控制系统,用以有效高速的处理从很小到非常大的项目版本管理。(GITHUB 是一个用 GIT 做版本控制的项目托管平台,B/S 架构。放到 GITHUB 上的代码需要开源,并且是互联网开发)
![05e561bba1287d954d919bf191b3953c.png](https://i-blog.csdnimg.cn/blog_migrate/cc16e44a82693cd85ab2c67b279419fc.png)
![78fe1348824729dfb277a9bd049b6e29.png](https://i-blog.csdnimg.cn/blog_migrate/56c8f4ad407e9097aaa8a96592068ede.png)
3. SVN
a) 传统的 SVN 是通过Dos命令进行操作的,现在一般通过 GUI 图形界面形式使用 SVN
b) 服务器端 Visual SVN(GUI)
c) 客户端:TortoiseSVN 第三方客户端(GUI)
d) 客户端:subclipse Eclipse 的插件 第三方客户端(GUI)
e) TortoiseSVN 功能更强、使用范围更广,但是 eclipse 下使用 subclipse 更方便
二、 服务器端 Visual SVN
1. 安装软件
a) 指定软件安装位置和版本库位置
b) 默认端口 443
c) 使用 SVN authentication
![88b12abf3ed2e84b14397a9b849675f4.png](https://i-blog.csdnimg.cn/blog_migrate/8eb114324bcf1fec48b250a1279855e1.png)
![fedd73ff9250c82669486cf2f262e75c.png](https://i-blog.csdnimg.cn/blog_migrate/2e8cec06d7442682786e31b2a3e13ce9.png)
2. 创建版本库
a) 创建默认结构 use default struction
b) 默认结构的含义
- trunk:主干 开发时代码存储的位置,永远是最新的代码
- brank:分支 在不影响 Trunk 其它用户情况下进行一些关于新功能的探索性或实验性的开发,待新功能完善后它也可以合并到 Trunk 中
- tags:标签 历史版本 阶段性里程碑版本 比如 1.0 2.0 3.0
![7f71ca8fba89ce7d6545ac05d5e30935.png](https://i-blog.csdnimg.cn/blog_migrate/a4a05fd73d03c2d6fc6798c2722c4f03.png)
![c80440d430bd84a3c596c72518c84c8b.png](https://i-blog.csdnimg.cn/blog_migrate/911b331edd5abfd9e9359c7e9be64a53.png)
![0b97bc6938561c158077a49cc67a258e.png](https://i-blog.csdnimg.cn/blog_migrate/e8d5f7cb1c0cbad3d2d0893ca866e7e5.png)
![66ab2c4040c95f9f7d3f91a49265a7be.png](https://i-blog.csdnimg.cn/blog_migrate/2178f09973ab89ba92c4586501ddbb5f.png)
3. 创建用户
![14717b4df29fe9027bef62f4c04998d4.png](https://i-blog.csdnimg.cn/blog_migrate/9ad00846b132203fc73e71ac81f86604.png)
![d6c28038c2b5a74def0bdbfcf7916692.png](https://i-blog.csdnimg.cn/blog_migrate/669b4159399d952c7ef402a9026e9313.png)
4. 创建组和为组指定用户
![e53dd28aa428560472ebaacc57063009.png](https://i-blog.csdnimg.cn/blog_migrate/3a59ee5da3e23370a75cdde1034d2d91.png)
![29d230041868e558d8f9a00d38c96659.png](https://i-blog.csdnimg.cn/blog_migrate/8a8b99610ba7dce16823250075a07e9a.png)
按Ctrl或Shift然后配合鼠标就可以实现添加多个用户。
5. 为组指定对版本库的操作权限
a) 默认 everyone 具有 read/write 权限,无法删除,要修改为 No Access
![762dbfeceea42d3e18fb63e15187717b.png](https://i-blog.csdnimg.cn/blog_migrate/ef78fe1734c7b5d8cb573216dc0eaddc.png)
![dbaeaba88e3664c7e76e1643d3e68403.png](https://i-blog.csdnimg.cn/blog_migrate/91d5bdd906fb4bd8b2bfdaa5821c4b32.png)
![45c79f5e6106f3ff3665447234b4f86f.png](https://i-blog.csdnimg.cn/blog_migrate/5d59623840ac5a288ac83cf50b39b152.png)
![51770d4e67aa59a7aabc8f82ce4f1f59.png](https://i-blog.csdnimg.cn/blog_migrate/546b4c064bfa93664de80b9f70cca9f2.png)
![2a5cddcff026c6a82f83052952b6cdc6.png](https://i-blog.csdnimg.cn/blog_migrate/3a1cb13e05b34cc9ad5058d43b7decf6.png)
6. 通过浏览器访问服务器端
![6e7494f0cbc83bcb81d04bf6b42cadb5.png](https://i-blog.csdnimg.cn/blog_migrate/5ae6db9f0af3996efc18eae87cedd12f.jpeg)
![8469997966a9e4cd113b7256eea461d1.png](https://i-blog.csdnimg.cn/blog_migrate/58f90ee05fa1df56a3ed8bc0ac1bd830.png)
![5b2099cb0729e1a3438f1acaec8558ba.png](https://i-blog.csdnimg.cn/blog_migrate/eef8303f2c694b1db49685cdf64bc45e.png)
注意:因为浏览器有缓存功能,所以要想用其他用户名登录,需要清除浏览器的缓存。
例如点开火狐浏览器的设置—>我的足迹—>历史—>清除最近的历史记录。
![6c5bed84aaf7cd2e5b3ec6e9ade9f950.png](https://i-blog.csdnimg.cn/blog_migrate/127560ce1b99e68d2dbd86266bf9b243.png)