ubuntu下配置svn服务器到方法

来源:互联网 发布:2016淘宝最近查的严 编辑:程序博客网 时间:2024/05/22 15:12
本节我们讲解一下Ubuntu下SVN服务器环境配置问题,在这里和大家分享一下,希望通过本节的学习大家能够掌握多种SVN服务器搭建方法。
平时的团队开发,少不了要用一个协作工具。对于以前,无疑cvs是个无错的选择(像IBM的全球代码维护)。但是,科技在发展吗,现在有了更好的svn了,所以直接就是svn吧。有关svn的具体信息可以上它的官网或www.subversion.org.cn,网上关于svn的也不少,不过感觉大都出自一处,也不知道quote的人真的试过没有。当然,学习吗,但个人感觉学完人家的东西一定要有自己的体会。下面是我的一个简单的配置过程。
首先,肯定是svn的安装,这个很简单:
sudo apt-get install subversion
sudo apt-get install libapache2-svn
(这个是和apache配合使用的,apache的安装就不说了)
完成安装后,给系统添加一个用户组(如svn),把想要加入这个组的加一下(至少要把你自己加进吧)。
显然,像代码维护,版本控制这种东西,肯定是cs结构的。所以下面先从svn服务器的配置说起。
svn服务器环境配置和简单管理
svn服务器端的配置主要是一个资源库的创建,这个资源库可以就一个,也可以是一个树状结构的(不建议使用森林结构)。我想创建一个test资源库,并把它放在/usr/local/svn下(资源库一般都放在/usr/localor/home下):
$cd /usr/local/
$sudo mkdir svn
$sudo mkdir svn/test
$sudo chown -R root:svn svn/
$sudo chmod -Rg+rws svn/

