在linux下安装配置svn独立服务器共24页

在linux下安装配置svn独立服务器共24页
在linux下安装配置svn独立服务器共24页

subversion(以下简称svn)是近年来崛起的版本管理工具,

是cvs的接班人。

svn服务器有2种运行方式:独立服务器和借助apache。2

种方式各有利弊。

svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式

更安全一点。

1. svn服务器安装操作系统: Redhat Linux

AS4安装包获取:下载

https://www.360docs.net/doc/655114739.html,/downloads/subversion-1

.4.0.tar.gz和

https://www.360docs.net/doc/655114739.html,/downloads/subversion-d

eps-1.4.0.tar.gz。编译:

以root用户登录。

将subversion-1.4.0.tar.gz和

subversion-deps-1.4.0.tar.gz传到服务器。

tar xfvz subversion-1.4.0.tar.gz

tar xfvz subversion-deps-1.4.0.tar.gz

cd subversion-1.4.0

./configure --prefix=/opt/svn --without-berkeley-db

--with-zlib

(注:以svnserve方式运行,不加apache编译参数。以fsfs 格式存储版本库,不编译berkeley-db)

make clean

make

make install

vi /etc/profile,在/etc/profile最后加入:

PATH=$PATH:/opt/svn/bin

export PATH

测试:

svnserve --version

如果显示如下,安装成功:

svnserve, version 1.4.0 (r21228)

compiled Oct 12 2006, 10:18:56Copyright (C) 2000-2006

CollabNet.

Subversion is open source software, see

https://www.360docs.net/doc/655114739.html,/

This product includes software developed by CollabNet (http://Collab/).The following repository back-end (FS) modules are available:* fs_fs : Module for working with a plain file (FSFS) repository.

2. svn配置

建立版本库目录,可建多个:

mkdir -p /opt/svndata/repos1

mkdir -p /opt/svndata/repos2

建立版本库:

svnadmin create /opt/svndata/repos1

svnadmin create /opt/svndata/repos2

修改版本库配置文件:

版本库1:

vi /opt/svndata/repos1/conf/svnserve.conf

内容修改为:

[general]

anon-access = none

auth-access = write

password-db = /opt/svn/conf/pwd.conf

authz-db = /opt/svn/conf/authz.conf

realm = repos1

版本库2:

vi /opt/svndata/repos2/conf/svnserve.conf内容修改为:

[general]

anon-access = none

auth-access = write

password-db = /opt/svn/conf/pwd.conf

authz-db = /opt/svn/conf/authz.conf

realm = repos2

即除realm = repos2外,其他与版本库1配置文件完全相

同。如果有更多的版本库,

依此类推。配置允许访问的用户:

vi /opt/svn/conf/pwd.conf

为了简化配置,2个版本库共用1个用户配置文件。如有必要,也可以分开。注意:对用户配置文件的修改立即生效,不必重启svn。文件格式如下:

[users]

<用户1> = <密码1>

<用户2> = <密码2>

其中,[users]是必须的。下面列出要访问svn的用户,每

个用户一行。示例:

[users]

alan = password

king = hello

配置用户访问权限:

vi /opt/svn/conf/authz.conf

为了简化配置,3个版本库共用1个权限配置文

件/opt/svn/conf/pwd.conf。如有必要,也可以分开。文件中定义用户组和版本库目录权限。注意:

* 权限配置文件中出现的用户名必须已在用户配置文件中

定义。

* 对权限配置文件的修改立即生效,不必重启svn。用户组

格式:

[groups]

<用户组名> = <用户1>,<用户2>

其中,1个用户组可以包含1个或多个用户,用户间以逗号

分隔。版本库目录格式:

[<版本库>:/项目/目录]

@<用户组名> = <权限>

<用户名> = <权限> 其中,方框号内部分可以有多种写

法:

/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/opt/svndata。这样,/就是表示对全部版本库

设置权限。

repos1:/,表示对版本库1设置权限

repos2:/occi, ,表示对版本库2中的occi项目设置权限repos2:/occi/aaa, ,表示对版本库2中的occi项目的aaa 目录设置权限权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,

空表示没有任何权限。示例:

[groups]

admin = alan[/]

@admin = rw[repos1:/occi/aaa]

king = rw[repos2:/pass]

king =

删除无用文件:

rm /opt/svndata/repos1/conf/authz

rm /opt/svndata/repos1/conf/passwd

rm /opt/svndata/repos2/conf/authz

rm /opt/svndata/repos2/conf/passwd

3. 启动svn

建立启动svn的用户:

useradd svn

passwd svn

根据提示为用户svn设置密码允许用户svn访问版本库: chown –R svn:svn /opt/svndata

chown –R svn:svn /opt/data启动svn:

su - svn -c "svnserve -d --listen-port 9999 -r

/opt/svndata"

其中:

su – svn表示以用户svn的身份启动svn

-d表示以daemon方式(后台运行)运行

--listen-port 9999表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root

权限

-r /opt/svndata指定根目录是/opt/svndata检查: ps –ef|grep svnserve如果显示如下,即为启动成功:svn 6941 1 0 15:07 ? 00:00:00 svnserve -d --listen-port 9999 -r

/opt/svndata参考资料:

http://gbunix/htmldata/2006_07/15/27/article_1337_1

.html

http://iusesvn/bbs/thread-157-1-1.html

http://16hot.blog.isyi/post/1/552

检测服务是否开启:netstat -ntlp如果看到3690的端口正常开放了,证明SVN启动了。]

下面是机器上的端口显示:

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local

Address Foreign

Address State

PID/Program name

tcp 0 0 0.0.0.0:32769 0.0.0.0:*

LISTEN

2611/rpc.statd

tcp 0 0 0.0.0.0:111 0.0.0.0:*

LISTEN

2591/portmap

tcp 0 0 0.0.0.0:113 0.0.0.0:*

LISTEN

2827/xinetd

tcp 0 0 127.0.0.1:631 0.0.0.0:*

