`
foquanlin
  • 浏览: 20184 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

linux svn 安装与配置

阅读更多


Linux下svn搭建配置流程
 
 
一、    源文件编译安装。源文件共两个,为:
1.   下载subversion源文件 subversion-1.6.1.tar.gz
http://d136.d.iask.com/fs/800/1/187a3087a49b71b42ba4d4a300b6278746011506/gz/subversion-1.6.1.tar.gz
2.   下载subversion依赖文件 subversion-deps-1.6.1.tar.gz
http://d136.d.iask.com/fs/800/1/48f59892a78763e7215ae94628c7e97f46011512/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
 
(3)测试安装是否成功
[root@DB2 subversion-1.6.1]# /usr/local/subversion/bin/svnserve --version
svnserve,版本 1.6.1 (r37116)
   编译于 Mar 4 2011,10:07:53
(4)可以将命令添加到环境变量
vi /etc/profile
 
写入如下两句
PATH=$PATH:/usr/local/subversion/bin
export PATH
 
source /etc/profile
 
5.做到这里基本svn的安装就ok了,下面我们来配置svn吧
三、    配置svn
 
1.建立版本库目录(这个和安装目录请区分开,以下讲的是版本库)
[root@DB2 subversion-1.6.1]# mkdir -p /opt/svndata/game
 
2    建立svn版本库
[root@DB2 subversion-1.6.1]# svnadmin create /opt/svndata/game/
 
执行此命令后svn自动在repos目录下添加必须的配置文件.
 
[root@DB2 subversion-1.6.1]# ls /opt/svndata/game/
conf db format hooks locks README.txt
 
注意:版本库不同于一般的文件夹, 直接在操作系统上新建文件无法被SVN识别, 必须使用import等命令将文件导入版本库.此为svn内部指令,create用于新建版本库。请使用svn help查看详细说明。
 
 
3    修改版本库配置文件
[root@DB2 conf]# vi /opt/svndata/game/conf/svnserve.conf
 
各参数功能在配置文件的注释中有说明, 此处配置如下:
 
[general]
 
anon-access = none # 使非授权用户无法访问
 
auth-access = write # 使授权用户有写权限
 
password-db = passwd # 指明密码文件路径
 
authz-db = authz # 访问控制文件
 
realm = /opt/svndata/game # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
 
  其它采用默认配置. 各语句都必须顶格写, 左侧不能留空格, 否则会出错.
 
指令简介:这是svn配置文件的格式,请按照以上格式书写。
 
4    配置用户
 
[root@DB2 conf]# vi /opt/svndata/game/conf/passwd
 
插入如下内容
 
[users]
haifeng = 123456
game = 123456
 
可以添加多个,此为用户名密码对。
 
 
5    配置权限
 
[root@DB2 conf]# vi /opt/svndata/game/conf/authz
 
插入以下内容
 
[/]
 
haifeng = rw
game = r
 
列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,具体请参考svn手册
 
 
6    启动svn 服务
 
[root@DB2 conf]# svnserve -d -r /opt/svndata/game/
 
指令简介:此指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,可以使用“--listen-port=”或者“--listen-host=”来指定其它
端口。-r选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。
 
7. 检查端口
 
[root@DB2 conf]# netstat -ntlp|grep 3690
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      15087/svnserve
 
 
 
到此svn搭建配置完毕,可以在客户端进行连接使用。
 

------------------------svn客户端安装---------------------------
一、svn客户端安装及环境配置.

果所在的linux机器上没有安装svn客户端,则首先安装svn客户端:

1. subversion-1.4.3.tar.bz2  subversion-deps-1.4.3.tar.bz2

2. 使用

tar xvfj subversion-1.4.3.tar.bz2
tar xvfj subversion-deps-1.4.3.tar.bz2

解压这两个文件(不要乱了顺序),此时在当前目录下会出现subversion-1.4.3文件夹,

3. 进入subversion-1.4.3文件夹:

# cd subversion-1.4.3
#./configure
# make               #编译,如果提示错误, 则可能需要root权限
# make install       #安装,此时可能需要root用户权限

安装好客户端之后, 默认安装目录是/usr/local/subversion.

4. 将svn命令链接到/usr/local/bin目录下(需要root权限):

ln –s /usr/local/subversion/bin/svn /usr/local/bin

测试是否已经可以在用户目录下使用svn:

svn help 如果出现命令列表,则表示已经链接成功。

5. 使用chmod命令,使 list checkout commit这三个命令脚本有执行权限:

chmod 777 list checkout commit
cp list checkout commit /usr/bin

svn客户端安装成功

二、svn命令操作

假设svn服务端上有如下库目录:

不显示了。。。

Steven在他的用户目录中有workplace目录,他想把DemoProject签出到他的workplace目录中,并进行操作:

0、 进入workplace目录,使用checkout命令签出:

cd workplace
checkout DemoProject   

此时注意: 如果你的登陆的linux终端登陆用户和你的svn操作用户名同名(比如都是steven),则会提示你输入svn操作用户的密码,否则会先提示你输入linux终端用户密码,然后提示你输入svn操作用户名和密码

进行完上面操作后, 在workplace目录中就会出现DemoProject目录。

1、 单个文件的操作(hello.cpp) 进入到目录DemoProject/src/demo

A) 更新到本地

svn up

B) 修改后提交到库

commit hello.cpp
svn up

C) 新增一个文件到库(进入src/include目录)

svn up                  #更新本地工作目录
svn add hello.h         #添加到库
commit hello.h          #提交hello.h到库
svn up                  #更新本地工作目录

D)删除库上一个文件(进入src/demo目录)

# svn del hello.cpp          删除库中的hello.cpp文件
# commit hello.cpp          提交到库
# svn up                   更新本地工作目录

2、 文件夹的操作(这里需要考虑文件夹中还有子文件夹的情况)(src目录)

A) 更新指定文件夹到本地(进入DemoProject目录)

# svn up src //则src目录及目录下的所有子文件夹更新到DemoProject目录下

B) 提交修改过的整个文件夹到库(修改了文件夹include

# svn up
# commit include
# svn up

C) 新增一个文件夹到库(DemoProject/lib)

进入DemoProject目录:

# svn mkdir lib             创建lib包
# commit lib               提交到库
# svn up                   更新本地工作目录

D)删除库上一个文件夹(demo) 进入DemoProject/src/目录

# svn up 更新本地工作目录

# svn del demo 删除demo文件夹

# commit demo 将删除提交到库

3、 本地与库之间的操作

A) 查看库上目录结构(查看DemoProject目录结构)

# list DemoProject

B) 对比本地与库上某个文件或者整个文件夹(进入src/demo目录):

# svn diff hello.cpp

C) 查看库上某个文件提交记录(什么时间、什么人提交过)

# svn log –v hello.cpp

4、 其他操作

A) 查看src/demo目录下的文件的状态(是否修改后没有提交等)

# svn st

如果你的 hello.cpp修改后还没有提交,则使用svn st会在第一列显示hello.cpp的状态为M,表示项目已经修改但没有提交到库。

B) 查看svn命令的帮助

# svn help update 查看update命令的帮助.

C) 提交时冲突(没有更新本地工作目录而修改文件导致冲突)处理:

(1) 想使用项目仓库中的版本,而放弃本地拷贝的修改:

# svn revert hello.cpp

# svn up

(2) 想保留本地工作拷贝的修改,而放弃项目仓库中版本的修改:

# 当你解决了冲突的文件,就可以使用resolved

# svn resolved

# svn commit hello.cpp

D)checkout下来库的老版本

首先查看你需要checkout下来的DemoProject老版本,然后再checkout下来:

# svn log DemoProject 查看老版本,比如是4330版本

# checkout DemoProject –r 4330
------------------------------------svn常用指令----------------------------
本文讲述了Linux命令行下常用svn命令的使用方法,希望对您有所帮助。

1、Linux命令行下将文件checkout到本地目录

svn checkout path(path是服务器上的目录)

例如:svn checkout svn://192.168.1.1/pro/domain

简写:svn co

2、Linux命令行下往版本库中添加新的文件

svn add file

例如:svn add test.php(添加test.php)

svn add *.php(添加当前目录下所有的php文件)

3、Linux命令行下将改动的文件提交到版本库

svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)

例如:svn commit -m “add test file for my test“ test.php

简写:svn ci

4、Linux命令行下的加锁/解锁

svn lock -m “LockMessage“ [--force] PATH

例如:svn lock -m “lock test file“ test.php

svn unlock PATH

5、Linux命令行下更新到某个版本

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、Linux命令行下查看文件或者目录状态

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、Linux命令行下删除文件

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、Linux命令行下查看日志

svn log path

例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化

9、Linux命令行下查看文件详细信息

svn info path

例如:svn info test.php

10、Linux命令行下比较差异

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、Linux命令行下将两个版本之间的差异合并到当前文件

svn merge -r m:n path

例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)

12、Linux命令行下SVN 帮助

svn help

svn help ci

以上是常用命令,下面写几个不经常用的

13、Linux命令行下版本库下的文件和目录列表

svn list path

显示path目录下的所有属于版本库的文件和目录

简写:svn ls

14、Linux命令行下创建纳入版本控制下的新目录

svn mkdir: 创建纳入版本控制下的新目录。

用法: 1、mkdir PATH…

2、mkdir URL…

创建版本控制的目录。

1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增调度,以待下一次的提交。

2、每个以URL指定的目录,都会透过立即提交于仓库中创建.在这两个情况下,所有的中间目录都必须事先存在。

15、Linux命令行下恢复本地修改

svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert:

用法: revert PATH…

注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录

16、Linux命令行下代码库URL变更

svn switch (sw): 更新工作副本至不同的URL。

用法: 1、switch URL [PATH]

2、switch –relocate FROM TO [PATH...]

1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的方法。

2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用这个命令更新工作副本与仓库的对应关系。

17、Linux命令行下解决冲突

svn resolved: 移除工作副本的目录或文件的“冲突”状态。

用法: resolved PATH…

注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交。

18、Linux命令行下输出指定文件或URL的内容。

svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。

svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)

以上是Linux命令行下常用svn命令的使用方法。

分享到:
评论

相关推荐

    linux svn安装和配置

    ### Linux SVN 安装与配置详解 在Linux环境下安装并配置Subversion(简称SVN),是一种常见的版本控制系统操作。本文将详细介绍如何在不结合Apache的情况下完成这一过程,为那些需要独立运行SVN服务的用户提供全面...

    Linux离线安装svn.zip

    本文将详细讲解如何在没有网络连接的情况下,通过提供的“Linux离线安装svn.zip”压缩包来安装和配置svn。 首先,确保你的Linux系统已经安装了基本的开发工具,通常包括GCC编译器、make以及相关的库。这些工具可以...

    linuxsvn离线安装

    在没有网络连接的情况下,即离线状态下安装Linux SVN,需要提前下载好所有必要的依赖包,然后在本地进行安装。以下是详细的操作步骤和相关知识点: 1. **了解SVN**: SVN是一种集中式版本控制系统,它允许用户跟踪...

    linux下安装svn和配置svn详解

    - 根据实际情况调整系统和SVN配置文件,以满足新的需求或性能优化。 - 关注并更新软件的安全补丁,维护系统的安全性。 以上步骤是Linux下安装和配置SVN服务器的大致流程。需要指出的是,这些步骤需要在Linux命令行...

    linux svn安装手册

    7. 安装apr-util库,过程与安装apr类似,但在配置时需指定apr的安装路径。同样更新链接器缓存。 8. 安装sqlite,解压后执行`./configure`指定安装位置,`make`编译,`make install`安装。 9. 安装neon库,配置时...

    Linux下SVN安装配置.pdf

    Linux下的SVN安装配置涉及到一系列详细的步骤,这些步骤包括安装SVN软件,配置版本库,以及设置权限等。为了在Linux环境下使用SVN,用户需要根据自己的需求选择合适的安装方式和配置策略。接下来,我将详细介绍Linux...

    SUSE linuxSVN详细配置

    根据给定的文件信息,我们可以...总之,配置SUSE Linux下的SVN服务器涉及多个步骤,包括系统准备、软件安装、权限管理、问题排查等。遵循官方文档和社区指南,可以有效避免常见错误,实现高效稳定的版本控制系统部署。

    svn安装配置与ldap整合

    这是一遍比较完整的linux下svn+apche+ldap安装配置手册,根据本人实际安装整理后的文档,目前都算是最新版本。其中ldap使用sun的opends,个人感觉比openldap要方便,当然重点不是用什么ldap而是如何配置。 主要包括...

    linux下svn的安装配置及相关问题解决方案

    总的来说,Linux下的Subversion安装配置涉及多个步骤,包括环境准备、软件安装、目录结构规划、Apache和Subversion的配置以及权限管理。过程中可能会遇到各种问题,如依赖库缺失、配置错误或权限问题等,解决这些...

    Linux下SVN数据仓库安装与配置

    Linux下SVN数据仓库安装与配置 在Linux系统中,SVN(Subversion)是一种流行的版本控制系统,用于管理代码仓库和版本控制。本文将详细介绍Linux下SVN数据仓库的安装与配置。 一、安装SVN 要安装SVN,需要使用yum...

    Linux svn安装配置

    ### Linux下Subversion (SVN) 的安装与配置详解 #### 安装Subversion 在Linux环境下安装Subversion(简称SVN),有两种主要方法:源码编译安装和使用包管理器安装。 **1. 源码编译安装** 首先,下载Subversion的...

    SVN的安装和配置 SVN的安装和配置

    在本篇文章中,我们将详细探讨如何安装和配置SVN,以便于团队有效地管理和共享代码资源。 **1. 安装SVN服务器** 在Windows系统上,通常使用VisualSVN Server作为SVN服务器。首先,访问VisualSVN官网下载安装包,...

    redhat linux 下SVN安装及配置过程

    ### Red Hat Linux下的SVN安装与配置过程 #### 一、引言 本文将详细介绍如何在Red Hat Linux 4.4 (i386架构)系统下安装并配置Subversion (SVN)服务器。SVN是一款广泛使用的版本控制系统,特别适用于软件开发团队...

    linux系统SVN服务器安装详细教程及安装源码

    以上就是Linux系统下安装和配置SVN服务器的基本步骤。为了提高安全性,还可以考虑使用SSL/TLS加密通信,或者配置更复杂的访问控制策略。此外,通过定期备份SVN仓库,可以防止数据丢失。务必根据实际环境和需求调整...

    Linux(CentOS6.2)下安装SVN服务

    ### Linux (CentOS 6.2) 下安装SVN服务 #### 一、概述 本文将详细介绍如何在Linux(CentOS 6.2)环境下安装SVN服务。SVN(Subversion)是一种分布式版本控制系统,广泛应用于软件开发过程中对源代码进行版本控制。...

    linux-svn配置svn操作指南权限配置

    总的来说,配置Linux上的SVN服务器涉及安装SVN、创建仓库、配置Apache、设置用户和权限。通过这种方式,你可以有效地管理团队的源代码,确保代码的安全性和团队协作的顺畅。记住,定期审查和更新权限策略是保持系统...

    linux下svn安装配置

    linux下svn安装配置,redhat为例

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

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

    https+linux+svn服务器搭建指导书.docx

    5. mod_dav_svn:Apache的另一个模块,使Apache能与Subversion协同工作。 接下来,我们将分步骤进行Apache的安装: 3.1. 安装依赖包: - 安装`zlib`:压缩库,用于数据压缩。 ```bash sudo apt install zlib1g-...

    linux离线安装SVN_1.8.17服务所需安装包

    本篇文章将详细讲解如何在Linux环境下离线安装SVN 1.8.17服务,并列出所需的安装包。 首先,你需要确保你的Linux系统已经安装了必要的基础工具,如`wget`(用于下载文件)和`tar`(用于解压压缩文件)。如果没有,...

Global site tag (gtag.js) - Google Analytics