您的位置:首页 > 移动开发 > Android开发

SVN服务端、客户端安装配置和填坑

2017-11-14 09:35 253 查看
一、svn服务端和客户端安装:

1、安装程序:

服务端程序:Setup-Subversion-1.8.17.msi

客户端程序:TortoiseSVN-1.9.7.27907-x64-svn-1.9.7.msi

注意,安装过程中,建议放在盘符根目录,即安装路径中不要有空格和中文。

以往做开发的经验得知,空格和中文会导致错误或bug出现。

如果环境变量路径是C:\Program Files (x86)\Subversion\bin; 建议修改。

不存在说服务端和客户端程序版本不一致等问题。

2、重启电脑!!!!!

3、安装后检查:

安装完成后,重启电脑。

重启电脑,

1)、cmd窗口中输入命令echo %path%,检查svn环境变量路径是否正确。

2)、服务端的是否在客户端前面(是否需要C:\TortoiseSVN\bin没测试)。

比喻:

C:\Subversion\bin;C:\TortoiseSVN\bin;

3)、在命令行输入svn --version,看能否正确得到提示;以及版本号是否是服务端程序的版本号[svn,版本 1.8.17 (r1770682)]。

如果你此时获取不到版本号信息,或获取到的版本号为 1.9.7 说明服务端环境变量路径错误或没配置。

4)、在随便位置点击鼠标右键,看看右键菜单上是否出现SVN Checkout和TortoiseSVN选项。

4、如果以上操作,cmd窗口打印的环境变量中,svn服务端和客户端路径正确,

Subversion在TortoiseSVN前面,任意位置的鼠标右键菜单中有相应的选项,

证明svn安装正确。

二、svn服务器端配置:

1、正确安装好svn后,需要创建服务器仓库:

X:\......>svnadmin create 仓库目录名

如:

K:\test>svnadmin create DKRepos

2、修改服务器访问权限:

打开仓库目录下的conf/svnserve.conf文件,去掉"# "开启相关权限,注意#和空格一起去掉。

关于匿名访问的权限,自行决定是否修改:(一般只允许只读或不让访问)

# anon-access = read

# auth-access = write

用户账号密码访问配置,改成需要账号密码验证:

# password-db = passwd

改成:

password-db = passwd

去掉上面代码行前的#和空格,否则连svn时会提示conf/svnserve.conf文件27行错误

开启了用户账号密码验证后,再打开仓库目录下的conf/passwd文件,在内容最后添加用户:

格式:

用户名=密码

如:

dk=954120245

3、cmd窗口启动svn服务器(启动后cmd窗口不要关闭,若关闭了则svn服务就停止了):

X:\......>svnserve -d -r 仓库路径\仓库名

如:

K:\test>svnserve -d -r DKRepos 或 C:\>svnserve -d -r K:\test\DKRepos

-d  :后台运行

-r  :以root的身份运行

如果觉得命令行启动服务麻烦,后面有创建系统服务的代码

4、验证svn服务器是否启动成功:

在任意位置鼠标右键,选择TortoiseSVN -> Repo-browser,

在出现的URL窗口中,输入

svn://localhost



svn://127.0.0.1



svn://当前电脑所在的局域网IP地址

然后确定,看是否能登录上,试试上传下载文件操作。

此时,你电脑有了svn中心服务器了,也有了链接服务器的乌龟壳客户端了。

如果想让别人连你的svn服务器怎么办?告诉别人你的IP地址就可以了,让他连你ip。

比喻:svn://当前电脑所在的局域网IP地址

三、svn系统服务创建:

语法:

sc create 服务的名称 binPath= "\"svn服务器端程序路径\" --service -r 服务器仓库路径" displayname= "显示的名称" depend= Tcpip start= auto

"服务的名称"是给电脑识别的,比喻你要用命令行启动、停止、删除或创建服务时用到的名字。

"显示的名称"是给人看的,比喻你打开系统服务窗口后寻找的名字。

你只需要修改svn服务器端程序路径、服务器仓库路径和显示的名称即可,其他的都别动。

正确方法1:

sc create svnservice binpath= "\"C:\Subversion\bin\svnserve.exe\" --service -r K:\test\DKRepos" displayname= "SVNServer" depend= Tcpip start= auto

正确方法2(未验证):

sc create SVNServer binPath= "C:\Subversion\bin\svnserve --service -r K:\test\DKRepos"

注意:K:\test\DKRepos路径必须是指向服务器仓库的,如果是指向K:\test则是无效的。

完整代码(新建文本文档,粘贴下面代码,保存,更改文件后缀名为bat,用管理员权限运行bat文件,去系统服务窗口查找SVNServer):

**bat代码*************************************************

@echo off

@sc create svnservice binpath= "\"C:\Subversion\bin\svnserve.exe\" --service -r K:\test\DKRepos" displayname= "SVNServer" depend= Tcpip start= auto

@net start svnservice

pause

**bat代码*************************************************

多说一句,cmd窗口输入services.msc,就可以打开系统服务窗口

四、启动停止svn服务:

启动服务:

net start svnservice

停止服务:

net stop svnservice

删除创建的服务:

sc delete svnservice

注意:如果创建服务或删除服务失败,有可能是没有超级管理员权限,用超级管理员模式运行。

五、连不上svn服务器的问题:

*错误提示***********************************************

Unable to connect to a repository at URL 'svn://...'

期望文件系统格式在"1"到"6"之间;发现格式"7"

********************************************************

是否遇到了上面错误提示?*_*

如果你按照我的步骤操作,是不会遇到这个问题的。

不是网上所说的,什么客户端程序版本号高于服务端的。

我一开始为什么强调环境变量?

是因为Subversion的环境变量没配置,或路径错误,或在TortoiseSVN的环境变量后面,

故在创建服务器仓库时,使用了TortoiseSVN\bin下的svnadmin命令。

跟客户端服务端版本号没关系,跟其他操作流程没关系,跟服务创建没关系。

于是,解决这个问题很简单,更改环境变量,确保在cmd下输入svn --version,能得到的是服务端程序的版本号。

再重新执行创建和配置服务器仓库操作即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android