一、简单的搭建 SVN 服务器
1.1、安装
安装SVN服务器(svn-win32-1.4.5.exe )和SVN客户端(TortoiseSVN-1.4.6.11647-win32-svn-1.4.6.msi),按照提示即可。
1.2、创建资源库
svnadmin create d:/svnroot/repos
1.3、运行svn服务
svnserve -d -r d:/svnroot
注:有的时候权限不起作用,要注意以下情况。
配置authz时,要注意svnserve启动参数-r所指定的目录。
这里有两种情况:
A: -r直接指定到版本库(称之为单库svnserve方式)
比如,有一个库project1,位于D:/svn/project1,使用以下命令启动svnserve
svnserve -d -r D:/svn/project1
在这种情况下,一个svnserve只能为一个版本库工作,authz文件如果配置成下面这样就是错的,
[groups]
admin=user1
dev=user2
[project1:/]
@admin=rw
@doc=r
应该配置成
[groups]
admin=user1
dev=user2
[/]
@admin=rw
@doc=r
因为[project1:/]表示库project1的根目录,而按上面的启动参数,是没有库的概念的。使用类似这样的URL:svn://192.168.0.1/ 即可访问project1
B:-r指定到版本库的上级目录(称之为多库svnserve方式)
同样,有一个库project1,位于D:/svn/project1,如果使用以下命令启动svnserve
svnserve -d -r D:/svn
这种情况,一个svnserve可以为多个版本库工作,这时如果想限制指定库的指定目录,就应该指定具体的库,像这样
[groups]
admin=user1
dev=user2
[project1:/]
@admin=rw
@doc=r
如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录
使用类似这样的URL:svn://192.168.0.1/project1 即可访问project1
这样的URL:svn://192.168.0.1/project2 即可访问project2
1.4、授权
进入d:/svnroot/repos目录下的conf目录,打开svnserve.conf,
去掉anon-access = read前面的#号注释,最好anon-access = read前没有空格也去掉,然后把anon-access = read改为anon-access = none,同样地把auth-access = write和password-db = passwd 去注释(和前面的空格)
说明:
anon-access = none #不允许匿名用户访问
auth-access = write #通过验证的用户可以读和写
password-db = passwd #用户保存文件
authz-db = authz #权限管理文件
realm = repos #仓库名称
1.5、设置密码
打开conf/passwd文件,在文件尾加如下:
user_name = your_password //比如说:billy = 123456 billy为用户,123456为密码。
1.6、导入
右击你待导入的目录TortoiseSVN->Import(导入)...,然后URL里输入svn://localhost/repos即可。
1.7、检出项目
右击一个新的目录(待存放的项目的目录)SVN Check Out(检出)...,然后URL里输入svn://localhost/repos即可。完成后,这个新的目录左下角有一个绿色的钩。
安装SVN服务器(svn-win32-1.4.5.exe )和SVN客户端(TortoiseSVN-1.4.6.11647-win32-svn-1.4.6.msi),按照提示即可。
1.2、创建资源库
svnadmin create d:/svnroot/repos
1.3、运行svn服务
svnserve -d -r d:/svnroot
注:有的时候权限不起作用,要注意以下情况。
配置authz时,要注意svnserve启动参数-r所指定的目录。
这里有两种情况:
A: -r直接指定到版本库(称之为单库svnserve方式)
比如,有一个库project1,位于D:/svn/project1,使用以下命令启动svnserve
svnserve -d -r D:/svn/project1
在这种情况下,一个svnserve只能为一个版本库工作,authz文件如果配置成下面这样就是错的,
[groups]
admin=user1
dev=user2
[project1:/]
@admin=rw
@doc=r
应该配置成
[groups]
admin=user1
dev=user2
[/]
@admin=rw
@doc=r
因为[project1:/]表示库project1的根目录,而按上面的启动参数,是没有库的概念的。使用类似这样的URL:svn://192.168.0.1/ 即可访问project1
B:-r指定到版本库的上级目录(称之为多库svnserve方式)
同样,有一个库project1,位于D:/svn/project1,如果使用以下命令启动svnserve
svnserve -d -r D:/svn
这种情况,一个svnserve可以为多个版本库工作,这时如果想限制指定库的指定目录,就应该指定具体的库,像这样
[groups]
admin=user1
dev=user2
[project1:/]
@admin=rw
@doc=r
如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录
使用类似这样的URL:svn://192.168.0.1/project1 即可访问project1
这样的URL:svn://192.168.0.1/project2 即可访问project2
1.4、授权
进入d:/svnroot/repos目录下的conf目录,打开svnserve.conf,
去掉anon-access = read前面的#号注释,最好anon-access = read前没有空格也去掉,然后把anon-access = read改为anon-access = none,同样地把auth-access = write和password-db = passwd 去注释(和前面的空格)
说明:
anon-access = none #不允许匿名用户访问
auth-access = write #通过验证的用户可以读和写
password-db = passwd #用户保存文件
authz-db = authz #权限管理文件
realm = repos #仓库名称
1.5、设置密码
打开conf/passwd文件,在文件尾加如下:
user_name = your_password //比如说:billy = 123456 billy为用户,123456为密码。
1.6、导入
右击你待导入的目录TortoiseSVN->Import(导入)...,然后URL里输入svn://localhost/repos即可。
1.7、检出项目
右击一个新的目录(待存放的项目的目录)SVN Check Out(检出)...,然后URL里输入svn://localhost/repos即可。完成后,这个新的目录左下角有一个绿色的钩。