1.svn是什么?
Svn----subversion的缩写:版本控制系统(是一个自由、开源的版本控制系统,也就是说Subversion管理着随时间改变的数据)
Svn分两个部分:1、服务器端软件svn 2、客户端软件tortoisesvn
2.为什么会有SVN?
因为需要一个良好的系统来管理可能出现的混乱,版本控制是管理数据变更的一种技术,对程序员来说,它是不可缺少的工具,因为经常要修改代码,产生部分的变更,然后第二天再取消所有的变更。
1备份工作档案很重要,你永远不知道计算机上的硬盘何时会坏掉
2版本控管很重要,你永远无法保证最新版本是对的。
3团队之间的数据同步也很重要,除了个人外,还有其它的团队成员需要你的数据
总结:安全,效率高,资源共享
3.SVN的基本原理
在一台服务器上建立一个源代码库(仓库),库里可以存放许多不同项目的源程序(仓库)。由源代码库管理员统一管理这些源程序(仓库)。每个用户在使用源代码库之前,首先要把源代码库里的项目文件(仓库)下载(checkout)到本地,然后用户可以在本地任意修改,最后用svn命令进行提交(commit),由svn源代码库统一管理修改。这样,就好像只有一个人在修改文件一样,既避免了冲突,又可以做到跟踪文件变化等。
4.SVN软件安装注意事项
(1)安装软件----安装路径不要尽量不要有中文,不要有特殊字符,不要有空格
(2)安装svn服务器的时候,区分开仓库和服务器,单独创建一个server目录
5.SVN的基本使用
1,先去服务器端创建一个仓库(空目录)
2,初始化仓库:
(1)通过指令创建 svnadmin create 仓库路经
(2)可视化工具初始化
3,小白把仓库checkout下来
必须保证svn的仓库是启动(运行)状态
svnserve -d -r 仓库路径
进入项目名----右击鼠标----浏览仓库---右击---checkout
4,修改/创建文件后,提交到服务器端去
右击---add(svn客户端管理)---commit(提交到服务器端)
6. SVN的单仓库和多仓库
(1)什么是但仓库和多仓库
在svn服务器端,我们的项目目录(仓库),如果该服务器只有一个项目(仓库),称之为但仓库
如果该服务器有多个仓库,称之为单仓库
(2)单仓库和多仓库的区别
1、组织结果:单仓库---只有一个目录
多仓库---多个目录,服务器端有多个项目
2、开启仓库方式:单仓库---指定到具体的仓库
多仓库---指定到myrepository
7. svn解决冲突/合并
1,如何使用svn来解决,文件被多人修改后的合并(冲突问题)
2,先模拟冲突情景:
小白是项目经理,创建项目weibo的最初源代码,小黑修改文件后,出现冲突:
步骤:
(1)先在服务器创建仓库(sns),修改仓库的访问权限
(2)小白从服务器checkout一份sns项目,提交并修改文件
(3)小黑也checkout一份文件并修改
出现冲突怎么处理?
(1)程序员自己合并代码,先update一下,出现很多备份文件
这个时候小黑的还是原来的,需要更新一下
(2)谁合并的,能通过日志查看出来
(3)把多余的文件删除掉,再committ
(4)小黑想获得的话,也得update一下才能看到更新后的文件
8. svn常出现的符号:
(1)+ 号:该文件已经被SVN客户端管理,但是还没有提交到svn服务器去
(2)绿色的钩钩表示,文件已经成功提交到服务器端
(3)红色!号表示,本地有某个文件没有提交到服务器端(即没有完全同步)
(4)黄色感叹号,表示提交的过程中出现冲突
(5)红色表示此文件在本地修改过,还未提交到仓库
9. svn的使用细节:
(1)版本回溯 右击鼠标---update to reversion;
(2)日志记录,提交日志限定必填
右键---properties----new----logminisize
(3)误删除文件的恢复操作
update即可
(4)过滤某个或某些文件
addto ignore list remove
(5)导出项目
Export
10. SVN用户权限的配置管理
步骤:
1,先修改 svnserve.conf
anon-access = none; 表示匿名用户什么权限都没有
auth-access = write;表示授权用户最高权限是write
password-db = passwd 密码文件在passwd
2,修改passwd文件
配置3个用户的密码
3,用户组的配置
authz-db = authz
11. SVN开机自启动批处理文件
安装服务:svn-install.bat
@echo off
sc createMYSVN binPath= "E:/svnserver/server/bin/svnserve.exe -rE:/svnserver/myrepository --service" start= auto
net startMYSVN
@pause
卸载服务:svn-remove.bat
@echo off
net stopMYSVN
sc deleteMYSVN
@pause
12. SVN和zend studio的整合
从SVN导出数据到zend studio,zend studio作为客户端
右击---import---project from svn---下一步
(2)提交 项目到SVN:
右击---team---