怎样搭建本地svn服务器环境
1、通常的SVN服务器是搭建在Linux等系统下,例如用Apache+SVN配置,Linux下的SVN性能会非常好,但配置有些繁琐,如果SVN服务器只有自己使用,那么可以直接把SVN服务器搭建在个人Windows环境下使用。
2、目前较为简单的方案是VisualSVN Server。该SVN服务器是免费的,支持Windows NT, 2000, XP and 2003等环境,安装非常简单。
3、安装的时候可以选择SVN走http协议还是https协议,http协议速度快一些,而https协议安全性好。两者均可以从浏览器直接访问SVN项目。
4、安装完成后打开,可以看到一个微软的MMS管理界面,在里面可以轻松添加设置项目。用户权限可以使用Windows的用户,也可以单独新建用户。如果原先有一个SVN数据,则可以在界面上导入原有的SVN数据。
SVN是程序员常用的一款软件,它可以很好的帮助程序员进行版本控制以及代码管理,通常的SVN服务器是搭建在Linux等系统下进行的。但是今天小编分享一种在win7操作系统使用Subversion搭建SVN服务器的方法,而且设置方法也比较简单,感兴趣或有需要的用户可以一起参考下面教程进行设置体验。
具体方法如下:
1、首先来下载和搭建SVN服务器,进入网址后;
2、点开上面红色框标记的VisualSVN连接,下载VisualSVNserver,下载完成后双击安装;
3、点击Next下一步;
4、然后再点击Next项,下一步;
5、选择“标准版本”,点击Next如下;
6、选择安装路径,服务器端文件存放位置,默认端口号(Location是指VisualSVNServer的安装目录,Repositorys是指定你的版本库目录ServerPort指定一个端口,Usesecureconnection勾山表示使用安全连接),点击Next,进入下一步;
7、准备安装,点击Install,进入下一步;
8、等待安装;
9、完成后,点击next,进入下一步;
10、点击Finish即可完成安装。安装完成后,启动VisualSVNServerManage;
11、可以在窗口的右边看到版本库的一些信息,比如状态,日志,用户认证,版本库等要建立版本库,需要右键单击左边窗口的Repositores;
12、在弹出的右键菜单中选择CreateNewRepository或者新建-Repository;
13、键入对象库名称后,进入下一步;
14、选择”空的对象库“,进入下一步;
15、设置对象库的权限,点击create;
16、点击Finish即可完成基本创建。
上述就是win7系统使用Subversion搭建SVN服务器的方法,有需要的用户可以掌握。
怎么改svn的登陆账号?
svn使用的比较广泛,平时用来更新或者是提交代码,刚登陆svn账号的时候。那么记住密码之后的svn账号,要切好到另外一个svn账号,要如何切换呢?
1第一次登陆svn账号的时候,为了方便下次使用,一般都是记住账号密码的了。
2若是要将当前的svn账号切换到另外一个svn账号:在空白的地方右击,然后将鼠标放在‘TortoiseSVN’上面,在出现的子菜单中选择‘设置’。
3在设置窗口中的左侧找到‘已保存的数据’并点击它,然后将右侧的所有‘清除’都点击一遍。
4、然后点击保存。这个时候,再次右击,然后选择‘svn更新’或‘svn提交’的时候,它就会要求你重新输入账号和密码了,这个时候,你就可以输入你要切换到的账号和密码了,然后点击‘确定’即可。
SVN命令行怎么用?
你在命令行只输入了svn的地址,这样是连接不上的。
你需要一个支持svn的软件,比如eclipse。
在命令行的话,用下面的命令,前提是你安装了svn命令。
看看这个吧
SVN使用指引(本地服务器为Linux)-腾讯开放平台
你在Linux系统中输入
ps aux | grep svnserve
查看一下有没有启动svnserve服务,如果有
再试一下svnserve -d -r SVN_ROOT_PAH --listen-host 1921681126 ,这个SVN_ROOT_PATH是你Linux下的版本库目录,并设定该目录为基准目录。
这样你再试一下应该就OK了。
在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了然而在linux上搭建SVN却非常繁琐,这篇文章就来一步一步教您如何在Centos上搭建SVN
源码目录:/home/user/project
工程名:project
工程目录:/source/svn/project
访问地址:svn://ip/project
一、 安装svn
yum install subversion
二、 svn服务器配置
1 创建svn根目录
mkdir /source/svn
2 添加工程
svnadmin create /source/svn/project
3 导入工程初始文件(可省)
svn import /home/user/project/ file:///source/svn/project -m "init project"
4 配置工程用户
进入工程的配置目录:
cd /source/svn/project/conf
下面一共三个文件:authz passwd svnserveconf
passwd: 里面保存用户信息,基本格式为:user = passwd
authz: 里面保存用户的分组信息,以及每个组的访问权限
svnserveconf: 里面保存服务器的基本配置(下面介绍)
针对该例子的配置如下:
41 passwd里面添加用户
[users]
pm = pm123
42 authz配置用户权限
复制代码
[grouPS]
#添加一个分组(实际当中可以添加多个,每个组可以有多个用户以,隔开)
pm_g = pm
# 该项目的权限配置
[project:/]
# pm_g分组配置读写权限(实际中可以增加只读分组)
@pm_g = rw
43 svnserveconf配置(可默认)
# 匿名用户权限(none:拒绝, write:读写, read:只读权限)
anon-access = none
# 鉴权用户访问
auth-access = write
# 用户信息配置文件(也可以是绝对路径)
password-db = passwd
# 权限配置文件
authz-db = /source/svn/project/conf/authz
三、 启动svn服务器
svnserve -d -r /source/svn
四、 拉取代码
svn co svn://ip/project
1环境
centos64
2安装svn
代码如下:
yum -y install subversion3配置
建立版本库目录
代码如下:
mkdir /www/svndatasvnserve -d -r /www/svndata
4建立版本库
创建一个新的Subversion项目
代码如下:
svnadmin create /var/www/svndata/njlrxx配置允许用户jiqing访问
代码如下:
cd /var/www/svndata/njlrxx/confvi svnserveconf
anon-access=none
auth-access=write
password-db=passwd
注:修改的文件前面不能有空格,否则启动svn server出错
代码如下:
vi passwd[users]
#用户1 = 密码1
#用户2 = 密码2
jiqing=123456
5客户端连接
代码如下:
svn co svn://ip/njlrxx用户名:jiqing
密码:123456
6实现SVN与WEB同步,可以CO一个出来,也可以直接配在仓库中
(1)设置WEB服务器根目录为/var/www/webroot
(2)checkout一份SVN
代码如下:
svn co svn://localhost/njlrxx /var/www/webroot/njlrxx修改权限为WEB用户
代码如下:
chown -R apache:apache /var/www/webroot/njlrxx(3)建立同步脚本
代码如下:
cd /var/www/svndata/njlrxx/hooks/cp post-committmpl post-commit
编辑post-commit,在文件最后添加以下内容
代码如下:
REPOS="$1"REV="$2"
BASEPATH=/var/www/webroot/njlrxx
WEBPATH="$BASEPATH/"
export LANG=zh_CNUTF-8
svn update $WEBPATH --username jiqing --password 123456 --no-auth-cache
增加脚本执行权限
代码如下:
chmod +x post-commit最后操作是关闭服务然再打开服务:
svn服务的关闭:
代码如下:
killall svnservesvn开启:
代码如下:
svnserve -d -r /var/www/svndata7如何支持匿名用户访问
方法一:
在svn安装目录下找到,conf/httpdconf文件,如果是手动集成apache的则找到apache的配置文件。
找到中的
代码如下:
Require valid-user改为
代码如下:
LimitExcept GET PROPFIND OPTIONS REPORTRequire valid-user
/LimitExcept
重启服务,这样设置以后,svn下的所有内容都不在需要验证用户,可以直接访问。
缺点:svn自身的访问权限设置失效了。更多的时候我们希望用户先用匿名方式尝试访问,如果不行,在输入用户名和密码验证访问。
方法二:
在配置文件中加入
代码如下:
Satisfy Any加入了Satisfy Any的设置,其表示在同时启用了Allow(允许)和Require的情况下,指定相关策略的,一共有两个备选值,All表示用户必须同时满足Allow和Require的条件,而Any则是满足其中之一即可。
Satisfy Any表示允许先用匿名方式尝试访问,并根据svnauthz对匿名用户的控制给予访问权限。
PS:SVN自动同步程序执行流程:
1、用户提交文件到SVN服务器,提交操作成功后触发post-commit脚本
2、在post-commit版本文件中使用php_scriptphp执行PHP脚本
3、在PHP脚本中通过exec系统调用更新服务器上的版本库工作副本
4、根据更新操作结果日志,对另一个SVN版本库进行对应的操作处理
1 安装SVN服务器:
检查是否已安装
# rpm -qa subversion
安装SVN服务器
# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
验证安装
# cd /etc/httpd/modules
# ls | grep svn
mod_authz_svnso
mod_dav_svnso
查看版本
# svnserve --version
2 代码库创建:
安装完成后要建立SVN库
# mkdir -p /opt/svn/repositories
# svnadmin create /opt/svn/repositories
执行后,自动建立repositories库,查看/opt/svn/repositories文件夹包含了conf,db,format,hooks,locks,READMEtxt等文件,说明一个SVN库已经建立。
3 配置版本库:
进入上面conf文件夹下,进行配置:
a 用户密码passwd配置:
# vi + passwd //+表示光标放在文件最低端
修改passwd为一下内容:
[users]
# harry = harryssecret
# sally = sallyssecret
zhoulf=123456
b 权限控制authz配置:
# vi + authz
设置哪些用户可以访问哪些目录,向authz文件追加以下内容:
[/]
zhoulf=rw //给该用户访问所有库的权限
或
[repositories:/project] //repository库的根目录权限
zhoulf=rw
/ 表示根目录及以下,根目录是svnserve启动时指定的,我们指定的是/opt/svn;/ 就是指对全部版本库都具有权限
repositories:/ 表示对库repositories的根目录设置权限
PS:
权限配置文件中出现的用户名必须已在用户配置文件中定义。
对权限配置文件的修改立即生效,不必重启svn。
c 服务svnservecon配置:
# vi + svnserveconf
添加一下内容:
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/opt/svn/repositories
这里注意各标签不能错,也不能有重复,不然无法连接。
d 配置防火墙端口(如果需要):
不一定每个人都需要设置,可以先测试后再看是否需要打开端口
# vi /etc/sysconfig/iptables
添加一下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙
# service iptables restart
4 查看:
a 启动SVN
# svnserve -d -r /opt/svn/repositories
b 查看SVN进程
# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 00:00:00 svnserve -d -r /opt/svn/repositories
c 检测SVN端口
# netstat -ln |grep 3690
tcp 0 0 0000:3690 0000: LISTEN
5 停止重启SVN:
# killall svnserve //停止
# svnserve -d -r /opt/svn/repositories // 启动
6 测试连接:
使用TortoiseSVN进行测试:
1 SVN服务启动后,需要使用客户端测试连接:
客户端连接地址:svn://19216815231;然后,输入用户名密码;
2 新建一个文件夹,即本地的库文件夹,右键checkout,将会得到一个隐藏文件夹svn;
3 在此文件夹中放入项目内容,然后右键点击commit,就可以上传本地项目了。
如果要自己架设服务器的话,我自己架设过,具体思路是将SVN服务器先架设在局域网上,然后通过路由器的映射将其端口开放给互联网访问。为了解决ADSL线路每次重新连接时随机分配IP地址的问题,我们还需要申请一个免费域名。
下面是我的架设方法,首先你需要具备这些条件:
1、路由器1台,应有端口映射(转发规则-虚拟服务器)功能,最好有内置的花生壳动态DNS功能(否则就需要另外安装花生壳软件)。
2、SVN服务器一台
3、ADSL或其他通往互联网的网络线路
然后需要做以下事情:
1、架设好SVN服务器,保证内网访问畅通。
2、申请免费域名
登录花生壳网站(wwworaynet),免费注册用户,可得到一个免费域名,如“abcdegicpnet”此域名可长期使用;
3、登录路由器管理页面
通常是访问地址http://19216811,用户名和密码根据设定输入,各型号路由器的访问方式可能略有不同,可参考说明书进行操作。
4、设置动态域名
如果路由器内置了花生壳动态DNS功能,则可通过路由器直接设置。以TL-WR340G 54M型号的无线路由器为例,在“动态DNS”页面,选择服务提供者为花生壳,输入在花生壳注册的用户名和密码,然后点击登录。
如果路由器没有内置的花生壳动态DNS功能,则需要在花生壳网站下载花生壳客户端软件,安装(可不必安装附带的“向日葵”组件)后使用前面申请的花生壳帐户名和密码进行登录,登录后即可使用免费域名。
5、设置端口映射
仍以TL-WR340G 54M型号的无线路由器为例,在“转发规则-虚拟服务器”页面点击“添加新条目”,在新条目的页面中,设置端口号为项目组SVN服务器的访问端口号,设置IP地址为该路由器分配给项目组SVN服务器的内网IP地址,状态为“生效”,然后保存。
然后你就可以在互联网上通过你申请的免费域名(如“abcdegicpnet”)代替IP地址来访问SVN服务器了。
至于如何架设基于Apache的SVN服务器这个就不用细讲了吧?
0条评论