配置管理工具---SVN 软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

这样就会出现种种代码管理混乱的问题,这些问题容易引发BUG,增加开发人员的工作量,增加软件开发与维护的成本。因此项目中会使用配置工具管理这些代码,解决上诉问题。

市面上常用的两种配置管理工具:SVN,GIT

这边文章要和大家介绍的就是SVN

什么是SVN呢,下图给出了SVN与开发们之间的关系

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

SVN的作用:

解决代码管理混乱问题
不用备份多个版本,占用磁盘空间大
解决代码冲突
不易引发bug
可以追溯问题代码的修改人和修改时间
容易恢复至以前正确版本
可以进行权限控制
降低项目版本发布难度

 

如何使用SVN呢?

一、环境配置

1. 安装SVN服务器

双击打开SVN服务器安装程序

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

点击“Next”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

 勾选“I accept the terms in the License Agreement”复选框,点击“Next”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

勾选“VisualSVN Server and Administration Tools”单选框并勾选“Add Subversion command-line tools…”复选框,并点击“Next”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

点击“Standard Edition”按钮,选择安装类型

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

选择好程序安装路径和后续项目的文档存放文件的位置和端口号后点击“Next”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

如下图显示443端口被占用,点击“OK”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

修改端口为8443,点击“Next”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

点击“Install”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

等待安装

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

安装完成,不选中复选框,点击“Finish”按钮

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

我们进入之前选择的程序安装路径下的bin目录看是否有svnadmin.exe和svnserve.exe两个文件

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

设置环境变量的目的就是使得程序安装路径 D:Program FilesVisualSVN Serverin 下的svnadmin.exe和svnserve.exe两个程序可以直接使用

 

 

2、安装SVN客户端

双击“TortoiseSVN”客户端安装程序

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

等待安装

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

点击“Next”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

点击“Next”按钮

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

选择客户端程序的安装路径(可以根据个人喜好选择,小编选择了D:Program FilesTortoiseSVN),再点击“OK”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

跳转到了之前的界面,可以看到路径已经更改成功了,点击“Next”按钮

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

点击“Install”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

等待安装

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

安装完成,点击“Finish”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

桌面右击,菜单栏里显示有“TortoiseSVN”,表示SVN客户端安装成功

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

二、SVN Manager工具在SVN服务器上创建用户、组、版本库并设置版本库的访问权限

服务器安装完成后,我们在服务器上创建用户、组、版本库并设置版本库的访问权限

1、打开SVN服务器管理程序

点击开始菜单---点击“所有程序”---点击“VisualSVN”---点击“VisualSVN Server Manager”启动SVN服务器管理程序

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

 

跳出SVN服务器管理界面

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

2、服务器中创建用户

右击左侧导航栏中的“Users”,点击"Create User…"创建新用户

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

跳出创建新用户窗口,输入即将创建的用户名,用户密码,并确认密码(通常用户名和密码都是参与项目的,并使用SVN这个工具的人员进行设置的)

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

小编随手创建的几个用户

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

创建好了之后就可以在SVN服务器管理界面的右侧内容窗口中看到设置好的用户,下面是小编创建的几个用户

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

3、服务器中创建项目组

用户创建好了之后就可以创建项目组了,右击导航栏中的“Groups”--点击“Creat Group”

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

输入组名,点击“Add”按钮选择需要添加到组里的用户,再点击“ok”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

4、创建版本库并设置版本库的访问权限

右击左侧导航栏中的“Repositories”,点击“Creat New Repository”创建版本库(方便用户登录SVN配置管理器在创建的版本库中存取数据)

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

跳出创建新仓库的界面,选择“Regular FSFS repository”(常规FSFS仓库),再点击“下一步”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

输出即将创建的仓库名称(写当前的项目名称,便于使用和管理),再点击“下一步”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

选择“Empty repository”(空仓库),再点击“下一步”按钮(实际公司项目选择下面一种带有目录的仓库比较多)

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

