`

SVN版本控制服务器和客户端安装教程

    博客分类:
  • C#
阅读更多

ps:有些问题的分来还真不好找啊

 

最近用svn做了下.net程序的版本控制。发现了一些问题。

 

1.基本的安装过程?

      首先需要下载最新的服务器版本和客户端版本。在客户端即windows上安装TortoiseSvn。服务器上的是用于管理源代码的,客户端是下载源码和上传源码用的。

 

2.在服务器端建立版本库

      运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了 Subversion服务器之后,可以直接运行,如:

svnadmin create E:\svndemo\repository
 

就会在目录E:\svndemo\repository下创建一个版本库。

 

3,配置权限

svn的权限管理涉及到一下文件:
passwd文件   --   /conf目录下   用于存放本svn库的用户名和密码,用 = 分割,左边是用户名,右边是密码(明文)。
authz   --   /conf目录下   用于存放本svn库的访问授权信息。
svnserve.conf   -- /conf目录下   用于存放本svn库的全局访问控制信息。

来到E:\svndemo\repository\conf目录,修改svnserve.conf:
# [general]
# password-db = passwd
改为:
[general]
password-db = passwd 然后修改同目录的passwd文件(设置用户密码),去掉下面三行的注释再加两个用户:
# [users]
# harry = harryssecret
# sally = sallyssecret
最后变成:
[users]
harry = harryssecret
sally = sallyssecret
svnadmin = admin
zgz = zgz0809
最后修改同目录的authz文件,它定义了两部分的内容:
1,对组成员的定义,
2,对目录的授权定义,
可以针对一个单一用户授权,也可以针对在[groups]里面定义的一个组授权,还可以用*通配符来对所有的用户授权,
授权的选项有:只读访问('r'),读写访问('rw'),或者无权防问('').
authz文件中可以对任意多个目录进行权限控制,一下是一个例子:

[groups]
harry_and_sally = harry,sally
#设定权限组

[/]
svnadmin = rw

[/truck]
zgz = rw
harry = rw
sally = r
* = r

[/sanguo]
zgz = rw
harry = r
sally = rw
* = r

[/ts]
@harry_and_sally = rw
# 以@为键值意味着对前面定义的组进行授权
* = r

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

用户svnadmin权限最大,他可以进行根目录(注意:是服务器目录svn://localhost/,下边会介绍的)下所有文件(包括子目录下的文 件)的读写操作,而/truck,/sanguo,/ts是在服务器的根目录下创建的三个子目录。
用户zgz 和harry对 /truck具有读写权限,sally 只有读的权限。
用户zgz 和sally对 /sanguo具有读写权限,harry 只有读的权限。
用户harry 和sally对 /ts具有读写权限,zgz只有读的权限。(* = r 表示所有用户都具有读的权限,当然zgz也就自然具有了。注意这里 @harry_and_sally = rw 表示给harry_and_sally组所有用户授权,该组在上边[groups]标签中已定义)

注意:如果用户对一个目录具有某种权限,那么他对其子目录也有同样的权限(例如:svnadmin),所以 在授权时要特别注意,尽量只付给满足用户需要的最小的权限。

 

4,客户端配置

cmd 运行svnserve -d -r E:\svndemo\repository 我们的服务器程序就已经启动了。注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。

 

5,svncheck

安装好客户端程序后,右键出现svncheck按钮,即可下载版本库

 

6,版本的上传和更新

使用update更新,commint进行上传,每次commit前最好都update下,缩短commit的时间间隔,尤其是在多人合作开发的情况下,避免冲突的发生

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics