手把手教你在Windows下搭建SVN服务

  • 此教程用于在windows下搭建SVN服务器
  • 目前搭建的SVN服务器仅可用于内网版本(可配置内网穿透用外网访问)
  • 客户端工具TortoiseSVN的安装和使用
  • 推荐一个项目使用一个仓库

SVN软件下载与安装

1、软件下载

使用SVN作为代码管理工具共需要安装两种软件,一种是SVN服务器,本例中使用VisualSVN,一种是SVN客户端,本例中使用TortoiseSVN

如图为SVN服务器下载位置

在这里插入图片描述

如图为TortoiseSVN下载位置

在这里插入图片描述

如图为SVN客户端中文包下载位置

在这里插入图片描述

本教程需要下载的三个安装包
在这里插入图片描述

2、软件安装

1.VisualSVN服务器安装

SVN作为一个代码管理工具,最好将它安装在一个公共的地方以供其他人可以方便的访问。

作为演示,在H盘根目录下temp文件夹中建了一个SVN文件夹用来放置SVN服务器相关的文件。

第一步:创建存放SVN服务软件和仓库的文件夹

新建一个SVN文件夹

在这里插入图片描述

在SVN文件夹下新建BACKUP、REPOSITORIES、SERVER三个文件夹

在这里插入图片描述

第二步:运行VisualSVN安装程序

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

选择标准版本即可

在这里插入图片描述

注意这里将路径改为之前创建的三个文件夹

在这里插入图片描述

安装运行成功

在这里插入图片描述

2.TortoiseSVN客户端与中文包安装

第一步:运行TortoiseSVN安装程序

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注意:如果要使用PhpStorm等IDE进行开发并且要用使用到SVN的,请选择安装command line clinet tools,否则将不能使用PhpStorm等内置的svn管理工具。

在这里插入图片描述

一路next即可,如需调整软件安装目录,请自行调整,推荐默认路径。

第二步:运行TortoiseSVN中文包安装程序

在这里插入图片描述

在这里插入图片描述

重要:注意勾选此处的Configure ToroiseSVN to use the language。这样就不用安装完再去设置ToroiseSVN的语言项了。
在这里插入图片描述

安装完毕之后右键可以文件夹空白处可以看到ToroiseSVN的工具条都已经变成中文。

在这里插入图片描述

3、服务配置

默认安装的SVN服务器新建仓库时使用的URL地址将会是与本机计算机名相关的一个地址,将其修改为内网IP地址能够方便我们使用。

1.修改服务IP地址

在VisualSVN Server(Local)上右击,选择properties

在这里插入图片描述

选择Network选项卡,修改Server name Server port两项
在这里插入图片描述

SVN仓库建立与用户分配

1、新建一个SVN仓库

打开VisualSVN软件并在Repositories上右击Create New Repositories

在这里插入图片描述

选择第一个选项

在这里插入图片描述

输入仓库名

在这里插入图片描述

选择空仓库

在这里插入图片描述

选择所有用户具备读写访问权限

在这里插入图片描述

注意:复制或记住这个路径,客户端检出就是使用的该路径,由于当前还未配置仓库的用户等,目前还无法使用该仓库

在这里插入图片描述

如果未能在新建仓库时复制,也可以在此处复制(右击仓库名)

在这里插入图片描述

此时,一个SVN仓库已经新建完成,但是现在由于没有给这个仓库添加用户,所以还不能够对这个仓库进行操作,我们需要新建用户、用户组来给这个仓库添加用户。

2、新建用户组与用户

1.添加用户组

在Groups选项上右击新建Group

在这里插入图片描述

输入rxkj点击确定

在这里插入图片描述

在这里插入图片描述

2.添加用户

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
重要:将新添加的用户添加到用户组,这样给仓库添加用户时就无需每次勾选用户,只需要选择用户组即可

在这里插入图片描述

在这里插入图片描述

3、给仓库分配用户

右击之前新建好的仓库,选择properties

在这里插入图片描述

点击Add

在这里插入图片描述

选择groups

在这里插入图片描述

在这里插入图片描述

此时,就可以使用该用户组下的用户去操作该仓库了。

TortoiseSVN使用

在SVN服务器中建立好仓库与用户,并为仓库分配好用户之后,我们就能使用TortoiseSVN去检出使用这个仓库了。

1、代码检出

复制之前建立的仓库地址

在这里插入图片描述

在你本地文件夹中右击,选择SVN检出

在这里插入图片描述

此处的DESKTOP-BIUS538,请注意需要替换为安装SVN服务器的IP地址,并要把服务器上的防火墙关闭,或者开放SVN端口
在这里插入图片描述
注意下面的检出至目录,存放到你要放置项目的文件夹中,项目文件夹的名字与仓库名字相同
在这里插入图片描述

输入之前分配给该仓库的用户的用户名和密码

在这里插入图片描述
出现项目的文件夹和检出完成对话框,即代表检出已经成功,如果没有出现文件夹上的绿勾,请重启电脑。绿勾代表项目中修改的文件都已签入到服务器
在这里插入图片描述

1.1、代码检出高级功能

svn仓库的代码检出并不一定是要在仓库的根目录检出代码。由于项目中可能存在文档的其他资源,所以仓库的根目录并不一定是项目的根目录。此时,如果使用phpstorm的工具进行开发时,会遇到如果项目代码不是svn的根目录,项目代码无法在工具中提交的问题。

