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---