最近linux 搭建独立SVN 服务端正常启动 客户端t连接提示连接超时,但是能ping通

最近linux 搭建独立SVN 服务端正常启动 客户端t连接提示连接超时,但是能ping通,第1张

从三个方面排查一下问题,都使用root *** 作:
(1)防火墙,首先把防火墙规则全部清除掉:iptables -F或者/etc/initd/iptables stop(红帽系列,其他系列的发行版可能不支持)
(2)SELinux系统,把它设置为Permissive:setenforce 0
(3)安装svn的目录权限是否允许访问(读和写,目录的所有者)

如果只是一个人用的话不需要装subversion,在使用时在URL of repository栏内填写file:///+你设定的repository文件夹的绝对路径就行。而使用subversion的话在路径栏里则填写的是svn://hostIP/+repository文件夹的相对路径。subversion就是一个简单的服务器,如果在局域网内搭建svn版本控制的话使用它就很方便,如果只是自己用就没必要,配置过程还是比较麻烦的,我当时就配了一天,出了好多问题。如果你特想用的话,下面是我的一些心得。
1 下载并安装TortoiseSVN。
2 下载并安装Subversion。
注意Subversion的版本号要与TortoiseSVN尽量对应,若Subversion的版本过低则TortoiseSVN不能正常地在Subversion上进行 *** 作。我使用的tsvn是171,一开始用13的subversion就不行,后来重新装了个17版本的subversion就好了
3 建立版本库。
创建一个目录作为版本库,对使用版本控制的工程文件进行备份。首先在一个合适的位置创建版本库目录,如”d:/Mydocument/SVNRepository”;右键该文件夹选择TortoiseSVN->Create repository here。
4 配置版本库权限。
版本库建立好后在该目录下会自动生成几个文件,其中conf目录下的文件为权限配置文件。修改svnserveconf文件:
[general]
anon-access=none
auth-access=write
password-db=passwd
第一句禁止匿名用户对版本数据库的读写,第二句运行授权用户对版本数据库的读写,第三行标明授权用户的数据库文件名。
修改passwd文件
[users]
username=password
每行都是一个用户名=用户密码。
注意:删除原始文件中的#,#为注释的意思,如#auth-access=write不会起任何作用。
不要取消svnserveconf文件中[sasl]下的注释,否则在连接服务器时会出现missing SASL mechanisms的错误。
5 启动Subversion服务器
Subversion可以通过控制台启动,输入svnserve –d就可以启动服务器,但是一旦该控制台关闭,服务器也就关闭了,这样做非常不方便。我们可以将其作为window服务加入注册表中,这样每次Window启动时会自动启动Subversion服务器了。在控制很多教程在介绍Subversion启动时提到了SVNServicesexe,这个程序实质上就是做这件事请,我们完全可以不使用该程序,直接在控制台下输入一段简单的指令即可。
假设你现在Subversion的安装目录为”D:/Program Files/Subversion”,版本库位置为”d:/Mydocument/SVNRepository”,现在打开控制台,输入 :
sc create SVNService binpath=” D:/Program Files/Subversion/bin/svnserveexe --service –r d:/Mydocument/SVNRepository” displayname=”SVNService” depend= Tcpip start=auto
注意:每个=后面都必须有空格如start= auto,否则会出错。
回车后成功建立服务,打开任务管理器,在服务标签下可以找到SVNService的服务。
“–r d:/Mydocument/SVNRepository”这句话的作用是将服务器默认路径设置到改目录下,比如现在你需要从SVN服务器CheckOut一个工程,该工程在d:/Mydocument/SVNRepository/Project1目录下,那你在TortoiseSVN路径选择中需要输入svn://hostIp/d:/Mydocument/SVNRepository/Project1,而加入该句话后你只需要输入svn://hostIp/Project1即可,既方便又隐藏了该项目在服务器中的绝对路径。
6 Import项目工程
启动好Subversion服务器后就开始向服务器中导入工程数据了。右键工程根目录或文件,选择TortoiseSVN -> Import进行导入,导入路径URL选择svn://hostIp/ProjectName即可。此时如果出现无法连接目标主机错误,检查Subversion服务器是否开启,在任务管理器中找到任务->SVNService,右键选择启动服务。如果出现文件版本不一致,则意味着Subversion版本太低,重新下载匹配当前TortoiseSVN的版本。如果出现SASL机制不匹配则在svnserveconf文件中将[sasl]下的条目全部用#注释掉。
7 使用SVN
现在你便可以在局域网内的任何一台装有TortoiseSVN的主机上进行项目开发了。使用CheckOut从服务器上下载工程,Update更新工程,Commit提交改动。

在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简单的配置。
我们首先来看下,如何在Mac环境下搭建svn服务器端环境。
创建代码仓库,用来存储客户端所上传的代码
我先在/User/apple目录下新建一个svn目录,以后可以在svn目录下创建多个仓库目录
打开终端,创建一个mycode仓库,输入指令:svnadmin create /Users/apple/svn/mycode
指令执行成功后,会发现硬盘上多了个/Users/apple/svn/mycode目录,目录结构如下:
配置svn的用户权限
主要是修改/svn/mycode/conf目录下的三个文件
1打开svnserveconf,将下列配置项前面的#和空格都去掉
[java] view plaincopy
# anon-access = read
# auth-access = write

