最近帮朋友搞了一个项目,为了维护方便一点就在服务器上搭了一个svn服务,以前从没搭过,所以做个记录。
首先,svn的安装
查看下是否安装了svn
# rpm -qa subversion
如果出现了安装过的svn信息,那么就不用再安装了,如果没有安装,就用yum安装一下吧。
# yum install subversion
新建版本库
先建一个文件夹存放仓库数据,然后用svnadmin创建版本库。举个例子
# mkdir /home/svn
# svnadmin create /home/svn/project
创建完之后在project下应该有以下文件
conf db format hooks locks README.txt
修改配置文件
conf 文件夹下有三个文件需要配置,首先修改 svnserve.conf 文件
# vim conf/sevserve.conf
找到以下配置,去掉配置前面的注释(#)
#anon-access = read
#auth-access = write
#password-db = passwd
#authz-db = authz
每个配置项都有它的作用,比如anon-access = read 就是所有人都有读取的权限,不用认证。如果不允许这样,可以改为 anon-access = none,其他作用可以自行百度,并不难理解
注意:这里删掉#号之后前面不要留空格,会报错的。并且配置项和值之间的 = 号两端需要有一个空格,后面的passwd 和 authz 文件也是一样
修改passwd文件,这是管理用户账号密码的文件
# vim conf/passwd
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
admin = 123456
很简单,我新增了一个用户admin 密码是 123456。
修改authz 文件,这个文件是管理用户权限的
# vim conf/authz
首先建一个用户组
[group]
admin = admin #第一个admin是用户组名称,第二个是我们刚才新建的用户
然后分配权限
[/] # 作用的范围 / 应该表示当前版本库的所有目录
@admin = rw #@后面是组的名称, rw 读写的权限。就是赋予admin组所有成员读写的权限
* = #除了以上配置过的用户之外所有用户都没有任何权限
先简单的做这些配置,保存
启动svn服务
# svnserve -d -r /home/svn
ok,到此为止就搞定啦,成功创建了版本库。你可以找个目录运行一下 svn checkout svn://localhost/project 查看是否正常。首次运行的时候会有如下信息:
Authentication realm: 3f7faa7c-c914-4840-bc5e-1ed0def587ce
Password for 'root':
Authentication realm: 3f7faa7c-c914-4840-bc5e-1ed0def587ce
Username: admin
Password for 'admin':
-----------------------------------------------------------------------
ATTENTION! Your password for authentication realm:
3f7faa7c-c914-4840-bc5e-1ed0def587ce
can only be stored to disk unencrypted! You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible. See the documentation for details.
You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)?
这里这个root密码设置了应该是保存在硬盘里的,我也没去研究,设置一个,自己记住,万一以后要用。
导入文件
刚创建的版本库是没有文件的,如果你想把服务器上的某些文件加到版本库,那么可以用import命令,比如我的/home/myporject/ 下的所有文件需要添加进版本库,并且做为一个主要分支,那么可以这么做
# cd /home/myproject/
# svn import . file:///usr/local/svn/project/trunk -m "Initial import"
注意:如果需要添加进版本库的文件有中文名的可能会报编码错误,这时候需要进一步处理了
当然,也可以直接将刚才建好版本库在windows电脑上checkout出来,直接把需要的文件放进去然后commit一下也是一样的。
做完以上步骤,基本就搞定啦,来愉快的玩耍吧!