准备工作做好了,下面就是创建资源库了:
$sudosvnadmincreate/usr/local/svn/test
好了,这样一个资源库就建好了,很简单,如果你要ls/usr/local/svn/test一下,就会发现出现了一些文件和文件夹(如,confdb等),它们的作用就不说了,去org上看吧。
别急,这时你还要做些工作
$sudo chown -R root:svn svn/
$sudo chmod -R g+rws svn/
如果没有这个,接下来就可能会出错,除非你是root。
还有一些好使的工具,如svnlook,svnadmin,svndumpfilter,他们涉及到svn资源库管理的方方面面,很强大,这里不介绍了,用的时候就查吧www.subversion.org.cn/svnbook。需要注意的是,这些管理工具的使用,后面跟的是绝对路径,不要和下面客户端的所使用路径混淆。
svn客户端的使用
Ubuntu下SVN服务器环境配置客户端使用,svn客户端就是用来访问操作资源库资源的,它有多方式,如直接的file访问,自带协议的访问,http,https等待。这里只介绍两种,即file直接访问和自带协议的访问。
直接访问
所谓直接访问就是通过命令行直接对资源库进行访问。下面是一些例子:
我在我的家目录下有个workspace文件夹,下面有个用eclipse创建的简单工程叫com.sun.yangsq。我想把他维护到资源库中
$cd workspace
$svn import com.sun.yangsqfile:///usr/local/svn/test/com.sun.yangsq/trunk -m"testimport"
这样,这个工程就被import到资源库了。
如果想查看一下资源库的信息,可以使用
$svn listfile:///usr/local/svn/test/
如果想查看log信息,可以使用
$svn logfile:///usr/local/svn/test/
此外,svn还有好多的命令可以使用,如checkout(co),diff,move,delete,add等等,上网查去吧。
自带协议(svn://)的使用subversion自带了一种访问协议,很好用。但是,如果要使用这种协议,需要启动svnserve,这也很简单,如下:
本节我们讲解一下Ubuntu下SVN服务器环境配置问题,在这里和大家分享一下,希望通过本节的学习大家能够掌握多种SVN服务器搭建方法。
平时的团队开发,少不了要用一个协作工具。对于以前,无疑cvs是个无错的选择(像IBM的全球代码维护)。但是,科技在发展吗,现在有了更好的svn了,所以直接就是svn吧。有关svn的具体信息可以上它的官网或www.subversion.org.cn,网上关于svn的也不少,不过感觉大都出自一处,也不知道quote的人真的试过没有。当然,学习吗,但个人感觉学完人家的东西一定要有自己的体会。下面是我的一个简单的配置过程。
首先,肯定是svn的安装,这个很简单:
sudoapt-getinstallsubversion
sudoapt-getinstalllibapache2-svn(这个是和apache配合使用的,apache的安装就不说了)
完成安装后,给系统添加一个用户组(如svn),把想要加入这个组的加一下(至少要把你自己加进吧)。
显然,像代码维护,版本控制这种东西,肯定是cs结构的。所以下面先从svn服务器的配置说起。
svn服务器环境配置和简单管理
svn服务器端的配置主要是一个资源库的创建,这个资源库可以就一个,也可以是一个树状结构的(不建议使用森林结构)。我想创建一个test资源库,并把它放在/usr/local/svn下(资源库一般都放在/usr/localor/home下):
$cd/usr/local/
$sudomkdirsvn
$sudomkdirsvn/test
$sudochown-Rroot:svnsvn/
$sudochmod-Rg+rwssvn/
准备工作做好了,下面就是创建资源库了:
$sudosvnadmincreate/usr/local/svn/test
好了,这样一个资源库就建好了,很简单,如果你要ls/usr/local/svn/test一下,就会发现出现了一些文件和文件夹(如,confdb等),它们的作用就不说了,去org上看吧。
别急,这时你还要做些工作
$sudochown-Rroot:svnsvn/
$sudochmod-Rg+rwssvn/
如果没有这个,接下来就可能会出错,除非你是root。
还有一些好使的工具,如svnlook,svnadmin,svndumpfilter,他们涉及到svn资源库管理的方方面面,很强大,这里不介绍了,用的时候就查吧www.subversion.org.cn/svnbook。需要注意的是,这些管理工具的使用,后面跟的是绝对路径,不要和下面客户端的所使用路径混淆。
svn客户端的使用
Ubuntu下SVN服务器环境配置客户端使用,svn客户端就是用来访问操作资源库资源的,它有多方式,如直接的file访问,自带协议的访问,http,https等待。这里只介绍两种,即file直接访问和自带协议的访问。
直接访问
所谓直接访问就是通过命令行直接对资源库进行访问。下面是一些例子:
我在我的家目录下有个workspace文件夹,下面有个用eclipse创建的简单工程叫com.sun.yangsq。我想把他维护到资源库中
$cd workspace
$svn import com.sun.yangsqfile:///usr/local/svn/test/com.sun.yangsq/trunk-m"testimport"
这样,这个工程就被import到资源库了。
如果想查看一下资源库的信息,可以使用
$svn listfile:///usr/local/svn/test/
如果想查看log信息,可以使用
$svn logfile:///usr/local/svn/test/
此外,svn还有好多的命令可以使用,如checkout(co),diff,move,delete,add等等,上网查去吧。
自带协议(svn://)的使用subversion自带了一种访问协议,很好用。但是,如果要使用这种协议,需要启动svnserve,这也很简单,如下:
$svn serve-d这样就把本地的所有资源发到了网上,默认3690端口。访问时使用的路径如:
svn://ip/usr/local/svn/test/.....(这个ip不用带端口)
如果只想发布某个资源,可以使用
$svnserve-d-r/usr/local/svn/test
访问时使用的路径如:svn://ip/com.sun.yangsq如果要checkout,可以$svncheckoutsvn://ip/com.sun.yangsq
需要注意的是,客户端在使用类似svn,http://这种网络协议访问资源时(即通过svnserve进程),会通过一定的权限验证,这种验证是通过资源的一些配置文件设定的。如在本例中,这些配置文件放在了/usr/local/svn/test/conf/下,包括三个authz,passwd,svnserve.conf。这三个文件的配置就不详谈了。另外的几种客户端方式如http也不介绍了,svnbook上去看,都有。
如果想通过网络方式,即svn,http等访问(推荐使用这种方式,而不是file://方式),必须要把svnserve进程启动,如果你不小心把机器重新启动了,一定要手动把它再启动一边。svn确实很好使,eclipse也有它的插件(叫sublipse),很方便。Ubuntu下SVN服务器环境配置本节讲解完毕。这样就把本地的所有资源发到了网上,默认3690端口。访问时使用的路径如:
svn://ip/usr/local/svn/test/.....(这个ip不用带端口)
如果只想发布某个资源,可以使用
$svnserve-d-r/usr/local/svn/test
访问时使用的路径如:svn://ip/com.sun.yangsq如果要checkout,可以$svncheckoutsvn://ip/com.sun.yangsq
需要注意的是,客户端在使用类似svn,http://这种网络协议访问资源时(即通过svnserve进程),会通过一定的权限验证,这种验证是通过资源的一些配置文件设定的。如在本例中,这些配置文件放在了/usr/local/svn/test/conf/下,包括三个authz,passwd,svnserve.conf。这三个文件的配置就不详谈了。另外的几种客户端方式如http也不介绍了,svnbook上去看,都有。

如果想通过网络方式,即svn,http等访问(推荐使用这种方式,而不是file://方式),必须要把svnserve进程启动,如果你不小心把机器重新启动了,一定要手动把它再启动一边。svn确实很好使,eclipse也有它的插件(叫sublipse),很方便。Ubuntu下SVN服务器环境配置本节讲解完毕。

------------------------------------------------------------------------------------------------------

今天重新安装了Visual SVN Server,把已有的Repository入后,重新check out一数据仓库,结果在提交的时候出现以下错误:
Error: Can’t open ‘/home/svn/db/txn-current-lock’: 拒绝访问
     在网上搜了好多资料,都说是权限的问题。
“这 种错误比较常见,而且一开始我一直以为是自己没有配置好认证权限的问题,我反复的配置10,11两步,结果还是没解决,我在windows下用 tortoiseSVN客户端一直无法commit和添加文件,老是弹出这个错误。可我在linux下可以用
#svn import …. 这个命令,我一直很纳闷,后来经过琢磨和上网搜索,终于解决。问题在于我的/home/svn目录下的一切子目录和文件都是属于root用户的,而我每次 在linux下也是以root 用户import的,所以一直没有问题。可在windows从客户端访问就有问题了。
解决办法: 把/home/svn目录下的所有文件和子目录添加读写权限
#chmod –R o+rw /home/svn
Okay, 问题解决。现在可以方便从windows下面checkout和commit了。”
    这是网上找到资料,因为我的环境就是windows下的,后来折腾了半天,发现是只有拥有管理器权限的人才能对目录Repository进行完全控制,而在windows从客户端访问的话因为是Users用户组的,对Repository没有修改权限。
    在服务器上把Users对Repository的完全控制权限加上就OK了。

原创粉丝点击