LISTEN

4860/cupsd

tcp 0 0 127.0.0.1:25 0.0.0.0:*

LISTEN

2846/sendmail: acce

tcp 0 0 :::3690

:::*

LISTEN

5513/svnserve

tcp 0 0 :::22

:::*

LISTEN

2812/sshd

下面这个就是了:

tcp 0 0 :::3690

:::*

LISTEN

5513/svnserve

好了,svn已经架起来了

在 Linux/Apache 2.2 上配置SVN服务器

准备,下载所需要文件.

检查已安装的 Apache2 是否已经安装了 mod_dav .

编译SVN,遇到的问题和解决方法

使用默认文件系统(fsfs) 保存数据

使用 Berkeley DB 保存数据

配置Apache和SVN,测试.

其它小结

从Windows平台上数据转移

配置文件,使用其支持对文件中的 $Id$ 标签每次提交的时候自动更新版本信息.

基于路径的权限控制常用SVN命令

相关资源* 准备,下载所需要文件.

本文测试环境:ubuntu 6.06 LTS (kernel 2.6.15-25-k7,gcc-4.0.3) /ubuntu server (2.6.15-26-

server,gcc-4.0.4)

Subversion 1.3.2Apache 2.2.2最新的版本 Subversion 可以在这里找

到:

https://www.360docs.net/doc/655114739.html,/project_packages.html* 检查已安装的 Apache2 是否已经安装了

mod_dav .

如果已经成功安装了Apache,使用httpd -M 来查看有没有安装dav_module,如果没有的话必须附加

‘–enable-dav’ ‘–enable-dav-fs’ 两个参数重新编译 Apache,否则即使编译通过了svn,apache也

会启动不起来.如何编译 Apache 请参考我另外一篇文章.* 编译SVN,遇到的问题和解决方法.

使用默认的文件系统保存数据.

最终完整通过安装和测试的编译参数为:./configure --with-apxs=/usr/local/apache2/bin/apxs \

--with-apr=/home/src/server/httpd-2.2.2/srclib/apr \

--with-apr-util=/home/src/server/httpd-2.2.2/srclib/apr-utilmak e

make install其中 /home/src/server/ 为 httpd-2.2.2 源代码所在文件夹,根据实际情况调整一下.◆

遇到问题:1) --with-apr 和 --with-apr-util 如果没有加上的话,即使编译成功了也会出现Can't set position pointer in file ‘/home/svn/repos/db/revs/0′: Invalid argument

这样的错误提示.2) 暂时不能使用 Berkeley DB [* 已解决]svn保存文件更新数据库的方法有两个,一种是直接使用 fs (filesystem)来保存,另一种是通过Oracle提供支持的开源数据库 Berkeley DB 进行保存。但是如果加上–with-berkeley-db=/usr/local/BerkeleyDB.4.4 就会configure时就会报错.configure: error: APR-UTIL was installed independently, it won’t be possible to use the specified Berkeley DB: /usr/local/BerkeleyDB.4.4我想 apr-unit 暂时不支持吧,我们就用默认的fs好了.3) 在make 的时候可能会遇到缺少srclib/apr/https://www.360docs.net/doc/655114739.html,,srclib/apr-util/https://www.360docs.net/doc/655114739.html, 两个文件,找不到而make error.解决办法:/usr/local/apache2/lib/ 中找到,将其复制到源代码文件夹相应的位置中.Update!!使用 BerkeleyDB 保存数据.

1) 安装 BerkeleyDBcd /usr/local/src

wget http://downloads.sleepycat/db-4.3.29.tar.gztar xzvf db-4.3.29.tar.gz

cd /usr/local/src/db-4.3.29/build_unix

../dist/configure --enable-compat185

make

make install2) 更新apr和apr-util源代码# 清理编译后的.la文件

cd /usr/local/src/httpd-2.2.3make cleancd /usr/local/src/subversion-1.3.2

rm -rf apr

rm -rf apr-util

cp -rf /usr/local/src/httpd-2.2.3/srclib/apr ./

cp -rf /usr/local/src/httpd-2.2.3/srclib/apr-util/ ./3) 编译安装./configure --with-

apxs=/usr/local/apache2/bin/apxs \

--with-berkeley-db=/usr/local/BerkeleyDB.4.3 \

--with-ssl

make

make install

◆遇到问题:

1) BerkeleyDB 版本不能大于 4.3.否则同样会出现以下错误.configure: error: APR-UTIL was

installed independently, i t won’t be

possible to use the specified Berkeley DB: /usr/local/BerkeleyDB.4.4

主要是apr-util 暂时不支持4.4的版本.2) 必须更新apr,apr-util 源

代码.

subversion-1.3.2 自带的 apr-util 的版本是0.9.6的,必须升级为1.2.7 虽然能编译过去。但在 svn

checkout 的时候会提示svn: REPORT request failed on ‘/!svn/vcc/default’

svn: REPORT of ‘/!svn/vcc/default’: Could not read status line: connection was closed by

server.

这个问题困扰了我很长时间,Google和官方论坛都无结果。后来昨天竟然自己无意中解决了,感动的得哭了:)* 配置Apache和SVN,测试

成功编译svn后会在httpd.conf 中自动加上LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

两个模块,没有的话,自行加上或检测是否真的编译成功.假设我们现在要将一个名为 Lair 的项目导入

到SVN中1). Apache的配置在conf/httpd.conf 或conf/extra/httpd-vhosts.conf 中加入

DAV svn

SVNPath /home/svn/Lair

可以参考以下apache的配置,实现数据加密传输,用户身份验证.Listen 443AddType

application/x-x509-ca-cert .crt

AddType application/x-pkcs7-crl .crl.SSLPassPhraseDialog exec:/etc/sendsslpwd

SSLSessionCache shmcb:/usr/local/apache2/logs/ssl_scache(512000) SSLSessionCacheTimeout 300

SSLMutex file:/usr/local/apache2/logs/ssl_mutex