解决方案

现在本地新建项目文件夹,然后分别建立代码根目录和文档根目录等其他目录。然后将代码的目录和其他目录分别导出,这样就可以在IDE中使用版本控制工具进行代码的管理了。这样做的好处是,如果一个仓库中既有前端项目,又有后端项目,那么他们可以分开导出而不受对方的影响。麻烦的地方在于,一个仓库里的东西需要分开检出。分开检出的项目又需要单独上传。

2、提交修改

在项目中新增一个readme.txt文件,并保存。.svn隐藏文件夹表示这是一个svn项目的意思,不要去动这个文件夹。

在这里插入图片描述

回到项目所在的目录中,右击项目文件夹,选择svn提交。

在这里插入图片描述
勾选新添加的文件,点击确定。
在这里插入图片描述

出现提交完成对话框即代表提交已完成。

在这里插入图片描述

可以看到新添加的文件以及加入到svn版本控制中。
在这里插入图片描述

3、版本更新

在项目的文件夹上右击,选择SVN更新

在这里插入图片描述
即可看到其他用户对项目中文件的添加,和文件的修改。
在这里插入图片描述

在这里插入图片描述

4、冲突解决

假设用户A修改了readme.txt文件,并将其提交到了服务器仓库中。

在这里插入图片描述

在这里插入图片描述

用户B在没有获取到用户A最新修改的提交的readme文件前也修改了readme.txt文件

在这里插入图片描述

在用户B提交时,会显示提交失败

在这里插入图片描述

确定后选择更新

在这里插入图片描述
readme文件出现冲突
在这里插入图片描述

右击出现冲突的文件,选择编辑冲突

在这里插入图片描述
此处标红为出现冲突的行
在这里插入图片描述

在出现有冲突的行上右击,选择使用他们的行,或者使用我的行解决冲突

在这里插入图片描述

在所有冲突行都解决后,标记已解决并保存

在这里插入图片描述

此时文件的冲突标记已不在,显示为已修改的标记。

在这里插入图片描述

再次查看该文件,可以看到其中有些为用户A的修改,有些为用户B的修改。

在这里插入图片描述

提交更新。

在这里插入图片描述

此时用户A获取更新,得到的就是用户B解决了与用户A冲突后的文件。

在这里插入图片描述

在这里插入图片描述

至此,冲突解决完毕。

5、重新定位

如果VisualSVN一开始配置的是默认端口(443),并且客户端已经从这个端口上检出了代码。而后又因为其他原因修改了VisualSVN的端口,或者路径,需要让客户端重新定位。

在项目上右击,选择重新定位,输入新的地址

在这里插入图片描述

在这里插入图片描述

至此,SVN客户端又能够重新从新的VisualSVN地址检出代码。

6、文件忽略

在使用svn版本管理项目时,有的时候不用把项目中的所有文件添加到项目中,而每次都手动的去忽略文件会很麻烦,svn在项目的属性配置中有一个ignore属性可以配置全局忽略。

在项目上右击,找到属性

在这里插入图片描述

点击新建,其他

在这里插入图片描述
找到ignore项
在这里插入图片描述

添加完成后点击确定

在这里插入图片描述

此后,再使用SVN提交时就不会出现被忽略的目录了

在这里插入图片描述

至此,文件忽略说明完毕。

高级功能

1、branch与tag

分支与标记功能,其中tag代表项目的某个里程碑副本,比如1.0版本发布。而branch表示用于增加新的功能而不影响主分支。这两个东西,本质上其实就是一份当前项目的拷贝,当拷贝出去之后,分支或者标记上的项目就与主分支上的独立了。但也不是完全独立,在服务器上分支会保存主分支文件的引用。

注意事项:

要想使用分支与标记,最好在项目仓库建立之初就选择建立那些用于分支与标记的文件夹。否则后期再建,会有问题。
在这里插入图片描述

1.新建分支

在你要建立拷贝的文件夹上右击,选择分支/标记

在这里插入图片描述

在至路径中找到branches文件夹,并确定。

在这里插入图片描述

增加branches后面的路径名字

在这里插入图片描述

注意不要切换工作副本到新分支,确定即可。

选中branches文件夹,选择svn更新。

在这里插入图片描述

可以看到新分支中的项目文件已经出现。
在这里插入图片描述

2.合并分支到主分支

新建一个1.txt文件并提交到分支上。

在这里插入图片描述

在主分支上单击合并,选择合并一个版本范围

在这里插入图片描述

选择要合并的分支

在这里插入图片描述

下一步并确定合并。

在这里插入图片描述

**可以看到1.txt已经被添加进来,提交更改即可。**至此,合并分支完毕。

注意,tag其实也是分支的一种,只不过我们习惯把tag当做某个里程碑版本的分支,这样的分支一般只是用来记录某些版本发布的时刻,某些版本的备份。不能将其当做分支使用。

svn中的branch与tag非常灵活,这里只是简单说明,具体的使用请查找相关资料。

发布了11 篇原创文章 · 获赞 1 · 访问量 187

猜你喜欢

转载自blog.csdn.net/xuancuocui1413/article/details/103343411