0

0

SVN版本控制系统入门指南

P粉602998670

P粉602998670

发布时间:2025-09-04 16:53:28

|

848人浏览过

|

来源于php中文网

原创

在软件开发中,代码会经历无数次的修改,产生大量不同的版本。为了有效地管理这些版本,确保在需要时能够准确、迅速地回溯或提取特定版本,版本控制系统(version control system)应运而生。subversion(简称svn)就是其中一款优秀的开源版本控制系统,它通过一个中央版本库来存储所有文件,并记录每一次的修改历史,支持多人通过网络协同工作。

一、SVN服务器搭建和使用 (VisualSVN Server)

1. 安装VisualSVN Server

我们推荐使用 VisualSVN Server 作为服务端,并搭配 TortoiseSVN 作为客户端。首先,需要下载VisualSVN Server进行安装。

SVN版本控制系统入门指南 - php中文网

下载完成后,双击安装包开始安装。

SVN版本控制系统入门指南 - php中文网

勾选同意许可协议后,点击下一步。

SVN版本控制系统入门指南 - php中文网

继续点击下一步。

SVN版本控制系统入门指南 - php中文网

在这一步,需要配置几个关键选项:一是指定VisualSVN Server的安装目录(Location);二是设定代码仓库(Repositories)的存储位置;三是分配一个未被占用的服务器端口(Server Port),并可选择是否启用HTTPS安全连接。

SVN版本控制系统入门指南 - php中文网

SVN版本控制系统入门指南 - php中文网


点击Next,进入下一步。

SVN版本控制系统入门指南 - php中文网

点击“Install”开始安装进程。

SVN版本控制系统入门指南 - php中文网

安装完成后,点击“Next”。

SVN版本控制系统入门指南 - php中文网

点击“Finish”完成安装。安装后,启动VisualSVN Server Manager管理工具

SVN版本控制系统入门指南 - php中文网

2. 创建代码仓库 (Repository)

在管理界面的右侧可以看到版本库的状态、日志等信息。要创建新的代码仓库,需在左侧的“Repositories”上右键单击。

SVN版本控制系统入门指南 - php中文网

在菜单中选择“Create New Repository”,进入创建向导。

SVN版本控制系统入门指南 - php中文网

为你的新仓库命名。

SVN版本控制系统入门指南 - php中文网

接下来,可以选择创建一个标准的(包含trunk, branches, tags三个文件夹)或空的项目结构。

SVN版本控制系统入门指南 - php中文网

点击“Create”创建。

SVN版本控制系统入门指南 - php中文网

点击“Finish”即可完成仓库的基本创建。

3. 配置用户与权限

为了保证代码安全,需要为仓库配置访问用户和权限。首先创建用户,在管理工具左侧的“Users”上右键,选择“Create User”。

SVN版本控制系统入门指南 - php中文网

在弹出的窗口中填写用户名和密码。

SVN版本控制系统入门指南 - php中文网

点击OK后,用户便创建成功。

SVN版本控制系统入门指南 - php中文网

您可以按照此方法添加多个用户。

SVN版本控制系统入门指南 - php中文网

接下来创建用户组。在“Groups”上右键,选择“Create Group”。

SVN版本控制系统入门指南 - php中文网

在弹出的窗口中为用户组命名,并点击“Add”按钮将已创建的用户添加至该组。

SVN版本控制系统入门指南 - php中文网

最后,为用户组分配仓库权限。在你创建的代码仓库上右键,选择“Properties”。

SVN版本控制系统入门指南 - php中文网

在弹出的对话框中,切换到“Security”选项卡,点击“Add”按钮,将刚才创建的用户或用户组添加进来,并为其分配“Read/Write”(读写)等权限。

SVN版本控制系统入门指南 - php中文网

点击确定保存设置。

二、客户端TortoiseSVN的安装与使用

1. 安装客户端

客户端我们使用俗称“小乌龟”的TortoiseSVN,下载后进行安装。

SVN版本控制系统入门指南 - php中文网

安装完成后,其功能会集成到Windows的右键菜单中。在任意文件夹右键,如果能看到SVN相关的选项,则说明安装成功。

SVN版本控制系统入门指南 - php中文网

2. 检出 (Checkout) 项目文件

要从服务器获取项目,首先在本地创建一个空文件夹,在该文件夹内右键,选择“SVN Checkout”。

SVN版本控制系统入门指南 - php中文网

弹出的窗口中需要填写版本库的URL地址,这个地址可以从服务器端获取。例如在VisualSVN Server中找到你想检出的仓库或目录。

SVN版本控制系统入门指南 - php中文网

右键选择“Copy URL to Clipboard”来复制地址。

