SVN服务配置(Windows|Ubuntu)

来源:互联网 发布:图像质量评价数据库 编辑:程序博客网 时间:2024/05/19 22:46
转自:http://luveelin.blog.163.com/blog/static/1194923412012534161238/
官方文档:http://wiki.ubuntu.org.cn/SubVersion

一、在ubuntu下配置svn服务器

1.在Ubuntu软件中心搜索subversion安装或者在终端输入apt-get install subversion;

2.创建SVN库:以root身份输入命令svnadmin create /home/svn/svnrepos/(/home/svn/svnrepos/为库所在目录);

二、在windows下配置svn服务器

windows系统使我们经常使用的操作系统怎么才能使用我们现在经常使用的操作系统不变的情况下继续我们的SVN之旅,我们在综合了好动种方法的同时感觉这些内容非常贴近我们SVN在Windows种的应用与配置.

1.下载文件,

下载最新版本subversion,我这里选择svn-1.4.5-setup.exe

下载 "Subversion Windows Service" 软件包

下载 TortoiseSVN shell integration utility

2.安装Subversion 服务器

由于我下载的是setup.exe版本,安装程序安装后会自动设置系统变量.如果你下载的是zip版就需要手动设置系统变量.

setup.exe版直接安装就可以了.安装到D:/Program Files/Subversion

首先创建SVN储存库(repository)

svnadmin create F:/svn/


cmd/${svn_home}/bin
svnadmin create svnrepos/(仓库目录名)
=========================================================================================================

三、启动svn服务和配置(windows和ubuntu)
svnserve d -rsvnrepos(-d 后台运行,-r 超级管理员的身份,my_first_store 共享的仓库目录名)
(配置下用户环境变量可以再任何地方创建)
SVN可以配置入APACHE服务器,但也可以自己通过cmd运行,配置完成
svnserve.conf 主服务文件
authz 权限文件
passwd 用户密码
文件,再启动服务即可

创建服务 svnadmin create MyStore1 ------------创建版本库名MyStore1的库
注意:若要启动两个svn服务器,则要指明端口,默认的服务器端口是3690。
    svnserve -d -r /home/svn/svnrepos/   (等价于)    svnserve -d  --listen-port=3690  -r /home/svn/svnrepos/
   若要启动第二个服务器,则可svnserve -d  --listen-port=3691   -r /home/svn/MyStore1,但同时后面在checkout时要指明第二个服务器 的端口,如  svn co  svn://192.168.1.65:3691/MyStore1

查看测试状态:可以参考(http://boyun.sh.cn/blog/?p=688),如下3种测试状态


(具体参数见: svnserve -help)

接下来,服务启动完成.值得注意到几个地方:

.配置SVN服务器

(这个位置就是在你建储存库的地方Windows(F:/svn/my_first_store)或者ubuntu(/home/my_first_store)

打开/conf/目录,打开svnserve.conf找到一下两句:

# anon-access = read
# auth-access = write

# password-db = passwd

# authz-db = authz

去之每行开头的#,

同样打开passwd文件,将

# [users]

# harry = harryssecret

# sally = sallyssecret

       格式为“用户名 = 密码”,如可插入一行:admin = admin888,即为系统添加一个用户名为admin,密码为admin888的用户

还有打开auth文件,配置用户权限,

[/]

admin=rw

1.所有文件的#去掉以后,内容要向左顶格,不能有空格
2.authz里面可以 配置权限组[groups],具体目录权限[/],库目录权限[MyStore1:/] (MyStore1为自己的库名)
3.客户端访问的时候 svn://192.168.1.101 登录,然后根据权限,可以在相应的目录下读写.

四 、导入导出project                                                    (第四步:权限设完导文件)
  导入:svn import -m "Import rails project hilog" /home/username/workspace/hilog svn://192.168.1.65/repos/
注意:导完文件(包含目录)后,就与原始导入目录/home/username/workspace/hilog无关,即“过河拆桥”。因此,本地客户端使用也需要下面的步骤。
  导出:svn co svn://192.168.1.65/repos/    <=>  svn co svn://192.168.1.65:3690/repos/
说明:其实,该步骤属于客户端的操作,写在这里是因为假如你只是搭建一个供你自己在本地使用的svn服务器,那么你的机器既是svn服务器,又是svn客户端。你若要在本地同步svn服务器的数据的话,也要执行checkout等客户端命令。

    ok,可以用了!checkout不需要认证,checkin需要。 
    这是使用Subversion自带的svn协议和svnserve工具简单的搭建svn服务器,还可以结合Apache搭建http://和 https://协议的svn服务器及安装Trac



特别注意:

其中,trunk,branches,tags目录并不是必须的,但多数人习惯这样,所以最好不要标新立异,这些目录是我们自己创建的,自建库本身没有这些目录.具体可以参见参考blog1:

在项目开发初期,可以仅仅使用trunk来管理代码,不过一旦项目发展起来,开发时就不应该直接操作trunk了,此时应该使用branches来管理代码,比如可以使用下面的命令建立一个名为1.x的branches:

svn copy svn://server/project/trunk svn://server/project/branches/1.x

开发工作都在branches中完成,一旦完成了编码,就可以把代码合并到trunk中去:

先要查查branches是什么时候创建的:

svn log --stop-on-copy svn://server/project/branches/1.x

假设查到的版本号是<version>, 然后进入到trunk工作拷贝中,执行:

svn merge -r <version>:HEAD svn://server/project/branches/1.x

最后提交即可:

svn commit

这还不算完,此时应该在tags里发布这个新版本(比如说版本号是1.0):

svn copy svn://server/project/trunk svn://server/project/tags/1.0

为了记牢一点,再唠叨一下trunk,branches,tags的用途:

trunk:仅保存最新的稳定代码,代码的改变尽可能通过branches来merge,而不要手动commit代码。
branches:用来管理代码的日常开发,可以手动commit代码。
tags:仅保存各个版本的代码快照,比如类似版本:1.0,1.1,1.2等等。
原创粉丝点击