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

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

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

继续点击下一步。

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


点击Next,进入下一步。

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

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

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

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

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

为你的新仓库命名。

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

点击“Create”创建。

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

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

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

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

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

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

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

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

点击确定保存设置。
客户端我们使用俗称“小乌龟”的TortoiseSVN,下载后进行安装。

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

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

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

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

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

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

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

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

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

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

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

蓝色加号:表示这是一个新添加的文件,已计划加入版本控制。
检出 (SVN Checkout):在文件夹空白处右键选择“SVN Checkout”。

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

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

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

改名 (Rename):对文件或文件夹重命名,也应通过右键菜单的“Rename”进行,然后提交。
还原 (Revert) 与版本回溯:如果想撤销本地修改,可使用“Revert”。如果想将文件回退到某个历史版本,可以右键选择“Update to revision”,在弹窗中填入指定的版本号。

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

更新 (SVN Update):从服务器获取最新版本,与本地代码同步。
当多个开发者同时修改了同一个文件的同一部分时,后提交的人就会遇到“冲突”。这时,SVN会在你的目录下生成三个额外的文件来帮助你解决冲突。

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

这三个文件分别是:.mine(冲突前你自己的文件)、.rA(冲突前本地的基础版本)、.rB(别人提交的新版本)。冲突的 মূল文件中会用特殊标记(<<<<<<< .mine ... ======= ... >>>>>>>)标出你和别人的代码差异。解决方案有两种:
方案一:Revert (回滚)。此操作会放弃你自己的修改,直接使用服务器上的最新版本。你需要右键冲突文件,选择“Revert”。


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

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

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

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

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

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

URL地址从服务器端复制。


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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

选择第一项并点击Next。

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

继续执行向导。

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

以上就是SVN版本控制系统入门指南的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
 
                 
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                            Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号