SVN版本控制系统入门指南 - php中文网

将复制的URL粘贴到检出窗口的对应位置。

SVN版本控制系统入门指南 - php中文网

点击“OK”按钮,输入用户名和密码后,服务器上的代码就会开始下载到你的本地文件夹中。

SVN版本控制系统入门指南 - php中文网

检出完成后,文件夹上会出现一个绿色的对勾图标。

SVN版本控制系统入门指南 - php中文网

注意:工作副本中会有一个名为“.svn”的隐藏目录,它记录着文件的基准版本和时间戳等关键信息,切勿手动修改或删除它,否则会破坏本地工作副本。

3. 理解文件状态图标

TortoiseSVN会通过不同的图标来标识文件状态:

SVN版本控制系统入门指南 - php中文网

绿色对勾:表示文件为最新版本,与服务器一致,状态正常。

SVN版本控制系统入门指南 - php中文网

红色感叹号:表示文件已被本地修改,但尚未提交到服务器。

SVN版本控制系统入门指南 - php中文网

黄色感叹号:表示文件存在冲突,需要手动解决。

SVN版本控制系统入门指南 - php中文网

蓝色加号:表示这是一个新添加的文件,已计划加入版本控制。

4. 客户端基础操作

检出 (SVN Checkout):在文件夹空白处右键选择“SVN Checkout”。

SVN版本控制系统入门指南 - php中文网

在弹窗中填入URL并点击确定。

SVN版本控制系统入门指南 - php中文网

在弹出的认证窗口中输入用户名和密码即可。

医院网站系统
医院网站系统

HTML医院网站系统基于PHP+MYSQL开发,在文章内容网站的基础上,预设了医院概况、新闻动态、环境设备、名医荟萃、专科介绍、就医指南、专家门诊值班表、网上挂号、医疗保健知识、在线咨询等医院网站常用的栏目和测试数据,采用适合医院网站的专用模版,增强了系统的针对性和易用性。系统具有文章、图文、下载、社区、表单、用户等基本系统模块和一系列网站辅助功能,用户也可根据自身特点任意创建和修改栏目,适合创建

下载

SVN版本控制系统入门指南 - php中文网

添加 (Add) 与删除 (Delete):对于新创建的文件,需要右键选择“Add”将其纳入版本控制。对于已在版本库中的文件,删除时也应使用右键菜单的“Delete”,这样操作才会被记录。完成这些操作后,都需要通过“SVN Commit”提交到服务器才能生效。

SVN版本控制系统入门指南 - php中文网

改名 (Rename):对文件或文件夹重命名,也应通过右键菜单的“Rename”进行,然后提交。

还原 (Revert) 与版本回溯:如果想撤销本地修改,可使用“Revert”。如果想将文件回退到某个历史版本,可以右键选择“Update to revision”,在弹窗中填入指定的版本号。

SVN版本控制系统入门指南 - php中文网

检查更新 (Check for modifications):此功能可以清晰地显示你本地的所有修改(增、删、改),以及与服务器版本的差异。

SVN版本控制系统入门指南 - php中文网

更新 (SVN Update):从服务器获取最新版本,与本地代码同步。

5. 如何解决冲突

当多个开发者同时修改了同一个文件的同一部分时,后提交的人就会遇到“冲突”。这时,SVN会在你的目录下生成三个额外的文件来帮助你解决冲突。

SVN版本控制系统入门指南 - php中文网

产生冲突后,你将无法直接提交。

SVN版本控制系统入门指南 - php中文网

这三个文件分别是:.mine(冲突前你自己的文件)、.rA(冲突前本地的基础版本)、.rB(别人提交的新版本)。冲突的 মূল文件中会用特殊标记(>>>>>>)标出你和别人的代码差异。解决方案有两种:

方案一:Revert (回滚)。此操作会放弃你自己的修改,直接使用服务器上的最新版本。你需要右键冲突文件,选择“Revert”。

SVN版本控制系统入门指南 - php中文网

SVN版本控制系统入门指南 - php中文网


方案二:手动解决 (Edit conflicts)这是推荐的做法。右键冲突文件,选择“Edit conflicts”,会打开一个可视化工具。工具会清晰地展示你的代码、服务器上的代码以及合并后的结果,你可以选择保留哪部分代码,或者手动编辑以整合双方的修改。

SVN版本控制系统入门指南 - php中文网

提交 (SVN Commit):将本地的修改(包括新增、删除、修改文件)上传到服务器。

SVN版本控制系统入门指南 - php中文网

显示日志 (Show log):通过此功能可以查看文件的所有提交历史记录。

SVN版本控制系统入门指南 - php中文网

