Linux系统操作SVN仓库基础
2016年12月16日 14:34:24 开发工具 ⁄ 共 1879字 暂无评论 ⁄ 被围观 2,088次

在 Window 系统中想用 SVN 服务器,只需要安装 VisualSVN-Server 即可,这是带有图形操作界面的,那么创建仓库,新建用户,修改密码,修改权限等操作很简单,动动鼠标就可以了。

那么在 Linux 系统中,如何进行这些操作呢?这里假设已经安装好了 SVN 服务器,具体安装过程这里就不再写了。

查看 svn 版本:

svn --version(包含版本信息、编译信息、版权信息等)

svn --version --quiet(只查看版本号)

1)在 svn 根目录下建立版本仓库:

svnadmin create product3dl

如果找不到刚创建的仓库,可以用 find 命令来查找:

find -name product3dl

其中,product3dl 就是仓库名,仓库建立好以后会出现一个仓库名的文件夹,文件夹下面有 conf 等几个目录和文件。

查看仓库下的所有目录及文件:

cd product3dl/

ll -a

结果:
total 32
drwxrwxr-x. 6 svn svn 4096 Dec 15 09:44 .
drwx------. 26 svn svn 4096 Dec 15 09:44 ..
drwxrwxr-x. 2 svn svn 4096 Dec 15 09:44 conf
drwxrwsr-x. 6 svn svn 4096 Dec 15 09:44 db
-r--r--r--. 1 svn svn 2 Dec 15 09:44 format
drwxrwxr-x. 2 svn svn 4096 Dec 15 09:44 hooks
drwxrwxr-x. 2 svn svn 4096 Dec 15 09:44 locks
-rw-rw-r--. 1 svn svn 229 Dec 15 09:44 README.txt

2)新建用户

修改 conf 文件夹下的 authz 文件:

vi authz

修改后如下:

  1. [groups]
  2. harryharry_and_sally = harry,sally
  3. harryharry_sally_and_joe = harry,sally,&joe
  4. study = mll,cz,ldp,ly
  5. admin = qzg,mll
  6. [/home/svn/product3dl]
  7. @admin = rw
  8. @study = rw
  9. * =
  10. # [/foo/bar]
  11. harry = rw
  12. # &joe = r
  13. # * =
  14. # [repository:/baz/fuz]
  15. # @harry_and_sally = rw

此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。

包括只读 r,读写 rw。没有列出的用户,则不允许访问。还可以对用户分组,其中,1 个用户组可以包含 1 个或多个用户,用户间以逗号分隔。

/ 表示根目录(仓储目录)及以下,根目录是 svnserve 启动时指定的,我们指定 /opt/svndata。这样,/ 就是表示对全部版本库设置权限。
权限主体可以是用户组、用户或 *,用户组在前面加@,* 表示全部用户。权限可以是 w、r、wr 和空,空表示没有任何权限。

在 [groups] 下增加你的用户组(记得等号前后留空格)。

3)修改用户密码

添加了用户以后就需要给用户设置密码了,打开conf/passwd文件:

vi passwd

取消 [users] 的注释,并在下面加上你的用户的密码设置(记得等号左右的空格),如下:

  1. [users]
  2. harry = harryssecret
  3. sally = sallyssecret
  4. qzgqzg = qzg
  5. mllmll = mll
  6. czcz = cz
  7. ldpldp = ldp
  8. lyly = ly

4)启动 svn 对用户权限、密码的控制

需要启动SVN对用户权限、密码的控制,不然的话你就只能读而不能写了。

修改svnserve.conf文件:

vi svnserve.conf

各参数功能在配置文件的注释中有说明, 此处配置如下(取消下面几条前面的 # 号注释就 OK 了):

  1. anon-access = read
  2. auth-access = write
  3. password-db = passwd
  4. authzauthz-db = authz

5)给仓库分配写权限

需要给仓库提供读写权限,不然不能提交文件:

chmod 777 -R product3dl/

6)重新启动 svn 服务

启动 svn 服务命令:

svnserve -d -r  /svn

如果报错如下:

svnserve: Can't bind server socket: Address already in use

解决办法:

使用“ ps -e|grep svnserve ”找到服务对应进程编号,使用 kill 命令后,再使用启动命令重启服务。

 

Good Luck!

给我留言

留言无头像?