DocumentRoot /var/SVNRoot

ServerName svn.yousite:443

ServerAdmin webmaster@yousite

DAV svn

SVNPath /var/SVNRoot

AuthzSVNAccessFile /etc/svnserve.conf

Satisfy Any

AuthType Basic

AuthName “yousite SVN Repository”

AuthUserFile /etc/httpd-passwords.txt

Require valid-user

SSLEngine on

SSLCipherSuite

ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNUL L

SSLCertificateFile /etc/ssl/server.crt

SSLCertificateKeyFile /etc/ssl/server.key更详细的配置说明文档

http://svnbook.red-bean/nightly/en/svn.ref.mod_dav_svn.conf.htm l2). 配置,并且测试SVN,创建一个新用户,用了保存仓库.

useradd -m svn

创建一个新模块su daemon (apache是以daemon用户运行的,所以要切换身份,否则可能会报目录访问权限错误)

svnadmin create --fs-type fsfs /home/svn/Lair

导入原来的项目svn import /var/www/Lair http://localhost/svn/Lair -m ‘Initial import’重新建

立工作目录rm -rf /var/www/Lair (注意备份!!)

svn checkout http://localhost/svn/Lair

测试打开 http://localhost/svn/Lair如能看到一个你项目录列表,说明您成功了。

* 其它小结

数据转移:从 Windows 平台 SVN 服务器转移

如果windows svn储存的格式也是dbd的话,直接将SVN的文件夹copy 过来即可.然后

执行 svnadmin recover /var/SVNRoot 检查一下数据库是否损坏.最后注意权限,确保 db 目录下的所有

文件可写。chmod 755 db