版本库浏览 (Repo-browser):此功能可以让你不检出整个项目,就能直接浏览服务器上的文件和目录结构。

SVN版本控制系统入门指南 - php中文网

三、分支与合并操作

在项目中,为了开发新功能或修复Bug而不影响主线(trunk)的稳定性,通常会创建分支(branch)。在分支上开发测试完成后,再将其合并回主干。

SVN版本控制系统入门指南 - php中文网

1. 检出主干代码并创建分支

首先,将服务器上的主干(trunk)代码检出到本地文件夹。

SVN版本控制系统入门指南 - php中文网

URL地址从服务器端复制。

SVN版本控制系统入门指南 - php中文网

SVN版本控制系统入门指南 - php中文网


检出完成后,本地就有了主干的代码副本。

SVN版本控制系统入门指南 - php中文网

要创建分支,在你的主干工作副本文件夹上右键,选择“TortoiseSVN” -> “Branch/Tag”。

SVN版本控制系统入门指南 - php中文网

在弹出的窗口中,指定新分支在服务器上的存放路径(例如,在branches目录下新建一个文件夹),点击确定即可。

SVN版本控制系统入门指南 - php中文网

此时,分支已在服务器上创建成功。

SVN版本控制系统入门指南 - php中文网

接着,在本地新建一个用于存放分支代码的文件夹,并检出刚刚创建的分支。

SVN版本控制系统入门指南 - php中文网

SVN版本控制系统入门指南 - php中文网


检出完成后,本地就有了分支的代码副本。

SVN版本控制系统入门指南 - php中文网

之后,对分支的任何修改,都可以通过“Update”来同步。

SVN版本控制系统入门指南 - php中文网

2. 合并分支到主干

当分支上的功能开发完毕后(例如在分支上新增了文件),需要将其合并回主干。

SVN版本控制系统入门指南 - php中文网

首先,确保你的主干工作副本是最新版本。然后,在主干文件夹上右键,选择“Merge”。

SVN版本控制系统入门指南 - php中文网

在合并向导中,选择默认的“Merge a range of revisions”并点击Next。

SVN版本控制系统入门指南 - php中文网

在“URL to merge from”中填入你要合并的分支的URL地址,然后点击Next。

SVN版本控制系统入门指南 - php中文网

继续点击Next或Merge,向导会自动帮你完成合并。

SVN版本控制系统入门指南 - php中文网

合并完成后,你会看到分支上的修改已经应用到了主干上。最后,将合并后的主干代码提交即可。

SVN版本控制系统入门指南 - php中文网

3. 合并主干到分支

反向操作也是完全可行的。当主干上有重要更新(如公共库升级)时,可以将其合并到分支,以保持分支代码的同步。例如,在主干上新建了一个文件。

SVN版本控制系统入门指南 - php中文网

而此时的分支还没有这个文件。

SVN版本控制系统入门指南 - php中文网

操作步骤与之前类似:在分支文件夹上右键,选择“Merge”。

SVN版本控制系统入门指南 - php中文网

选择第一项并点击Next。

SVN版本控制系统入门指南 - php中文网

这次,“URL to merge from”应该填写主干的URL。

SVN版本控制系统入门指南 - php中文网

继续执行向导。

SVN版本控制系统入门指南 - php中文网

合并完成后,主干上的新文件就同步到了分支上。同样,记得提交这次合并操作。

SVN版本控制系统入门指南 - php中文网

相关专题

更多
数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

269

2023.11.13

drop和delete的区别
drop和delete的区别

drop和delete的区别:1、功能与用途;2、操作对象;3、可逆性;4、空间释放;5、执行速度与效率;6、与其他命令的交互;7、影响的持久性;8、语法和执行;9、触发器与约束;10、事务处理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

209

2023.12.29

location.assign
location.assign

在前端开发中,我们经常需要使用JavaScript来控制页面的跳转和数据的传递。location.assign就是JavaScript中常用的一个跳转方法。通过location.assign,我们可以在当前窗口或者iframe中加载一个新的URL地址,并且可以保存旧页面的历史记录。php中文网为大家带来了location.assign的相关知识、以及相关文章等内容,供大家免费下载使用。

224

2023.06.27

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

576

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1100

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

790

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

452

2023.08.02

windows无法访问共享电脑
windows无法访问共享电脑

在现代社会中,共享电脑是办公室和家庭的重要组成部分。然而,有时我们可能会遇到Windows无法访问共享电脑的问题。这个问题可能会导致数据无法共享,影响工作和生活的正常进行。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2347

2023.08.08

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

8

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.2万人学习

Excel 教程
Excel 教程

共162课时 | 12万人学习

PHP基础入门课程
PHP基础入门课程

共33课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号