SVN_01_02启动服务器、命令行客户端的使用(待完善)

系列文章目录

前言

在这里插入图片描述
现在这两个都有了,现在就能用了吗,更准确的说是,现在我们能访问了吗?

一、启动svn服务器

启动SVN服务器有两种方法,一个是命令行方式,一个是注册Windows服务

方式一:一命令行方式

[1]命令格式,例如
svnserve -d -r D:\DevRepository\Subversion
注意,目录是我们自己自定义的目录是可以改的,如
svnserve -d -r D:\2_SvnRepertory\BOS
在这里插入图片描述

在这里插入图片描述
[2]验证服务是否启动
SVN服务监听3690端口,打开一个新的cmd窗口,使用netstat -an 命令查看3690端口是否被监听
在这里插入图片描述

在这里插入图片描述
[3]命令行方式的缺陷是:只要运行服务器端程序的命令行窗口一关闭,服务就停止了,很不方便,而且每次开机都需要手动启动

在实际项目开发当中我们一般svn服务器是部署在 linux,,我们暂时不管它
但是我们自己的项目,在开发当中经常需要自己部署一下svn服务器,这个时候就一般是windows系统了
这时候就遇到一个问题
难道我们要一直开着这个命令行吗?

方式二:注册Windows服务

就像mysql有mysql的服务,SqlServer有SqlServer的服务那样,我们也可以为svn创建一个服务,这样一开机它就启动了
[1]将SVN服务端程序注册为Windows服务,就可以让SVN服务随系统一起启动,克服了命令行方式的不足。
[2]注册Windows服务需要利用XP、2000以上系统自带工具Service Control,执行文件是sc.exe,注意这个命令不是SVN的命令。
[3]命令格式
在这里插入图片描述
在这里插入图片描述

最终命令行举例

sc create MySVNService binpath= “D:\DevInstall\Subversion\bin\svnserve.exe --service -r D:\DevRepository\Subversion” start= auto depend= Tcpip

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

此时查看当前系统中的服务,可以看到我们刚刚创建的服务,但此时它还没有启动,如果创建失败,需检查sc命令是否正确
在这里插入图片描述
此时查看当前系统中的服务,可以看到我们刚刚创建的服务,但此时它还没有启动,如果创建失败,需检查sc命令是否正确
输入命令行:sc start MySVNService
如果没有启动则会启动
在这里插入图片描述
如果已经启动
在这里插入图片描述
打开命令行窗口运行netstat –an查看3690端口是否被监听
●如果启动失败,那很有可能是binpath中的内容有错误,此时只能将已经创建的服务删除,重新创建。
●删除服务之前,最好先停止服务。停止服务的命令格式如下:
sc stop MySVNService
删除服务的命令格式如下:
sc delete 服务名
sc delete MySVNService

注意1:删除、启动、停止服务同样需要管理员权限
注意2:创建服务的过程中,360可能会提示,注意点击 允许操作
注意3:服务能起来才算这一步完全成功
在这里插入图片描述

二、使用命令行模式访问SVN服务器——命令行客户端的使用

现在仓库也有了
服务也启动起来了
下面就是对这个仓库的访问这块了即客户端这块的事情(服务端前面以及说完了)
怎么访问,访问对的方式有很多种
有很多种客户端,包括最新的独立的客户端——TortoiseSVN
我们从最原始,最原理的客户端开始
那就是命令行客户端

检出

①首先进入自己的工作目录,例如:D:\DevWorkSpace\SVNSpace
②运行svn checkout命令,命令格式如下
例如:svn checkout svn://localhost/ERP MyERP
在这里插入图片描述

③工作副本
运行checkout命令后进入MyERP目录,看到里面什么都没有。真的什么都没有吗?不是的。检出命令会在这一目录下创建一个隐藏目录.svn,用来保存与服务器交互的重要信息,其中包括从服务器端取回的最新版本信息、文件状态、更新时间等。SVN正是以此为依据判断当前目录中文件的状态。所以这个隐藏目录千万不要删除或修改其中的内容——完全无视它的存在吧。如果服务器端保存的文件可以视为一个“正本”,那么每个开发人员检出到本地目录的文件可以视为“副本”,通常称为工作副本。
在这里插入图片描述

提交

①进入D:\DevWorkSpace\SVNSpace\MyERP目录
②创建一个文件test.txt
③执行svn commit命令,运行结果是
在这里插入图片描述
D:\DevWorkSpace\SVNSpace\MyERP>svn commit test.txt
svn: E200009: 提交失败(细节如下):
svn: E200009: “D:\DevWorkSpace\SVNSpace\MyERP\test.txt” 尚未纳入版本控制
说明一个文件必须纳入版本控制才可以提交到服务器端。

④执行svn add命令,将test.txt纳入版本控制
在这里插入图片描述
D:\DevWorkSpace\SVNSpace\MyERP>svn add test.txt
A test.txt
⑤再次执行svn commit命令
在这里插入图片描述
D:\DevWorkSpace\SVNSpace\MyERP>svn commit test.txt
svn: E205007: 提交失败(细节如下):
svn: E205007: 无法使用外部编辑器获得日志信息;考虑设置环境变量 $SVN_EDITOR,或者使用 --message (-m) 或 --file (-F) 选项
svn: E205007: 没有设置 SVN_EDITOR,VISUAL 或 EDITOR 环境变量,运行时的配置参数中也没有 “editor-cmd” 选项
此时要求附加日志信息
⑥使用-m参数附加日志信息
在这里插入图片描述

D:\DevWorkSpace\SVNSpace\MyERP>svn commit -m “My first commit” test.txt
svn: E170001: 提交失败(细节如下):
svn: E170001: 认证失败
原因是没有权限
⑦暂时先开启匿名访问权限
[1]进入对应的版本库目录下的conf目录:D:\DevRepository\Subversion\ERP\conf
[2]打开svnserve.conf
[3]将第19行的# anon-access = read改为anon-access = write,也就是去掉“# ”,将read改为write。注意前面不要留空格,一定要顶格写。
[4]不需要重启SVN服务,甚至命令行窗口都不需要重新打开。
⑧重新执行提交命令
在这里插入图片描述

D:\DevWorkSpace\SVNSpace\MyERP>svn commit -m “My first commit” test.txt
正在增加 test.txt
传输文件数据.
提交后的版本为 1。
说明提交成功了。
⑨其实svn commit命令最后可以不指定具体文件,此时表示提交当前工作副本中的所有修改。

更新

命令行太复杂了,不易于操作,
这里后面再完善,命令行把我自己搞晕了,实际工作中也基本上不会用,暂时跳过去
直接看下篇,直接用工具
实际开发当中我们也是用工具较多

总结

SVN是什么
集中式版本控制工具
对应就会有分布式版本控制工具(后面会讲解)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值