Windows搭建Svn服务器

1、svn概述

1.1、svn简介

SVN(Subversion)是一个开源的版本控制系统,用于管理代码的版本控制和协作开发。它提供了一系列的命令行工具,以及一套客户端和服务器架构,用于管理代码的版本控制和协作。

在Windows系统,主要有TortoiseSVN和VisualSVN两种客户端GUI集成管理工具。

  • TortoiseSVN,也就是我们常说的"小乌龟"。可以帮助团队成员协同工作,跟踪代码的变化,解决冲突,并保留历史记录。它提供了一套图形化的界面,使用户可以直观地进行版本控制操作,如添加、提交、更新、回滚等。它还提供了一些高级功能,如分支、合并、标签等,以支持更复杂的开发流程。
  • VisualSVN是一个商业的SVN集成工具,专为Microsoft Visual Studio开发环境设计。它提供了与TortoiseSVN类似的功能,但更加紧密地集成到Visual Studio中,使开发人员可以在IDE中直接进行SVN操作。

总的来说,TortoiseSVN和VisualSVN都是用于管理代码的版本控制工具,它们提供了类似的功能,但在集成程度和适用环境上略有不同。TortoiseSVN适用于Windows操作系统,可以与任何开发环境集成;而VisualSVN专为Visual Studio开发环境设计,更紧密地集成到IDE中,提供了更高效的开发体验。

1.2、svn与git的主要差异

SVN和Git都是版本控制工具,但是它们有一些主要的差异。

  1. 分布式 vs 集中式:Git是分布式版本控制系统,每个开发者都有一个完整的代码仓库副本,并且可以在本地进行版本控制。而SVN是集中式版本控制系统,所有代码都托管在中央服务器上,每个开发者只能通过网络访问中央服务器来进行版本控制。

  2. 分支管理:Git在分支管理上比SVN更加灵活。Git的分支是轻量级的,创建和切换分支非常快速。而SVN的分支需要在服务器端创建,切换分支时需要从服务器端进行操作。

  3. 修改历史:Git记录文件的修改历史是基于内容的,每次提交都会生成一个新的快照。SVN记录的是文件的差异,每次提交只会记录文件的增删改动。

  4. 提交操作:Git的提交是本地操作,可以多次提交后再一次推送到远程仓库。SVN的提交是直接同步到中央服务器上。

  5. 分布式开发与协作:由于Git是分布式的,每个开发者都可以在本地进行版本控制和开发,而不会对其他人产生影响。SVN需要通过网络访问中央服务器,开发者需要提交代码到中央服务器上。

总的来说,Git更加适合分布式开发和协作,具有更强大的分支管理功能和快速的提交操作。SVN适合集中式的版本控制和较简单的项目。对于开发来说,Git和Svn使用通常没什么难度,而对于非开发人员(例如策划测试等),git绝对是个噩梦,svn才是正确的选择。

2、TortoiseSVN安装与使用

2.1、TortoiseSVN安装

本文主要使用TortoiseSVN进行演示。

官网下载--》 svn官网下载

网络问题,可能下载不了,换个地址,从svn中文网下载--> svn中文网下载

软件安装:

安装过程比较简单,但有两点需要注意:

1.安装路径最好不要带有空格,如常见的"E:\Program Files",不然注册windows服务比较麻烦。

2.安装过程记得把命令行工具栏勾选上,才可以使用命令行的方式操作,如下所示

安装重启之后,鼠标右键可以出现以下界面:

2.2、TortoiseSVN使用

选择一个文件目录作为代码远程仓库,然后右键

TortoiseSVN->Create repository here,创建一个仓库。然后选择"Create folder structure",创建svn默认的目录结果,包括trunk(主干),branches(分支),tags(标签)

用户/权限配置

编辑conf/svnserve.conf文件,下面的配置项目取消注释

编辑conf/passwd文件, 增加几个测试账号

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
admin = admin
Lily = harryssecret
Lucy = sallyssecret
Tom = sallyssecret

编辑conf/authz文件,进行权限控制。

该配置表明:

只有管理员(admin)对根目录拥有全部权限

开发人员(dev组)对根目录只有只读权限

用户Tom对trunk子目录拥有读写权限,其他用户只有只读权限

组成员前面加个符合"@",非组成员没有符合

[groups]
admin=admin
dev=Lily,Lucy

[/]
@admin = rw
@dev = r
* =

[/trunk]
Tom = rw
# * = r

启动svn服务器

svnserve -d -r E:\svnrepo

注意:该命令执行完毕之后,在控制台是没有任何反应的,但执行已经成功了,不要关闭窗口。

每次手动启动比较麻烦,可以通过以下命令注册成windows服务。

sc create svnserve binpath= "E:\TortoiseSVN\bin\svnserve.exe --service -r E:\svnrepo" displayname= "svnservice" depend= Tcpip start= auto  

使用账户Lily切出trunk目录,执行成功

PS E:\web2> svn co svn://192.168.0.105/trunk  --username Lily
A    trunk\svn.ico
Checked out revision 2.

然而提交新文件的时候,执行成功(没有写入权限)

PS E:\web2\trunk> svn add .\readme.txt
A         readme.txt
PS E:\web2\trunk> svn commit -m 'test'
svn: E170001: Commit failed (details follow):
svn: E170001: Authorization failed

3、svn客户端简单操作

3.1、下载本地代码

刚进企业,部门主管会帮你开通svn账号,并给你一个地址。我们先把代码下载到本地。

新建一个本地目录,右键"SVN Checkout",输入地址即可。(第一次登录需要输入账号密码,后续自动保存到本地)

3.2、更新代码

项目是整个团队在工作,时时刻刻都可能有别的成员提交代码,比如说同事提交了一个接口,说你使用某个功能直接调用一下他的接口就好了。所以,我们需要更新本地代码,与远程保持一致。

操作也很简单,直接在工作目录,空白地方,右键"SVN Update"即可。

3.3、提交代码

当你小心翼翼写了几行代码,终于到了提交代码的时候了,第一次提交的时候难免诚惶诚恐。

提交代码的时候,有几点注意事项:

  • 提交之前务必先更新代码,检查是否有冲突(团队成员刚好跟你修改了同一个文件)。
  • 提交务必添加注释(例如功能开发或者bug修复),便于团队检阅(包括后期的自己)。

直接在工作目录,空白地方,右键"SVN Commit",确认没有冲突,添加注释日志,点击OK即可。

如果是自己新增加的文件,还需要执行"Add"操作,先添加文件,再提交。

相关推荐
扣得君1 小时前
C++20 Coroutine Echo Server
运维·服务器·c++20
keep__go1 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell
矛取矛求1 小时前
Linux中给普通账户一次性提权
linux·运维·服务器
jieshenai2 小时前
使用VSCode远程连接服务器并解决Neo4j无法登陆问题
服务器·vscode·neo4j
渗透测试老鸟-九青2 小时前
通过投毒Bingbot索引挖掘必应中的存储型XSS
服务器·前端·javascript·安全·web安全·缓存·xss
Gentle5862 小时前
labview连接sql server数据库
服务器·数据库·labview
co0t2 小时前
计算机网络(11)和流量控制补充
服务器·网络·计算机网络
ʚɞ4963 小时前
应用程序部署(IIS的相关使用,sql server的相关使用)
运维·服务器
少陽君3 小时前
服务器显卡和桌面pc显卡有什么不同
运维·服务器
daizikui3 小时前
Linux文件目录命令
linux·运维·服务器