还在苦苦敲代码开发APP?你out啦! 试试积木搭建APP吧~

windows版 svn 服务器搭建及总结

来源:清泛编译     2016-02-02 15:54:26    人气:     我有话说( 0 人参与)

一直是在用svn客户端,因为一些需求需要自己搭建svn服务器。1.下载svn服务器版本,网上遍地都是,下载下来后,解压,一路next 即可。我的...

一直是在用svn客户端,因为一些需求需要自己搭建svn服务器。

1.下载svn服务器版本,下载下来后,解压,一路next 即可。

subversion服务端官方下载地址:http://subversion.apache.org/packages.html

tortoisesvn客户端官方下载地址:http://tortoisesvn.net/downloads.html

我的安装路径为:

 

2.为svn创建版本存储仓库repository。

可以使用svnadmin 命令,格式是:

svnadmin create  d:/svntest

意思是在d盘创建名为svntest仓库。 不清楚的可以用 svnadmin help 查看帮助。

这里我是将一个存储仓库做为svn的根路径,其实svn的根路径也可以是单单一个文件夹。用该文件夹来管理所有的资源存储仓库。

 

 

svntest 很像一个文件夹 如下图,注意 红框,每个数据仓库都会包含自己的conf和db文件夹。

 

3.为svn分配用户权限

svn用户权限的配置可以到很精细的程度,自己去找资料看。这里只是很简单的略过。

svn 的权限管理涉及到一下文件:

svnserve.conf -- /conf目录下 用于存放本svn库的全局访问控制信息。
 

passwd文件 -- /conf目录下 用于存放本svn库的用户名和密码。
 

authz -- /conf目录下 用于存放本svn库的访问授权信息。

 

这里需要注意的地方:

SVN中的这几个配置文件 是不支持每行开头带空格的。

所以 一旦你去掉每行开头的#,一定要同时将空格去掉,将每行顶到头。

svn却不会报错。

 

所以 这几张所截图都是错误的 开头都有空格,如果要去

链接svn的时候,就会报"权限认证失败"的错误。郁闷了很长时间才找到原因!

 

一 配置svnserve.conf文件

1.首先 去掉前面的#

.

2.其次 去掉前面的#

 

 二 .配置 passwd文件

 添加用户admin  用 = 分割,左边是用户名,右边是密码(明文)。 

三. 配置 authz文件

稍复杂些的权限控制实例:

admin = test1
admin2 = test2
dev = dev1

[/]
@admin = rw
@admin2 = r

[/test1]
@admin2 = rw
@dev = rw

上例中,admin权限的用户可对根目录及所有子目录进行读写;admin2只能读,但可对test1子目录写;dev用户不能访问根目录,只能读写test1子目录。

4.启动svn服务。

   在安装的Subversion目录下有个bin目录里svnserve.exe,我们直接运行这个文件是无效的。需要在控制台来启动他

   和linux下启动svn服务类似  在cmd : svnserve –d –r仓库路径

svnserve -d -r d:\svntest

 说明: -d 表示服务以后台的方式启动.–r根目录 ,其实就是仓库路径【这里你可以写的绝对路径,也可以是相对路径】

 默认情况下: svn服务时监听 3690

此时就不能关闭该cmd窗口,否则服务会停止。

 你可以使用netstat –an 命令验证.是否在3690有监听。

------------------------------------------------------------------------------------------------------------------------

5 .将svn配置成为windows服务 让其开机自启动

 需要使用windows自带的sc命令:

在cmd中输入:

sc create ”自定义的服务名称"  binpath= "svnserve.exe的绝对路径" --service -r "存储仓库绝对路径" displayname= "服务显示名称和自定义的服务名相同" start= auto

我这里的格式是:

sc create svn binpath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service -r D:\svntest" displayname= "svn" start= auto

 

