SVN服务器

下载VisualSVN Server,无须自己配置Subversion,常用的SVN服务端部署软件。

Download | VisualSVN Server

下载完之后安装,这里我们也是把它安装在储存盘中

Location: E:\Program Files\VisualSVN Server\

Repositories:E:\SVNServer\Repositories\

Backups:E:\Program Files\VisualSVN Server\Backup\

像Jenkins一样,VisualSVN Server也是将SVN注册进Windows系统服务中,我们打开Windows任务管理器,选择——“任务”,就能看到VisualSVN Server服务

创建Repositories

在打开的VisualSVN Server窗口中,在左侧选中Repositories,右键——Create New Repository。

在弹出的窗口中直接点击Next,并输入Repository名字:ResLoadPrgJenkins,然后再一路Next,在最后弹出的窗口中,关闭“Allow Search Indexing”,点击Create

这时SVN就会显示此Respository的URLhttps://ATAO/svn/ResLoadPrgJenkins,点击Finish

在局域网中,这里的ATAO要换成在局域网中固定的IP地址

然后在左侧选择ResLoadPrgJenkins,右键——“Copy URL To Clipboard”,此时会弹出一个窗口要我们创建用户,我们选择“Create User”

User name: ATAO

Password: Unfbc8951,

Confirm password: Unfbc8951,(新版对于密码有复杂度要求)

点击左侧的User栏,可以新建User。

如果想要修改User的读写权限,可以在左侧选中ResLoadPrgJenkins,右键——点击Properties,可以取消Everyone,点击Add单独配置用户的读写权限。

如果想要给用户分组,可以在左侧选中Groups创建分组。

修改IP地址

在打开的VisualSVN Server窗口中,在左侧选中VisualSVN Server(Local),右键——Properties。

在弹出的窗口中选择Network,修改Server name到固定好的IP地址。

进入VisualSVN Server的安装目录,找到conf——httpd.conf并打开它

找到servername属性,修改为固定好的IP地址

TortoiseSVN

搭建好了SVN服务器后,使用TortoiseSVN来做客户端。

注意TortoiseSVN的版本要和SVN服务器的Subversion版本匹配,比如说我们刚才安装的VisualSVN Server是最新版,对应的Apache Subversion 1.14.2,那么TortoiseSVN也应该下载支持Subversion 1.14.2的版本

下载 · TortoiseSVN

像SVN服务器一样,我们将软件下载在储存盘(TortoiseSVN在安装时可能取消了command line client tool的安装,在这里先打开),注意TortoiseSVN需要重启才能完成安装。

拉取SVN服务器

我们在E盘新建文件夹SvnTest——Project1

我们打开VisualSVN Server Manager,在左侧点击“ResLoadPrgJenkins”——点击“Copy URL To Clipboard”

进入Project1文件夹,右键——TortoiseSVN——Checkout——点击OK

输入自己对应的账户名和密码,就能成功拉取服务器的文件了。

Commit至服务器

在Commit至服务器之前,一定要先执行Update

在Project1文件夹中随便新建一个文本文件TestSVN.txt

如果我们选中TestSVN.txt——右键——TortoiseSVN——会出现一个Add选项,这个选项表示将此文件的改动添加到Commit列表中。

如果我们什么都不选,直接在Project1文件夹中——右键——TortoiseSVN——Commit,此时会弹出一个窗口,我们需要选择哪些文件需要Commit到SVN服务器中。

我们再新建TestAA.txt,将两个文本文件都上传到SVN服务器里

Commit到服务器

上传后,我们打开VisualSVN Server Manager,会发现本次上传结果已经显示在列表里了。

Update

如果其他人员的修改上传到了SVN服务器,我们需要更新

在Project1文件夹内点击空白处——右键——TortoiseSVN——Update

Revert

修改Project1内的文件后,只要我们没有Commit,就可以Revert回之前的版本。像前面一样,可以选中单独的文件Revert,也可以在文件夹空白处右键——Revert。

也可以选中已经修改的文件——右键——TortoiseSVN——Diff,使用Tortoise Merge工具来查看文件中已经修改的项。

还原回指定的版本

如果想要返回指定的版本,我们在文件夹空白处右键——TortoiseSVN——Update To revision,在弹出的窗口中点击“Show log”,勾选想要返回的版本,点击OK——再次点击OK。

也可以在文件夹空白处右键——TortoiseSVN——Show log,然后选中想要的版本——右键——Revert to this revision

在不改变现在版本的情况下还原指定的版本

在文件夹空白处右键——TortoiseSVN——Show log,然后选中想要的版本——右键——Update item to revision

文件冲突

假如其他人修改了TestSVN.txt并Commit到了SVN服务器。

我们也修改了TestSVN.txt,我们想要Commit到服务器,上传之前先进行Update,这时就会弹窗显示TestSVN.txt文件内容发生冲突

发生冲突

上面是教程中的截图

Edit conflicts:手动修改冲突

Mark as resolved:自动Merge

Resolve conflict using ‘theirs’:使用他人版本

Resolve conflict using ‘mine’:使用自己的版本

如果自己编辑的文件和别人的发生了冲突,就需要解决冲突。

如果是非常简单的几行发生冲突,选择Resolve conflict using ‘theirs’,然后再将自己的代码重新补上。

如果是非常多的行数发生冲突,就需要手动修改冲突。

冲突解决后,再及时Commit到服务器上。

Clean up

当一次性Commit或者Update太多文件时,如果我们中途取消了,SVN可能会锁住本地工程,无法进行更新或提交,这时我们文件夹空白处右键——TortoiseSVN——Clean up,就能继续操作文件了。