# password-db = passwd

# authz-db = authz
anon-access = read代表匿名访问的时候是只读的,若改为anon-access = none代表禁止匿名访问,需要帐号密码才能访问

2打开passwd,在[users]下面添加帐号和密码,比如:
[java] view plaincopy
[users]
mj = 123
jj = 456
帐号是mj,密码是123

3打开authz,配置用户组和权限
我们可以将在passwd里添加的用户分配到不同的用户组里,以后的话,就可以对不同用户组设置不同的权限,没有必要对每个用户进行单独设置权限。
在[groups]下面添加组名和用户名,多个用户之间用逗号(,)隔开
[java] view plaincopy
[groups]
topgroup=mj,jj
说明mj和jj都是属于topgroup这个组的,接下来再进行权限配置。
使用[/]代表svn服务器中的所有资源库
[java] view plaincopy
[/]
@topgroup = rw
上面的配置说明topgroup这个组中的所有用户对所有资源库都有读写(rw)权限,组名前面要用@
如果是用户名,不用加@,比如mj这个用户有读写权限
[java] view plaincopy
[/]
mj = rw
至于其他精细的权限控制,可以参考authz文件中的其他内容

4启动svn服务器
前面配置了这么多,最关键还是看能否正常启动服务器,若启动不来,前面做再多工作也是徒劳。
在终端输入下列指令:svnserve -d -r /Users/apple/svn
或者输入:svnserve -d -r /Users/apple/svn/mycode
没有任何提示就说明启动成功了

5关闭svn服务器
如果你想要关闭svn服务器,最有效的办法是打开实用工具里面的“活动监视器”
综合上述,我们就可以轻松搭建svn服务器环境了

1、下载绿色版svn(即zip压缩包文件,如我下的是svn-win32-156zip,当然下安装版的也可以):
2、解压下载下来的绿色版svn和安装svn的windows客户端TortoiseSVN,按照提示安装就可以,为了能立马看到效果,最好重启下机器,呵呵
3、创建版本库,打开命令窗口(开始->运行,键入cmd,回车),我的svn服务器解压目录为F:\svn;在命令窗口输入:
pushd F:\svn\bin
进入到svn解压目录下的bin目录,建立版本库,如我把版本库安装在:F:\svnrep,首先确认F盘下是否存在svnrep文件夹,没有我们可以在命令窗口键入:
mkdir F:\svnrep
就会创建一个snvrep文件夹,接下来,运行如下命令:
svnadmin create F:\svnrep
这样我们的版本库就创建了,在F:\svnrep下你可以看到自动生成了一些文件及文件夹;同时,你也可以用TortoiseSVN的图形界面来创建,在F:\svnrep文件夹中“右击->TortoiseSVN->Create Repository here”, 同样得到我们需要的结果,如果这文件夹已经创建有了,你再创建,会自动报错。
4、配置用户和权限,打开F:\svnrep\conf目录中的svnserveconf文件,将[general](保证[general]这一行的前面不带#号,有#号就将#号去掉)下面的
# password-db = passwd(大概在20行)及# authz-db = authz(大概在27行)
前的#号去掉。保存文件;
然后打开同目录中的passwd文件(可以用记事本打开),在[users](保证[users]这一行的前面不带#号,有#号就将#号去掉)下面添加用户及此用户对应的密码,格式为:
admin = password
表示用户为admin 密码为password 保存文件。
同时也可以修改同目录下的authz文件,主要是用来控制用户对svn版本库里哪些目录的文件是否有读或写权限,读为r写为w,如果要赋给admin对版本库下的目录都有读和写权限,格式为:
[/]
admin = rw
/代表了svn版本库下的起始位置,对于修改此文件的一些注意事项,可以到网上搜索下呵呵。
5、运行svn服务器,在命令窗口输入:
svnserve -d -r F:\svnrep
这样,svn服务器程序就启动了。但不要关闭这个命令窗口,关闭就意味着svn服务器停止。
6、导入项目到svn版本库可以用TortoiseSVN客户端进行导入,在要导入的项目文件夹上“右击->TortoiseSVN->Import…”在URL of repository输入
svn://localhost/项目名
在Import Message中可以输入你的信息,点击ok按钮,就开始导入了,完成导入后,项目目录没有任何变化,导入过程中没报错的话,项目中的所有文件就导入到svn的版本库里了;这个导入过程可以到任何一台能访问你svn服务器并安装好TortoiseSVN客户端的电脑上进行,在要导入的文件或文件夹上“右击右击->TortoiseSVN->Import…”,在URL of repository 输入:
svn://svn服务器IP/项目名
就OK
7、从版本库中检出,即复制出一份版本库中的项目,在一个空的文件夹中“右击->SVN Checkout”,在URL of repository中输入:
svn://localhost/项目名
这样我们就复制出了这个项目中的文件。
8、修改文件后更新到版本库,当项目中的某一文件作了修改,可以通过在这个文件上“右击->SVN Commit…”,这样我们就将我们对这一文件的修改提交到了版本库。
当然还有很多功能,查看文件修改,比较文件各版本中的修改及不同处,== 不一一介绍了。注意的是TortoiseSVN客户端版本最好是和svn服务器的版本一致,有时不一致的时候会发生错误。推荐小鸟云,这些都是小鸟云工程师告诉我的


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10940023.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存