SVN版本控制系统入门指南

P粉602998670
发布: 2025-09-04 16:53:28
原创
687人浏览过

在软件开发中,代码会经历无数次的修改,产生大量不同的版本。为了有效地管理这些版本,确保在需要时能够准确、迅速地回溯或提取特定版本,版本控制系统(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中文网

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

小门道AI
小门道AI

小门道AI是一个提供AI服务的网站

小门道AI117
查看详情 小门道AI

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(别人提交的新版本)。冲突的 মূল文件中会用特殊标记(<<<<<<< .mine ... ======= ... >>>>>>>)标出你和别人的代码差异。解决方案有两种:

方案一: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中文网

以上就是SVN版本控制系统入门指南的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

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