chmod 666 db/*

否则checkout时出现以下错误,多数是因为文件或者目录权限问题引起的,可以尝试用 chown 或者

chmod 命令修改一下权限Could not open the requested SVN

filesystem

Could not open the requested SVN filesystem

另外一种方法没有测试过,原理大致和mysqldump 一样,将svn导出为文本文件,然

后重新导入,好处是可以避免因为存储格式不同而导致的数据转移困难。# dump data to file

(assuming a repo @ c:\repo):svnadmin dump c:\repo > c:\repo.txt # Copy the file over to linux:

mkdir /repo

svnadmin create /repo

svnadmin load /repo < /repo.txt

设置访问控制当 httpd.conf 中设置 AuthzSVNAccessFile 时,

可以设置不同用户对不同目录的访问控制.以下是一个例子.[groups] root = admin.root

web = user1,user2

soft = user3,user4[/]

@root = rw[/www]@web = rw[/soft]

@soft = rw详细的说明文档:http://svnbook.red-bean/nightly/en/svn.serverconfig.httpd.html

配置文件,使用其支持对文件中的 $Id$ 标签每次提交的时候自动更新版本信息(自动属性).Windows

: C:\Documents and Settings\%USERNAME%\Application Data\Subversion\config

Linux : ~\.subversion\config[miscellany]enable-auto-props = yes

[auto-props]

*.php=svn:keywords=Id

*.html=svn:keywords=Id>> 关于自动属性的更高级讨论■ 几条常用svn 命令

svn update

svn add “filename”

svn commit———————–

Change Log:2006-08-14 neon库subversion已经自带,不需要在单独安装,添加-with-ssl即可使用svn对ssl支持.

2006-08-10 补充自动属性的说明.

2006-08-08 加入关于目录访问验证的说明.

2006-08-07 httpd,2.2.3测试依然有效,解决bdb数据库的支持问题,添加从Windows到Linux下的数据转移方案。

2006-07-25 看到到.声仔对Can’t set position pointer in file 另一种解决方案,我当时也测试了,好像没有成功。不想用apache源代码编译的朋友可以也测试一下

Linux下svn搭建配置流程

一、源文件编译安装。源文件共两个,为:

1. 下载subversion源文件 subversion-1.6.1.tar.gz

http://d136.d.iask/fs/800/1/187a3087a49b71b42ba4d4a300b62787460 11506/gz/subversion-1.6.1.tar.gz

2. 下载subversion依赖文件 subversion-deps-1.6.1.tar.gz

http://d136.d.iask/fs/800/1/48f59892a78763e7215ae94628c7e97f460 11512/gz/subversion-deps-1.6.1.tar.gz

注意:两个文件版本必须一致,否则很容易产生问题.

二、解压文件,并编译配置 subversion

1.解压文件

[root@DB2 tfhudong]# tar zxf subversion-1.6.1.tar.gz [root@DB2 tfhudong]# tar zxf subversion-deps-1.6.1.tar.gz

注意:务必将两个文件解压到相同的目录下,否则会产生下面提到过的问题。

2.进入解压后的subversion目录

[root@DB2 ~]# cd /usr/local/subversion-1.6.1/

3.创建安装目录

[root@DB2 subversion-1.6.1]# mkdir /usr/local/svn

4.编译安装subversion

(1)./configure --prifix=/usr/local/svn

##svn有两种模式,一种FSFS为默认模式,另一种为BDB模式,建议使用FSFS。

如果出现错误:configure: error: no suitable apr found

则是因为上面的依赖文件没有减压到相同目录下导致。。。

(2)编译安装

[root@DB2 subversion-1.6.1]# make

[root@DB2 subversion-1.6.1]# make install

LINUX下SVN安装

环境 1. 安装Apache 2.2.14 2. 安装Subversion 1.6.6 3. 安装后的系统设置 4. Apache设置 5. svn库的配置 6. 运行SVN服务器 Created by okala at 2009-12-25 环境: Red Hat Enterprise Linux Server release 5.3 (Tikanga) httpd-2.2.14.tar.gz subversion-1.6.6.tar.gz 到官网https://www.360docs.net/doc/655114739.html,/ 下载当前最新的稳定版本subversion-1.6.6.tar.gz 到官网https://www.360docs.net/doc/655114739.html,/ 下载当前最新的稳定版本httpd-2.2.14.tar.gz 1. 安装Apache 2.2.14 用root账号执行以下命令: 引用 tar zxf httpd-2.2.14.tar.gz #解压到当前目录 引用 cd httpd-2.2.14 #进入解压后的目录 引用

./configure --prefix=/local/svnroot/apache2 --enable-so --enable-mods-shared=all --enable-dav=share --enable-dav-fs --with-ldap --enable-ldap --enable-authnz-ldap --enable-authn-alias #定义安装的目标路径(可据自己需要修改),使能LDAP 引用 make #编译 引用 make install #安装 引用 /local/svnroot/apache2/bin/apachectl start #启动Apache 用IE访问以下网址,http://hostIP/,如果提示It works!,则Apache安装成功。 然后就可以先停止Apache了: 引用 /local/svnroot/apache2/bin/apachectl stop #停止Apache 2. 安装Subversion 1.6.6 用root账号执行以下命令: 引用 tar zxf subversion-1.6.6.tar.gz #解压到当前目录 引用 cd subversion-1.6.6

linux下搭建svn服务器(doc 8页)

linux下搭建svn服务器(doc 8页)

Linux下搭建SVN服务器环境(svnserve方式) 环境:redhat5(apr.apr-util.zlib.subversion的压缩文件都是放在/usr/linuxsvn目录下,下面的解压命令tar zvxf解压出来的文件就直接是放在这个目录下,文件名跟压缩文件的名字是一样的) 一、安装apr、apr-util跟zlib 1、下载apr、apr-util与zlib apr-1.3.3.tar.gz apr-util-1.3.4.tar.gz zlib-1.2.3.tar.gz openssl-0.9.8k.tar.gz httpd-2.2.9.tar.bz2 libxml2-2.7.3.tar.gz 2、解压 tar zvxf apr-1.3.3.tar.gz

打开浏览器输入http://服务器ip 如果出现 It Works! Apache安装成功 如果出现这个错误Invalid command 'AuthDigestProvider', perhaps misspelled or defined by a module not included in the server configuration /usr/local/apache2/conf/extra/httpd-dav.conf 提示这个文件31行有问题,那么你就 Vi /usr/local/apache2/conf/extra/httpd-dav.conf 找到31行,把这个注释掉# AuthDigestProvider file 这样就ok了! cd openssl-0.9.8k ./config --prefix=/usr/local/ssl/ make make install cd libxml2-2.7.3 vi INSTALL ./configure --help ./configure make make install cd openssl-0.9.8k ./config ./config -t

UNIX LINUX开发环境使用SVN方法探讨

Unix&Linux开发环境使用SVN方法探讨一、 DAS现有的工作模式: 二、使用SVN的工作方式

三、DAS开发环境 DAS系统的开发环境种类多,常用到有Solaris、AIX、HP-UX、Redhat等,SVN命令行支持所有的开发平台,可以通过SVN命令快速执行操作。也可以通过JAVA的方式,运行在Eclipse或者第三方图形工具。 SVN支持平台列表 四、SVN客户端常用命令简介: 1、检出 svn co http://路径(目录或文件的全路径)[本地目录全路径] --username用户名--password密码svn co svn://路径(目录或文件的全路径)[本地目录全路径] --username用户名--password密码 svn checkout http://路径(目录或文件的全路径)[本地目录全路径] --username用户名 svn checkout svn://路径(目录或文件的全路径)[本地目录全路径] --username用户名 注:如果不带--password参数传输密码的话,会提示输入密码,建议不要用明文的--password 选项。 其中username与password前是两个短线,不是一个。 不指定本地目录全路径,则检出到当前目录下。 例子: svn co svn://192.168.0.3/测试工具/home/testtools--username wzhnsc svn co http://192.168.0.3/test/testapp --username wzhnsc svn checkout svn://192.168.0.3/测试工具/home/testtools--username wzhnsc svn checkouthttp://192.168.0.3/test/testapp --username wzhnsc 2、导出(导出一个干净的不带.svn文件夹的目录树) svn export[-r版本号] http://路径(目录或文件的全路径) [本地目录全路径] --username用户名 svn export[-r版本号] svn://路径(目录或文件的全路径) [本地目录全路径] --username用户名 svn export本地检出的(即带有.svn文件夹的)目录全路径要导出的本地目录全路径注:第一种从版本库导出干净工作目录树的形式是指定URL, 如果指定了修订版本号,会导出相应的版本, 如果没有指定修订版本,则会导出最新的,导出到指定位置。 如果省略本地目录全路径,URL的最后一部分会作为本地目录的名字。

linux搭建svn服务器

Linux下SVN服务器搭建 一、下载软件: 所需软件: subversion-1.6.19.tar.bz2 apr-1.4.6.tar.bz2 apr-util-1.5.1.tar.bz2 sqlite-amalgamation-3.6.13.tar.gz sqlite比较新的版本这个后面会用到 TortoiseSVN-1.6.16.21511-x64-svn-1.6.17.msi(Windows 64位客户端软件) TortoiseSVN-1.6.16.21511-x86-svn-1.6.17.msi(Windows 32位位客户端软件) 二、开始安装: localhost ~ # tar vjxf apr-1.4.6.tar.bz2 localhost ~ # cd apr-1.4.6 localhost apr-1.4.6 # ./configure localhost apr-1.4.6 # make localhost apr-1.4.6 # make install localhost ~ # tar vjxf apr-util-1.5.1.tar.bz2 localhost ~ # cd apr-util-1.5.1 localhost apr-util-1.5.1 # ./configure –with-apr=/usr/local/apr/ localhost apr-util-1.5.1 # make localhost apr-util-1.5.1 # make install localhost ~ # tar vzxf sqlite-amalgamation-3.6.13.tar.gz localhost ~ # cd sqlite-3.6.13

SVN命令使用手册

SVN命令使用手册修改版本记录 M:修改A:添加D:删除

SVN命令使用 一、常用命令 1.Svnadmin create创建库 svnadmin create path 在windows版本上: D:\>svnadmin create test2 D:\> 通过dir来列出目录中文件,已经包含test2,如图1所示: 图1 说明此时已经成功建立 2.Svn import导入项目 svn import project_path svn_lib_path -m “comment” 举例: 假设有一个工程名称unismg,代码的文件目录是unicom; A、我们在D盘新建目录unismg,在此目录下新建三个文件目录,如图2所示: 图2

trunk中存放的是项目主线;branches中存放源码分支;tags存放在开发过程中做的标签。 B、我们将代码unicom放到d:\unismg\trunk\中 C、执行命令D:\>svn import d:\unismg file:///d:/test2/unismg -m "initial import unismg" 结果如图3所示: 图3 这样我们就将工程代码导入svn库中管理。此时删除D:\>unismg目录也没有关系,因为你的源代码已经在SVN库中管理了。 有人会有疑问,为什么我到test2目录中去找*.c文件怎么一个没有找到啊,是的SVN 管理代码,并不是简单的保存文件,而是利用bdb管理的,所以你看不到源码存在。 之后你可以使用后续的命令来工作了。 多说一句,关于svn_lib_path的几种形式: file:///直接版本访问(本地磁盘) http://通过配置subversion的Apache服务器的WebDAV协议 https://与http://相似,只不过增加了ssh协议 Svn://通过svnserver服务自定义的协议 Svn+ssh://与svn://相似,但是通过SSH协议封装 比如,联通在信网关在30.251linux服务器上,使用的是svnserver服务自定义的协议,那么,导入工程代码时应采用的命令是: svn import $path/proj/unismg svn://192.168.30.251:3482-m "initial import unismg" 3.Svn co: 将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 举例: svn co svn://192.168.30.251:3482/trunk/unicom 下面信息就是从库中下载的代码信息。

Vmware_linux_CentOS-6.6系统上安装SVN服务器端的方法及步骤

CentOS 6.6系统上安装SVN服务器端的方法及步骤 SVN其实就是Subversion,分为服务器端和客户端。之前在网上搜了很多方法,都有各种问题,经过自己搜集整理以及实际尝试,总算有个比较靠谱的方法。本文主要介绍CentOS 6.6系统上安装SVN服务器端的方法及步骤。 系统环境说明如下: 操作系统:Centos6.6 x86-64 SVN: subversion-1.8.11 1、检查是否安装了低版本的SVN rpm -qa | grep subversion 如果已安装SVN,则会返回版本信息,如:subversion-1.6.11-9.el6_4.i686 卸载旧版本SVN yum remove subversion 2、安装SVN yum –y install subversion 3、检查安装是否成功 svnserve --version 返回值: svnserve, version 1.8.11 compiled Jul 23 2013, 21:32:09 on i686-pc-linux-gnu Copyright (C) 2013 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see https://www.360docs.net/doc/655114739.html,/ The following repository back-end (FS) modules are available: * fs_fs : Module for working with a plain file (FSFS) repository. Cyrus SASL authentication is available. 4、代码库创建 mkdir -p /opt/svn/repositories svnadmin create /opt/svn/repositories 执行上面的命令后,自动建立repositories库,查看/opt/svn/repositories 文件夹发现包含了conf,db,format,hooks,locks, README.txt等文件,说明一个SVN库建立完成。 5、配置代码库 进入上面生成的文件夹conf下,进行配置

svn常用命令详解

一.SVN导出(check out 和export的区别) 1.check out跟check in对应,export跟import对应; 2.check out导出获得文件后,导出的文件仍处于SVN版本控制中,与版本库保持关 联,比如你可以进行Svn Update或者Svn Commit操作。同时导出文件夹下有一个.svn的隐藏文件夹,存储着一些版本的元数据信息。 3.export 简单导出一个版本的数据,导出的文件脱离SVN版本控制,修改后无进行 Update和Commit操作。导出文件夹下没有.svn目录。 二.linux下svn命令大全 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add*.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svn commit -m “LogMessage“[-N][--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)

例如:svn commit -m “add test file for my test“test.php 简写:svn ci 4、加锁/解锁 svn lock -m “LockMessage“[--force] PATH 例如:svn lock -m “lock test file“test.php svn unlock PATH 5、更新到某个版本 svn update -r m path 例如: svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。 svn update -r 200 test.php(将版本库中的文件test.php还原到版本200) svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit) 简写:svn up 6、查看文件或者目录状态 1)svn status path(目录下的文件和子目录的状态,正常状态不显示) 【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】 2)svn status -v path(显示文件和子目录状态) 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改

linux下搭建SVN服务器(局域网可用)-ver1.01

Linux SVN 搭建(ubuntu 10.04) 1、安装subversion软件 sudo apt-get install subversion 2、建立一个目录作为SVN代码库管理的根目录(例:/home/svnadmin/svnsources/),只是一个普通目录,实际上是通过svnserve –d –r /home/svnadmin/svnsources/启动服务后暴露给网内其它机器的一个服务接入点: mkdir /home/svnadmin/svnsources/ 3、在SVN代码库管理的根目录下(/home/svnadmin/svnsources/)下建立一个代码库(repo),名称为testrepo: svnadmin create /home/svnadmin/svnsources/testrepo 4、启动svn自带的svnserve服务供网内其它计算机使用: svnserve -d -r /home/svnadmin/svnsources 此时便可以在局域网中通过svn://192.168.0.142/testrepo来访问testrepo这个代码库的内容了注:可以加--listen-port参数来指定端口(默认为3690),如: svnserve -d --listen-port 3691 -r /home/svnadmin/svnsources启动服务 然后在局域网中通过svn://192.168.0.142:3691/testrepo来进行访问 5、建立一个目录(例:/home/gli/projectImport),把代码放置到主干(trunks)下,如project 为一份需要管理的代码: projectImport |--branches |--tags |--trunks |--project 注:这个并不是必须的,只是采用这种结构管理代码是比较合理的一种方式 6、然后将这个目录(/home/gli/projectImport)导入到testrepo中去管理: svn import -m"init testrepo" /home/gli/projectImport/ file:///home/svnadmin/svnsources/testrepo/ 7、拉出一个分支来进行开发(svn copy source destination): svn copy -m"init from trunks" file:///home/svnadmin/svnsources/testrepo/trunks/project file:///home/svnadmin/svnsources/testrepo/branches/project 注:其中source可以是本地工作副本,destination为代码库中的URL 8、当开发到一个稳定版本后或某个阶段后,需要打一些标签(tags)以方便管理: svn copy -m"init from trunks" file:///home/svnadmin/svnsources/testrepo/branches/project file:///home/svnadmin/svnsources/testrepo/tags/project 9、若有另一个项目需要管理,可重复步骤5到8来进行开发管理。

常用linux svn命令

linux下svn客户端常用命令: 1.svnadmin create path创建一个新的版本库,(path为你想创建版本库的目录路径,如创建版本库目录为cellsms:svnadmin create /home/c7mon/svn/cellsms)。 2.svn mkdir URL 创建目录,向版本库新添加一个目录,(立即提交,所以需要日志信息):如新增trunk目录:svn mkdir file:///home/c7mon/svn/cellsms/trunk -m "此目录的说明信息"。 svn mkdir newdir在工作拷贝下新建一个目录,如新增hello目录,即在工作拷贝(svn checkout数据的目录下):svn mkdir hello。 3.svn import URL向版本库导入数据,需要日志信息。如导入当前目录下wwm目录到版本库trunk目录中:svn import file:///home/c7mon/svn/cellsms/trunk/wwm -m "日志说明信息" 4.svn checkout URL导出一个工作拷贝,cd到你要存放导出数据的目录,如导出wwm 目录:svn checkout file:///home/c7mon/svn/cellsms/trunk/wwm,或svn checkout svn://192.168.3.33/home/c7mon/svn/cellsms/trunk/wwm。svn://方式需要用户名和密码,(svn co为svn checkout简写)。 5.svn commit 提交工作拷贝的修改到版本库中,如对wwm下的文件进行修改后提交:svn commit -m "",""可以为空,最好加上日志说明。svn ci 为其简写。 6.svn add file/dir新添加的文件或目录,此处dir为linux命令mkdir在工作拷贝下创建的目录,不是svn mkdir命令创建的目录,所以需要svn add预订添加。svn add需要在工作拷贝下执行,如在4中svn co出的工作拷贝目录wwm下新添加了hehe.c:svn add hehe.c。然后执行svn commit提交到版本库。 7.svn copy URL URL完全的服务器端拷贝,通常用在分支和标签。如wwm项目完成后发布版本wwm_1.0: svn copy file:///home/c7mon/svn/cellsms/trunk/wwm file:///home/c7mon/svn/cellsms/trunk/tags/wwm_1.0 -m "it's the wwm_1.0 for anhui" 。或svn copy svn://192.168.3.33/home/c7mon/svn/cellsms/trunk/wwm svn://192.168.3.33/home/c7mon/svn/cellsms/trunk/tags/wwm_1.0 -m "it's the wwm_1.0 for anhui"。(tags目录需提前在版本库中建好。) 如果wwm_1.0版本出现BUG,可以拷贝tags目录下的wwm_1.0到建好的branches目录下,然后svn co 出branches下的wwm_1.0进行修改。这样trunk目录下的wwm可以继续进行开发,而不会与branches下1.0版本的修改产生冲突。当branches下的wwm_1.0版本修复bug后,可以使用svn merge命令,将修改的部分合并到trunk下的wwm工程中。 8.svn list URL 显示path目录下的所有属于版本库的文件和目录(简写svn ls) 如列出cellsms下目录信息:svn list svn://192.168.3.33/home/c7mon/svn/cellsms

linux-SVN的介绍及使用方法

一、Linux-SVN的介绍及使用方法 1. SVN简介 SVN 是subversion简称,是一个开源的版本控制系统。我们在解bug过程中主要用于对解决某个bug而引起代码变动的情况(俗称patch)的提交,系统集成组在某一时间会取出SVN中一定阶段内提交的patch进行集成,从而更新系统的版本。 linux系统中安装svn,主要使用命令apt-get install subversion 2. SVN使用 2.1 从SVN服务器拷贝svn目录 命令:$ svn co http://255.255.255.255(IP地址)/svn/ 可先登录http://255.255.255.255/svn,输入用户名和密码(需在管理员处开通相应上传下载权限) ①svn add命令 用于将patch提交至本地版本库(加入版本控制),还未提交至远程服务器,不会更改远程(http://255.255.255.255/svn/)上的内容。另外,svn revert是撤销此次添加(这里不常用)。 $ svn add 007_fix_name_issue_000000.patch 该命令执行后,终端显示情况如下: ②svn commit命令 将本地版本中添加的文件上传到远程服务器上,更新服务器上的内容。 $ svn commit 007_fix_name_issue_000000.patch -m "fix name issue (as an example)" 其中-m 表示-message,“”中的内容表示该patch具体修改问题的描述信息,描述信息必不可少!有助于后续patch提交与否的验证。 该命令执行后,终端显示情况如下:

linux下svn管理员手册

1.安装apr tar xvfz apr-0.9.17.tar.gz ./configure 2.安装apr-util tar xvfz apr-util-0.9.15.tar.gz ./configure --with-apr=/usr/local/apr/ 3.安装subversion-1.5.3 ./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr/ --with-apr-util=/us r/local/apr-util/ 4.创建库文件所在的目录 mkdir /export/svncheck/ 创建版本库 mkdir /export/svncheck/版本库名 /usr/local/svn/bin/svnadmin create /export/svncheck/版本库名 5.启动SVN /usr/local/svn/bin/svnserve -d -r /export/svncheck/ 配置用户和权限 创建项目库同时也会建立自己的权限配置文件,权限配置目录: /export/svncheck/版本库名/conf/ 1. 修改svnserve.conf: # auth-access = write # password-db = passwd 改为:(将#和空格去掉) auth-access = write //通过验证的用户才能有读写的权限 password-db = passwd //验证用户所使用的文件passwd 2. 添加用户 修改同目录的passwd文件 [users] admin = 123456 //以名值的方式存储用户名和密码“用户名 = 密码” 3. 设置访问权限 修改同目录下的authz文件来设置访问权限 在[groups]下创建用户组例如这里是: [groups] Admin=admin Developer=developer1,developer2 以上便创建了两个用户组,分别是admin和developer和其相应的组的成员。 设置访问路径 [/] *=r @admin=rw

LINUX SVN客户端使用方法介绍

svnaddvalues/strings.xml//--添加 svnst//--查看状态 svnci//--提交svnci-msvnci,permission 1、将文件checkout到本地目录 svncheckoutpath(path是服务器上的目录) 例如:svncheckoutsvn://192.168.1.1/pro/domain 简写:svnco 2、往版本库中添加新的文件 svnaddfile 例如:svnaddtest.php(添加test.php) svnadd*.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svncommit-mLogMessage[-N][--no-unlock]PATH(如果选择了保持锁,就使用--no-unlock开关) 例如:svncommit-maddtestfileformytesttest.php 简写:svnci 4、加锁/解锁 svnlock-mLockMessage[--force]PATH 例如:svnlock-mlocktestfiletest.php svnunlockPATH 5、更新到某个版本 svnupdate-rmpath

例如: svnupdate如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。 svnupdate-r200test.php(将版本库中的文件test.php还原到版本200) svnupdatetest.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svnresolved,最后再提交commit) 简写:svnup 6、查看文件或者目录状态 1)svnstatuspath(目录下的文件和子目录的状态,正常状态不显示) 【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】 2)svnstatus-vpath(显示文件和子目录状态) 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。 注:svnstatus、svndiff和svnrevert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。 简写:svnst 7、删除文件 svndeletepath-mdeletetestfle 例如:svndeletesvn://192.168.1.1/pro/domain/test.php-mdeletetestfile 或者直接svndeletetest.php然后再svnci-m'deletetestfile‘,推荐使用这种 简写:svn(del,remove,rm) 8、查看日志 svnlogpath 例如:svnlogtest.php显示这个文件的所有修改记录,及其版本号的变化

linux下svn的配置及svn常用命令

SVN是Subversion的简称,是一个开放源代码的版本控制系统,svn服务器有两种运行方式:独立服务器和借助apache运行。右图是一个svn的工作流程,它可以很方便用户的代码编写。 1.首先安装SVN:”sudo apt-get install subversion”. 查看svn的版本和确定是否安装成功:”svnserve –version”. 2.创建svn仓库:“svnadmin create msm”,其中msm是版本仓库的名字,仓库建立好了以后会有出现一个仓库名字的文件夹,文件夹下面有conf等几个目录和文件.接下来就需要设置版本仓库的权限了。这里说明一下:版本库之间是独立的。(下图为msm的目录) 3.增加用户 修改conf文件夹下的authz文件,该配置文件采用”基于路径授权”的策略,中括号里指定路径,以下列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,列子如下 用户组格式: [groups]<用户组名>=<用户1>,<用户2>其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。版本库目录格式: [<版本库>:/项目/目录]@<用户组名>=<权限><用户名>=<权限>, 其中,方框号内部分可以有多种写法: /,表示根目录(仓储目录)及以下。根目录是svnserve启动时指定的,我们指定/opt/svndata。这样,/就是表示对全部版本库设置权限。权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。 下图是我增加的用户组:(注意:等号后留有空格) 增加后:

linux下svn升级

linux下svn升级 环境: 操作系统:RHEL 5.4 x86_64 SVN版本:1.4.2->1.8.8 一、检查安装包 我采用的是目前当前网站发布的版本:subversion-1.8.8 首先,需要安装预先安装六个组件,你的subversion才能正常工作。 apr-util、 apr、pcre、scons 、serf、sqlite-amalgamation -本文假定apahce已经安装! -系统在默认情况下,是已经有apr-util及apr这两个包的,只不过他们的版本较低,只支持subversion 1.4 因此,具体可以看看: # rpm -qa | grep apr apr-util-1.2.7-7.el5_3.2 apr-util-1.2.7-7.el5_3.2 apr-1.2.7-11.el5_3.1 xorg-x11-drv-dynapro-1.1.0-2 apr-1.2.7-11.el5_3.1 而subversion要求较高的版本,为此,我们需要删除系统自带的apr,apr-util 这两个包,强行删掉! # rpm -e --allmatches apr-util error: Failed dependencies: libaprutil-1.so.0()(64bit) is needed by (installed) subversion-1.4.2-4.el5_3.1.x86_64 libaprutil-1.so.0()(64bit) is needed by (installed) httpd-2.2.3-31.el5.centos.x86_64 libaprutil-1.so.0 is needed by (installed) subversion-1.4.2-4.el5_3.1.i386 # rpm -e --allmatches apr-util --nodeps # rpm -e --allmatches apr --nodeps .

Svn Linux安装方法

Svn 安装方法 1.创建 svn linux 用户: a)使用root 用户登录后,创建svn 组 gsvn, 创建用户 svn . b)创建组命令: groupadd gsvn c)创建用户命令: useradd –s svn -p svn -r svn –g gsvn d)修改密码: passwd svn 2.安装java 运行环境 : jdk1.6 a)Jdk linux 安装文件jdk-6u23-linux-x64.bin b)安装jdk命令: ./jdk-6u23-linux-x64.bin c)配置环境变量:在 /ect/profile 文件中添加如下变量: export JAVA_HOME=/svnserver/jdk1.6.0_23 export JRE_HOME=/svnserver/jdk1.6.0_23/jre export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH 3.安装svn 服务器: CollabNetSubversionEdge-1.3.1_linux-x86_6 4.tar.gz a)安装文件CollabNetSubversionEdge-1.3.1_linux-x86_64.tar.gz. b)安装命令:tar -zxf CollabNetSubversionEdge-1.1.0_linux-x86.tar.gz 4.启动svn 服务器: o Svn 解压后会生成一个csvn 文件夹 ,移动到csvn 文件夹下: cd csvn o启动命令: bin/csvn start 5.管理台 a)安装完成后页面,登录用户名/密码: admin/admin

Linux部署SVN详解(含备份与还原)

Linux部署SVN详解 1安装操作系统 安装系统采用CentOS-6.2/Database Server 2安装配置apache与SVN 1)数据包安装顺序:(安装包在CentOS-6.2盘的Packages目录下均可找到) a)apr-1.3.9-3.el6_1.2.i686.rpm b)apr-util-1.3.9-3.el6_0.1.i686.rpm c)httpd-2.2.15-15.el6.centos.i686.rpm 依赖文件:httpd-tools-2.2.15-15.el6.centos.i686.rpm 与apr-util-ldap-1.3.9-3.el6_0.1.i686.rpm d)sqlite-3.6.20-1.el6.i686.rpm e)subversion-1.6.11-2.el6_1.4.i686.rpm 依赖文件:neon-0.29.3-1.2.el6.i686.rpm neon依赖文件:pakchois-0.4-3.2.el6.i686.rpm与libproxy-0.3.0-2.el6.i686.rpm 安装libproxy命令:三个包同时安装 rpm -ivh libproxy-0.3.0-2.el6.i686.rpm libproxy-bin-0.3.0-2.el6.i686.rpm libproxy-python-0.3.0-2.el6.i686.rpm f)mod_dav_svn-1.6.11-2.el6_1.4.i686.rpm 安装后将生成文件:/etc/httpd/conf.d/subversion.conf 2)修改apache(即httpd)配置文件 #vi /etc/httpd/conf/httpd.conf 执行上述命令后,对文件进行以下修改: ServerName localhost:80 localhost表示自己的IP地址 (找到上面一行并做类似修改后保存退出) #service httpd start #chkconfig httpd on 文件修改完成后,启动http服务并使用chkconfig命令设置开机自启动。 3)创建自己的svn版本库 #cd /home #mkdir svn #cd svn #mkdir data conf #cd data

SVN使用和SVN常用命令

Svnserve –d –r 路径名+文件名 Svn://IP SVN使用和SVN常用命令 之前比较少接触linux,今天参考网上的资料实践了一下如何建立svn仓库,包括简单的授权设置。 假设要建立一个svn项目:new_project 一、创建svn仓库 去到svn服务的根目录,(这个目录是在启动svn服务的时候指定的,启动的命令如:svnserve -d -r /usr/local/svnrepos)执行创建仓库命令: svnadmin create new_project 这样在/usr/local/svnrepos/ 里面就多了一个new_project目录出来,进入new_project/conf/ 目录 vi svnserve.conf 将下面几行的注释去掉 [general] anon-access = read #匿名的用户可读 auth_access = write #有授权的用户可写 password-db = passwd #表示svn用户的授权资料保存在passwd文件里面 在conf/目录里面vi passwd,添加授权资料。格式如下: [user] your_name = your_password 二、导入源码 (导入源码的过程不一定要按照下面说的来做,关于svn目录管理其实可以很灵活,适合自己就行) 现在先准备一个临时文件夹,用来构建仓库中的基本目录结构: mkdir temp mkdir temp/trunk mkdir temp/tags mkdir temp/branches

这时可以将temp目录导入的仓库中: svn import temp svn://localhost/new_project -m 'initial' 如果new_project已经开发到一定程度,我们只需要将源码导入到仓库中的trunk就行了。 假设源码的根目录是~/new_project 进入~目录,把源码导入到trunk中: svn import new_project svn://localhost/new_project/trunk -m 'initial again' ====================================================================== ========= 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svn commit -m “LogMessage“[-N] [–no-unlock] PA TH(如果选择了保持锁,就使用–no-unlock开关) 例如:svn commit -m “add test file for my test“test.php 简写:svn ci 4、加锁/解锁 svn lock -m “LockMessage“ [–force] PATH

在linux下安装配置svn独立服务器共24页

subversion(以下简称svn)是近年来崛起的版本管理工具, 是cvs的接班人。 svn服务器有2种运行方式:独立服务器和借助apache。2 种方式各有利弊。 svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式 更安全一点。 1. svn服务器安装操作系统: Redhat Linux AS4安装包获取:下载 https://www.360docs.net/doc/655114739.html,/downloads/subversion-1 .4.0.tar.gz和 https://www.360docs.net/doc/655114739.html,/downloads/subversion-d eps-1.4.0.tar.gz。编译: 以root用户登录。 将subversion-1.4.0.tar.gz和 subversion-deps-1.4.0.tar.gz传到服务器。 tar xfvz subversion-1.4.0.tar.gz tar xfvz subversion-deps-1.4.0.tar.gz cd subversion-1.4.0 ./configure --prefix=/opt/svn --without-berkeley-db

--with-zlib (注:以svnserve方式运行,不加apache编译参数。以fsfs 格式存储版本库,不编译berkeley-db) make clean make make install vi /etc/profile,在/etc/profile最后加入: PATH=$PATH:/opt/svn/bin export PATH 测试: svnserve --version 如果显示如下,安装成功: svnserve, version 1.4.0 (r21228) compiled Oct 12 2006, 10:18:56Copyright (C) 2000-2006 CollabNet. Subversion is open source software, see https://www.360docs.net/doc/655114739.html,/ This product includes software developed by CollabNet (http://Collab/).The following repository back-end (FS) modules are available:* fs_fs : Module for working with a plain file (FSFS) repository. 2. svn配置

相关文档
最新文档