Centos搭建SVN服务器
搭建SVN服务,有效的管理代码,以下三步可以快速搞定。
1、安装
#yum install subversion
判断是否安装成功
#subversion -v
svnserve, version 1.6.11 (r934486)
出现上面的提示,说明安装成功。
如果提示如下:-bash: subversion: command not found
经过查找发现:
[root@]# svnserve --version
svnserve, version 1.6.11 (r934486)
compiled Apr 11 2013, 16:13:51
Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository back-end (FS) modules are available:
* fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.
Cyrus SASL authentication is available.
有了SVN软件后还需要建立SVN库。
#mkdir /opt/svn/repos
#svnadmin create /opt/svn/repos
执行上面的命令后,自动在repos下建立多个文件, 分别是conf, db,format,hooks, locks, README.txt。
2、配置
上面的操作很简单,几个命令就搞定, 下面的操作也不难。
进入上面生成的文件夹conf下,进行配置, 有以下几个文件authz, passwd, svnserve.conf
其中authz 是权限控制,可以设置哪些用户可以访问哪些目录, passwd是设置用户和密码的, svnserve是设置svn相关的操作。
2.1先设置passwd
[users]
# harry = harryssecret
# sally = sallyssecret
hello=123
用户名=密码
这样我们就建立了hello用户, 123密码
2.2 再设置权限authz
[/]
hello= rw
意思是hello用户对所有的目录有读写权限,当然也可以限定。
如果是自己用,就直接是读写吧。
2.3最后设定snvserv.conf
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = password
authz-db = authz # 访问控制文件
realm = /opt/svn/repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
采用默认配置. 以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
好了,通过以上配置,你的svn就可以了。
3、连接
启动svn: svnserve -d -r /opt/svn/repos
如果已经有svn在运行,可以换一个端口运行
svnserve -d -r /opt/svn/repos --listen-port 3391
这样同一台服务器可以运行多个svnserver
好了,启动成功后,就可以使用了。
建议采用TortoiseSVN, 连接地址为: svn://your server address (如果指定端口需要添加端口 :端口号)
连接后可以上传本地的文件,有效的管理你的代码。
4.需要设置iptabls 的出入口
vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3391 -j ACCEPT
-A OUTPUT -p tcp --sport 3391 -j ACCEPT
重启iptables /etc/init.d/iptables restart
创建版本库:
终端输入:svnadmin create [路径]
该路径可以是相对路径,例如,当前在home/user/svn/目录下,输入svnadmin create myproject,则该版本库会被创建在home/user/svn/目录下,新建一个文件夹名为myproject,其中便是版本库的文件了。
将文件导入版本库:
终端输入:svn import [源路径] [目标版本库路径] -m [日志信息]
源路径可以是相对路径,导入时会递归导入源路径下的所有文件和文件夹,目标版本库路径需要绝对目录(反正我试验是这样的),例如版本库的目录是:home/user/svn/myproject/。则应该这样写:file:///home/user/svn/myproject/
例如将当前目录导入版本库myproject:
svn import . file:///home/user/svn/myproject -m "导入文件"
从版本库导出:
导入后原文件并未被纳入版本管理,若想获得受版本控制的文件,就需要从版本库导出
终端输入:svn co [版本库路径] [导出目标路径]
例如将myproject库中的文件导出到当前目录:svn co file:///home/user/svn/myproject .
SVN基本操作命令:
首先创建SVN库 并且为SVN库的权限授权
svn co http://127.0.0.1:81/svn/ahlm 执行checkout命令创建SVN版本库的具体内容
cp 源文件 到 tmp/www/kof 文件夹内
执行 svn add ./* 把所有文件添加到SVN 可以执行的目录里面去
执行 svn ci ./* -m "11122" 执行cimit操作
修改shell脚本 定时执行 svn up命令
打开定时文件crontab -e 修改了每1分钟执行一次
浙公网安备 33010602011771号