binpath指svnserve.exe的路径
(注意:如果你的路径里有空格记得要在binpath的头尾用转义字符/"把整个个binpath框起来D:\svntest指svn资源库根目录)
displayname指服务名称
depend指协议是tcpid
start指开机自动启动
注意:以上的=后面的一个空格千万不要丢了

以上的格式是cmd的格式要求 坑爹的要求啊 搞死了,千万别在cmd中频写了 直接拷贝过去 改一下路径即可。

如果显示 “【SC】CreateServer 成功” ,则表示创建成功了,这一步类似于注册。

 

最后还要启动刚创建的服务:

net start svn

 

说明:如果你创建服务没有成功,可以

(1)    sc delete svn

(2)    到注册表下找到svn,删除即可

在删除服务前,一定要停止服务

(1). net stop svn

(2) sc stop svn

------------------------------------------------------------------------------------------------------------------------

启动 停止 svn服务,依赖于上一步你已经将svn注册为windows的服务。

net start svn

net stop svn

------------------------------------------------------------------------------------------------------------------------

 

svn的单仓库和多仓库

前面我们讲的是单仓库多仓库是指:仓库建立方式与单仓库一样,只是目录仓库结构有所变化。

 

单仓库和多仓库最大区别在于,启动svn服务的时候,仓库路径不同

比如比如你希望以单仓库方式启动

svnserve –d –r d:/svnserversoftware/myrepository/oa

如果你是以多仓库方式启动(直接根目录即可,这样可以启动指定目录下的所有子仓库)

svnserve –d –r d:/svnserversoftware/myrepository


以下转载若干问题 

 1、不知道该怎么设置 svn://url 这个路径

2、三个需要设置的文件,其中authz这个里面的[repos:/]这个到底该怎么设置

3、认证失败问题出在哪里?

4、svn import 目录1 "svn://localhost/目录2" -m "first version" 目录2到底怎么设置?

5、import 的时候出现“条目从本地编码转换到UTF8失败”

6、服务器端都没问题了,但是客户端不能连接主机

下面就根据这几个问题,一一解答:

1、svn可以分为单个或多个版本库,假设:

     版本库目录为 /data/svndata/repos1

     启动程序如果是:svnserve -d -r /data/svndata/repos1     这代表你当前svn只为repos1这个版本库工作,客户端访问直接svn://IP/就可以了,后面不跟目录

     启动程序如果是:svnserve -d -r /data/svndata/                这代表你当前svn可以多版本库运行,客户端访问就需要加上 svn://IP/repos1 这样才能访问repos1版本库


2、第一个问题是对应的

     如果是一个版本库,那应该设置成如下:

     [groups]

     admin = user1,user2

     [/]

     @admin=rw

     如果是多个版本库,那就应该设置成这样:

     [groups]

     admin = user1,user2

     [repos1:/]

     @admin=rw

3、认证失败的问题,就是对上述两个问题没有相对应的设置好,要么都安一个版本库设置,要么都安多个版本库设置,只要对应设置好,应该就是没有问题的

4、目录2是由svn建立的,不用自己去设置,假设:

     svn import /tmp/ceshi "svn://localhost/a/b/c" -m "first version"

     这样的话,当你checkout的时候,你本地的目录就应该是: /a/b/c

5、呵呵,网上都说是LANG没设置好,可是我的不是这个问题,我的是导入的源文件中有些文件自身的文件名乱码,郁闷~

6、服务器都设置好了,那要是客户端还连不上,就是防火墙的问题了,去/etc/sysconfig/iptables 设置一下,打开默认的3690端口就可以了

 

------------------------------------------------------------------------------------------------------------------------

在myeclipse 8.5中使用subeclipse插件的若干问题:

貌似 插件的同步功能做的很无语!!!

 

当甲向svn中新添加存储库后,乙想使用插件checkout甲的东东 需要刷新一下才能看到甲新建的存储库。

2.当甲用户提交了新的分支或者tag的时候,如果乙用户需要查看 则 也需要及时刷新 才能看到

部分内容来源:http://blog.csdn.net/woshiwxw765/article/details/7537448

windows版 svn服务器 svnadmin

注:本文为本站或本站会员原创优质内容,版权属于原作者及清泛网所有,
欢迎转载,转载时须注明版权并添加来源链接,谢谢合作! (编辑:admin)
分享到: