- 浏览: 462043 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (132)
- Java (17)
- Eclipse (2)
- Struts2 (6)
- SWT (9)
- Java Web Start (2)
- Heritrix (4)
- Nutch (1)
- Internet (2)
- J2me (2)
- Windows (4)
- Swing (8)
- JavaScript (11)
- Hibernate (1)
- Spring (6)
- Mysql (9)
- Oracle (10)
- Linux (6)
- RESTful (3)
- XML (1)
- Flex (4)
- EL (1)
- Apache (4)
- VC (3)
- OpenSourceLicence (1)
- Tomcat (4)
- Tiles2 (1)
- nosql (6)
- else (4)
- Nginx (2)
最新评论
-
mzlogin:
然而并没有讲 hash 函数
深入理解HashMap(及hash函数的真正巧妙之处) -
czp11210:
hi,你这篇文章很好。有两个细节跟你确认下:1.你使用的amo ...
Mysql 基于 Amoeba 的 水平和垂直 分片 -
Mybeautiful:
It seems the amoeba doesn't sup ...
Mysql 基于 Amoeba 的 水平和垂直 分片 -
xs.cctv:
言简意赅。。。。。。
深入理解HashMap(及hash函数的真正巧妙之处) -
mnhkahn:
h & (length-1)这个其实还是一个模运算,只 ...
深入理解HashMap(及hash函数的真正巧妙之处)
原文地址: http://blog.sina.com.cn/s/blog_5dc960cd0100e8di.html
subversion(以下简称svn)是近年来崛起的版本管理工具,是cvs的接班人。
svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。
svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据(jijian91在搞LDAP时就深受其害,没法根治),所以还是FSFS方式更安全一点。
subversion能够处理二进制文件,并且速度比cvs快
1. svn服务器安装
操作系统: Redhat Linux AS4
获取svn安装包
最新版本subversion可以在http://subversion.tigris.org/getting.html 下载。
编译svn
以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 -- fs-type=fsfs
(注:以svnserve方式运行,不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db)
make clean
make
make install
vi /etc/profile,在/etc/profile最后加入:
PATH=$PATH:/opt/svn/bin
export PATH
svn测试
svnserve –version
如果显示如下,svn安装成功:
svnserve, version 1.4.0 (r21228)
compiled Oct 12 2006, 10:18:56Copyright (C) 2000-2006 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_fs : Module for working with a plain file (FSFS) repository.
2. svn配置
建立svn版本库目录
可建多个:
mkdir -p /opt/svndata/repos1
mkdir -p /opt/svndata/repos2
建立svn版本库
svnadmin create /opt/svndata/repos1
svnadmin create /opt/svndata/repos2
修改svn版本库配置文件
版本库1:
vi /opt/svndata/repos1/conf/svnserve.conf
内容修改为:
[general]
anon-access = read
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配置文件完全相同。如果有更多的版本库,依此类推。
配置允许访问的svn用户
vi /opt/svn/conf/pwd.conf
为了简化配置,2个版本库共用1个用户配置文件。如有必要,也可以分开。
注意:对用户配置文件的修改立即生效,不必重启svn。
文件格式如下:
[users]
<用户1> = <密码1>
<用户2> = <密码2>
其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。示例:
[users]
alan = password
king = hello
配置svn用户访问权限
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:/abc, ,表示对版本库2中的abc项目设置权限
repos2:/abc/aaa, ,表示对版本库2中的abc项目的aaa目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
示例:
[groups]
admin = alan (admin组,里面有一个用户alan)
[/]
@admin = rw (根目录,即:/opt/svndata目录,admin组的用户有读写的权限)
[repos1:/abc/aaa]
king = rw (版本库2中的abc项目的aaa目录,king用户有读写权限)
[repos2:/pass]
king = (版本库2中的abc项目,king用户没有任何权限)
svn配置完毕,删除无用文件
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
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(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st
7、删除文件
svn delete path -m “delete test fle“
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”
或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推荐使用这种
简写:svn (del, remove, rm)
8、查看日志
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
9、查看文件详细信息
svn info path
例如:svn info test.php
10、比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di
11、将两个版本之间的差异合并到当前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
12、SVN 帮助
svn help
svn help ci
——————————————————————————
以上是常用命令,下面写几个不经常用的
——————————————————————————
13、版本库下的文件和目录列表
svn list path
显示path目录下的所有属于版本库的文件和目录
简写:svn ls
14、创建纳入版本控制下的新目录
svn mkdir: 创建纳入版本控制下的新目录。
用法: 1、mkdir PATH…
2、mkdir URL…
创建版本控制的目录。
1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增
调度,以待下一次的提交。
2、每个以URL指定的目录,都会透过立即提交于仓库中创建。
在这两个情况下,所有的中间目录都必须事先存在。
15、恢复本地修改
svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert:
用法: revert PATH…
注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复
被删除的目录
16、代码库URL变更
svn switch (sw): 更新工作副本至不同的URL。
用法: 1、switch URL [PATH]
2、switch –relocate FROM TO [PATH…]
1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将
服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的
方法。
2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动
(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用
这个命令更新工作副本与仓库的对应关系。
17、解决冲突
svn resolved: 移除工作副本的目录或文件的“冲突”状态。
用法: resolved PATH…
注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的
相关文件,然后让 PATH 可以再次提交。
18、输出指定文件或URL的内容。
svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。
svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)
个人总结,感觉就是一个比较智能的存储(肯定不是这么回事啊),自己尝试的一个操作:
Sending test.txt
Transmitting file data .
Committed revision 13. (修改前的版本号是12)
如果发现有错,需要拿之前的版本,也就是12
3./opt/svn/bin/svn update -r 12
U test.txt
Updated to revision 12.
这时会checkout版本12中修改的文件,然后修改完成后即可重新commit上去
在库下建立新目录
/opt/svn/bin/svn mkdir svn://192.168.2.158/new
在新目录中增加文件
/opt/svn/bin/svn mkdir svn://192.168.2.158/new
cd new
touch lastone
/opt/svn/bin/svn add lastone
然后重新提交给subversion库
/opt/svn/bin/svn commit -m "added file"
查看文件test里的哪些行是由谁改的:
/opt/svn/bin/svn blame test
查看文件test从2009年6月2日以来发生过哪些改变:
/opt/svn/bin/svn diff -r "{2009-06-02}" test
发表评论
-
增加虚拟内存的两种方法
2010-08-22 15:27 1243#查看当前虚拟内存信息 [/var/ftp/ks]#swap ... -
VirtualBox虚拟机网络连接设置的四种方式
2010-07-19 10:24 8493VirtualBox是一款SUN出品的 ... -
vbox中Linux mysql 的远程连接
2010-07-18 22:04 44231. 首先确保 vbox 中的Linux可以和本机通信. ... -
CentOS 通过 yum 安装 Mysql 5.0
2010-07-18 12:04 5275记录一下步骤,备忘。 1. 首先配置一下 yum 的源 ... -
CentOS/linux下MySql 5.0.x的安装、优化及安全设置
2010-07-18 11:41 1563原文地址:http://blog.chinaunix.net/ ... -
RHCE後面的課程
2010-07-16 11:04 107RHCE後面的課程還有很多的, 呵呵,大家就自己去王乾大哥博客 ... -
RHCE课程-RH033Linux基础笔记六之编辑工具VIM、网络配置、进程优先、日志文件简介(2)
2010-07-16 10:24 62我告诉大家一个窍门吧,我们在用VIM 编辑一个配置文件的时候, ... -
RHCE课程-RH033Linux基础笔记六之编辑工具VIM、网络配置、进程优先、日志文件简介(1)
2010-07-16 10:16 51RHCE课程-初级部分6、编辑工具VIM,网络配置,进程优先 ... -
RHCE课程-RH033Linux基础笔记五之常用文本处理命令、输入输出重定向、管道
2010-07-16 10:13 130RHCE课程-初级部分5、常用文本处理命令,输入输出重定向 ... -
RHCE课程-RH033Linux基础笔记四之shell以及环境变量
2010-07-15 09:26 88RHCE课程-初级部分4、shell及环境变量简介 K ... -
RHEL5.1安装VM TOOL及中文乱码终极解决方案
2010-07-15 09:24 456VMWARE tool 主要的功能就是让用户在虚拟机和真实 ... -
RHCE课程-初级部分3
2010-07-14 09:32 51RHCE课程-初级部分3、LINUX的文件及文件夹的组织结构 ... -
RHCE课程-初级部分1
2010-07-12 19:16 77RHCE课程-初级部分1、 ... -
RHCE课程-初级部分2
2010-07-06 11:38 55RHCE课程-初级部分2、(安装REDHAT EN ...
相关推荐
接下来,我们将详细说明在Red Hat Linux AS4上安装SVN独立服务器的步骤: 1. **获取安装包**:首先,你需要从Subversion官方网站(http://subversion.tigris.org/getting.html)下载最新版本的Subversion安装包,如...
本文档将详细讲解如何在Redhat Linux AS4上安装配置svn独立服务器,采用FSFS存储格式,避免BDB可能的数据锁定问题。 首先,要获取svn的安装包。最新的Subversion版本可以在官方站点`...
### Linux 下安装配置 SVN 独立服务器 #### 一、概述 ...以上步骤完成了在Linux环境下安装和配置SVN独立服务器的过程。通过这种方式搭建的SVN服务器,能够为开发团队提供稳定可靠的版本控制服务。
本文将详细介绍如何在Linux(以CentOS 4.6为例)环境下安装并配置一个独立的SVN服务器。 首先,我们需要获取SVN的安装包。可以从Subversion的官方网站下载最新版本的源码包,例如`subversion-1.4.5.tar.gz`和`...
本教程将详细介绍如何在Linux环境下安装和配置一个独立的SVN服务器。 首先,我们需要了解安装SVN所需的软件包。在大多数Linux发行版中,SVN可以通过包管理器进行安装。例如,在Ubuntu或Debian上,可以使用`apt-get`...
总之,安装和配置Linux下的svn独立服务器涉及获取和编译源代码、创建版本库、配置版本库以及设置用户认证和权限。通过这种方式,你可以搭建一个安全且可控的版本控制系统,方便团队协作和项目管理。
本文将详细介绍如何在CentOS 4.6环境下安装并配置一个独立的SVN服务器。 首先,我们需要获取SVN的安装包。可以从Subversion的官方网站下载最新版本的源码包,例如`subversion-1.4.5.tar.gz`和其依赖包`subversion-...
file:/// 直接版本库访问(本地磁盘)。 ... 通过配置Subversion的Apache服务器的WebDAV协议。 ...svn:// ...1. svn服务器安装操作系统: Redhat Linux AS4获取svn安装包下载http://subversion.tigris.o
本文将详细介绍如何在Linux Nginx环境下配置独立的SVN服务器。该配置适用于CentOS 5.5系统,并且假设已经搭建好了LNMP(Linux+Nginx+MySQL+PHP)环境。 #### 二、准备工作 在开始配置之前,请确保满足以下条件: 1....
安装完客户端后,你可能还需要配置SVN服务器(如Apache或SVN独立服务器)。这通常涉及创建仓库、设置用户权限以及配置服务器端的SVN配置文件。 6. **使用SVN**: 学习基本的SVN命令,如`svn checkout`(检出)、`...
【Subversion 在 Linux 下的安装与配置】 Subversion(简称 SVN)是一款强大的开源版本控制系统,它跟踪文件和...在Linux环境中安装并配置Subversion独立服务器,可以实现稳定且安全的版本控制,提升团队的生产力。
本文详细介绍了如何在Linux环境下安装和配置SVN服务器的过程,包括所需的准备步骤、具体的安装流程以及客户端的安装方法。通过本教程的学习,您不仅能够掌握SVN服务器的基本配置方法,还能了解如何处理安装过程中...