勾选“Customize permission”(自定义权限/允许),点击“Custom…”

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

设置权限的类型(1、没有使用权 2、只读 3、读写),点击“确定”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

点击“Add…”按钮,选择可以拥有权限的人(可以选择整个组,也可以选择特定的用户)

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

跳转界面,显示仓库中的组已经创建成功(可以看到仓库的类型:FSFS,)

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

浏览SVN服务器上的版本库的方式(两种)

方法一、SVN Manager工具中,选择库后点击browse(浏览)

在SVN Manager窗口左侧导航栏中找到想要浏览的库,右击--点击browse浏览

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

输入用户名,密码,点击“登录”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

成功访问

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

方法二、用SVN客户端登录浏览

右击桌面---点击“TortoiseSVN”----点击“Repo-browser”

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

输入要访问的版本库的URL地址,格式如下

https://IP:端口/svn/版本库名

http://主机名:端口/svn/版本库名

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

输入用户、密码,点击“OK”按钮

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

成功登录(这边小编的版本库还是空的!)

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

注意

我们使用SVN客户端访问服务器上的版本库时,必须保证服务器上的VisualSVN Server服务是开启的

我们可以打开服务窗口查看该服务是否开启,具体操作如下

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

 

版本库目录下的文件的作用

conf文件夹---配置文件(权限)

  authz=authorization  存放用户或组的权限(读、写)

  passwd=authorization 存放用户和密码

 svnserve.conf 存放SVN服务器的配置文件

  db----存放数据

 hooks---钩子脚本:自动触发部署

 locks---上锁

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

TortoiseSVN图标集

文件夹常规:表示本地文件夹与服务器上的文件相匹配

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

文件夹冲突:commit本地文件夹时显示与服务器上的文件冲突(通查出现在多人同时编写同一个文本的情况下)

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

文件夹已删除:服务器上已经没有这个文件夹了

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

文件夹无版本控制:新建文件夹还未添加到服务器上

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

添加文件夹:在本地新建文件夹虽然add,但还未commit到服务器上

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

文件夹被修改:文件夹被修改,还未commit到服务器上

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

文件夹只读:文件夹只允许用户阅读

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

锁定:文件夹被锁定,除了施加锁定的那个用户其他用户均无法修改服务器上的这个文件夹

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

文件被修改:文件修改过后,还未commit到服务器上

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

文件常规:文件夹与服务器上的文件一致

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

文件冲突:文件与服务器上的文件冲突

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

SVN客户端基本图形化操作

Check out (将服务器上的版本内容迁出到本地里)

图形界面创建的版本库的签出

方法一

在本地创建一个空的文件夹,进入文件夹后,右击空白处--点击“SVN Checkout”

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

输入需要签出版本库的URL地址(格式:https://IP:port/svn/版本库名称),点击“OK”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

输入有访问该版本库权限的用户即密码,点击“OK”按钮

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

点击“OK”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

 

方法二、使用客户端浏览服务器上的项目文件

桌面右击---点击“TortoiseSVN”--“Repo-browser”

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

 输入要访问版本库的URL地址

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

 

将SVN服务器上的版本库签到本地的条件及成功状态:

  1. 服务器上的VisualSVN Server是开启的
  2. 本地地址的文件夹是空文件夹
  3. 签出成后该文件夹会显示打勾的状态

 

Add 添加文件

在签出的文件夹里新建文件test1.txt

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

内容如下

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

右击需要添加到SVN服务器上的文件---点击“TortoiseSVN”---点击“Add”

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

点击“OK”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

点击“OK”按钮

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

添加完后的文件图标会从问号变为加号

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

Commit   提交(add、修改)

一种情况:add后commit

在我们的Checkout到本地的文件夹中新建一个test2.txt文件

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

右击test2.txt--add

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

文本图标就会显示+号

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

右击test2.txt---SVN Commit,提交到服务器上

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

第二种情况:我们修改完文件,要commit到服务器上

右击要提交的文件---点击“SVN Commit”

 

Update  更新

右击要更新的文件或文件夹---“SVN Update”

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

Delete  删除(删除之后要commit,才会生效)

右击要删除的文件或文件夹---“TortoiseSVN”---“Delete”

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

Rename  重命名(从命名后空白处右击commit)

改名后需要在空白处右击--点击“SVN Commit”或者进入上一层目录右击---点击“SVN Commit”

将文件名由“test2.txt”改为“test.txt”

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

空白处右击---点击“SVN Commit”或者进入上一层目录右击---点击“SVN Commit”

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

Revert  还原(恢复到文件修改之前的版本)

修改文件内容后,在未commit之前,我们可以右击文件---“TortoiseSVN”---“Revert”将文件还原到修改内容之前的文件版本

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

 

Show log  显示日志

 

export(导出,但不在版本库内,修改不影响版本库)

方法一、登录SVN客户端,右击要导出的文件所属的文件夹---点击“Export”---选择存放的本地路径

方法二、右击Checkout到本地的文件夹---点击“TortoiseSVN”---点击“Export”---选择存放的路径

 

Import  导入

右击要导入的文件所在文件夹,点击“TortoiseSVN”---“Import”

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

Get lock  锁定(锁定后的文本其他人编译后无法commit)

右击要锁定的文本---点击“TortoiseSVN”---点击“Get lock”

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

Release lock  解锁(锁定的人主动解锁后,其他人可以编译并commit)

右击锁定的文本或文件---点击“TortoiseSVN”---点击“Release lock”

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

 

Diff  差异比较

右击要进行差异比较的文件---点击“TortoiseSVN”---选择一种差异比较方式

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

 

Edit Conflict  处理冲突

1、两个开发编写同一个代码文件

2、第一个开发编写好代码后commit  提交到服务器上

3、第二个开发未先Update,也直接修改了文件,然后commit,提交到了服务器上

4、提示需要先Update,但选择Update后提示无法更新,有Conflict

5、这是第二个开发需要解决冲突,本地文件中会出现以下的几个文件

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

6、右击需要解决冲突的文件(有冲突的文件上会有黄色感叹号的标志)---点击“Edit conflict”

7、根据冲突内容人工判断解决,最后commit

 

Update to revision(更新版本到哪个版本)

右击需要更新版本的文件---点击“TortoiseSVN”---点击“Update to revision”

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

可以通过show log 查看文件的日志信息,便于回到哪个版本的文件

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

relocate(服务器IP地址变了,可以用来更新地址)

 

 

工作当中要养成习惯,工作之前先Update,再锁定

增、删、改都要commit

 

用命令行创建版本库

1、建立版本库

打开dos命令窗口,输入svnadmin create e:Repositories版本库名称

(Repositories指的是服务器安装时指定的版本库目录,这里输入的路径要和安装服务器时指定的路径一样)

2、配置e:Repositoriesconf文件夹下的三个文件

 Svnserve.conf:SVN服务器的配置文件,讲一下配置取消注释

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

passwd:存放用户和密码,如增加一下用户和密码

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

authz文件:存放用户或组的权限(读、写),配置如下

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

3、启动服务

输入svnserve -d -r e:Repositories

-d指服务作为一个独立的端口监控进程,--r即批定要暴露的仓库路径,如本机仓库路径为E:Repositories项目,那么客户端svn访问时只需采用如下地址即可访问:svn://ip/项目,E:Repositories 就不需要展示出来,客户端svn访问时只需采用如下地址即可访问:svn://ip。(注意,ip后面不要跟端口号)

 

如果输入svnserve -d -r e:Repositories版本库名称

配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。

 

Subversion的标准目录结构

Trunk-----主开发目录

Branches-----分支开发目录

Tags----tag存档目录,不允许修改

 配置管理工具---SVN
软件开发的过程是个复杂、耗时、耗力的过程。通常要有很多开发人员参与编写代码。