linux svn服务器搭建、客户端操作、备份与恢复

Subversion(SVN)是一个开源的版本控制系統,管理着随时间改变的数据。这些数据放置在一个中央资料档案库中,这个档案库很像一个普通的文件服务器,它会记住每一次文件的变动,这样就可以把档案恢复到旧的版本,或是浏览文件的变动历史。

本文目录:

linux svn服务器部署

linux svn客户端命令操作

linux svn备份与恢复

一、linux svn服务器部署

1、安装svn

[[email protected]~]#yum install -y subversion

[[email protected]~]#svnserve--version

svnserve,version 1.6.11 (r934486)

2、创建SVN版本库

[[email protected]~]# mkdir /data/svn

[[email protected]~]# svnadmin create /data/svn/project

[[email protected]]# ls /data/svn/project/

conf  db  format  hooks  locks  README.txt

3、配置SVN

[[email protected]]# cd /data/svn/project/conf/

[[email protected]]# ls

authz  passwd svnserve.conf

文件说明:

1)svnserve.conf:  svn服务配置文件下。

2)passwd:         用户名密码文件。

3)authz:          svn权限配置文件。

svnserve.conf文件

该文件配置项分为以下5项:

anon-access:  控制非鉴权用户访问版本库的权限。

auth-access: 控制鉴权用户访问版本库的权限。

password-db:  指定用户名口令文件名。

authz-db:    指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。

realm:        指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件

配置如下:

[[email protected]]# grep -E "anon-access =|auth-access =|password-db =|authz-db =|realm="  svnserve.conf

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

realm = /data/svn/project

passwd文件

作用是配置用户名和密码

[[email protected]]# cat passwd

[users]

yangyun= yangyunpasswd

test = testpasswd

authz文件

配置用户访问权限

[[email protected]]# cat authz |grep -v ‘#‘

[aliases]

[groups]

project_w=yangyun

project_r=test

[/]

project_w=rw

project_r=r

4、启动svn服务

[[email protected]]# svnserve -d -r /data/svn

5、初始化svn数据

[[email protected]]# svn import mysite file:///data/svn/project/ -m ‘initial import‘

将会拷贝目录mysite到版本库的project下

[[email protected]]# svn list file:///data/svn/project

manage.py

mysite/

static/

templates/

web02/

在导入之后,原来的目录树并没有转化成工作拷贝,为了开始工作,还是需要运行svn checkout导出一个工作拷贝。

二、linux svn客户端命令操作

1、将文件checkout到本地目录

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

简写:svn co

例:

svn co svn://115.28.24.178/project   --username=yangyun --password=yangyunpasswd

#指定版本的文件

svn co svn://115.28.24.178/project   --username=yangyun --password=yangyunpasswd -r 5

2、往本地版本库中添加新的文件

svn add   file      #此命令得在checkout出来的路径里才能操作

例如:

cp /root/123.txt./

svn add   123.txt   #把123.txt加入到本地库中

A         123.txt

3、将改动的文件提交到版本库

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

简写:svn ci

例:

svn commit   123.txt -m ‘add 123.txt‘  #只提交123.txt

svn commit  -m ‘add 123.txt‘       #默认提交当前目录下的所以文件

svn commit   *.txt -m ‘add 123.txt‘     #也可以正则匹配文件提交

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、删除文件

svn delete   path -m "delete test fle"

例如:svn delete svn://192.168.1.1/pro/domain/test.php -m "delete testfile"

或者直接svn delete test.php 然后再svn ci -m ‘delete testfile‘,推荐使用这种

简写:svn (del, remove, rm)

7、查看日志

svn log   path

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

8、查看文件详细信息

svn infopath

例如:svn info test.php   #可知道路径版本,时间,提交者等信息

9、比较差异

svn diff   path(将修改的文件与基础版本比较)

例如:svn diff test.php

svn diff   -r m:n path(对版本m和版本n比较差异)

例如:svn diff -r 200:201 test.php   #可知道修改了哪些内容

简写:svn di

10、将两个版本之间的差异合并到当前文件

svn merge   -r m:n path

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

11、SVN 帮助

svn help

svn help   ci

12、版本库下的文件和目录列表

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

简写:svn ls

13、创建纳入版本控制下的新目录

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

用法:

svn mkdirPATH    #效果等同:mkdir test;svn add test;

14、恢复本地修改

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

revert:

用法: revert PATH...

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

三、linux svn备份与恢复

1、全量备份:

curr=`svnlook  youngest /data/svn/project/`  #此处是查询工程目录的最新版本

svnadmin  dump /data/svn/repos/test --revision 0:$cur --incremental  >0-"$curr"svn.bak

echo  $curr >/tmp/svn_revision

2、增量备份

old=`cat  /tmp/svn_revision`

new=`svnlook   youngest /data/svn/project/`

svnadmin  dump /data/svn/repos/test --revision $old:$new --incremental  >$old"-"$new"svn.bak

3、svn恢复

恢复顺序从低版本逐个恢复到高版本;即,先恢复最近的一次完整备份,然后恢复紧挨着这个文件的增量备份。

cd /data/svn/repos/

svnadmin   create test2

svnadmin   load test2 < /data/svnback/20110719/0-1112svn.bak

svnadmin   load test2 < /data/svnback/20110719/1113-1120svn.bak

时间: 2024-12-24 05:15:08

linux svn服务器搭建、客户端操作、备份与恢复的相关文章

Linux: SVN服务器搭建(一)

摘自http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上了,下载地址: http://subversion.apache.org/packages.html 这是二进制文件包的下载地址,你可在左侧的导航栏找到源代码,文档的下载地址. windows

Linux SVN服务器搭建

1. Ubuntu PC一台,最好是最新的Ubuntu稳定版本 2. 执行以下命令安装subversion: sudo apt-get update sudo apt-get install subversion 3. 假设代码svn仓库的根路径定为 /home/svnroot,执行以下命令新建目录: sudo mkdir /home/svnroot 4. 新建一个代码仓库,假设仓库名为:example cd /home/svnroot sudo svnadmin create example

Linux下的SVN服务器搭建

鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始*********/ 系统环境:Centos 6.5 第一步:通过yum命令安装svnserve,命令如下: >yum -y install  subversion 此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行 若需查看svn安装位置,可以用以下命令: >rpm -ql subve

linux svn服务器的搭建

一.修改SVN服务器的配置文件  安装 Yum install subversion 在库创建完成之后会在conf下会生成svnserve.conf, passwd, authz三个文件. 1)svnserve.conf anon-access = none auth-access = write password-db = passwd (svn密码文件,若有多个库,可将文件放到公共位置) authz-db = authz   (目录权限文件,建议同上) realm = /svn/projec

SVN服务器搭建及客户端配置

为什么要使用SVN? 在程序的编写过程中,每个程序员都会负责开发一个或多个模块,且开发中会生成很多不同的版本, 这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? 它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本, 或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作. 一:SVN服务器搭建和使用: 1.   

Linux CentOS 6.5 x64 SVN服务器搭建

Linux CentOS 6.5 x64 SVN服务器搭建步骤 1. 安装Subversion yum install subversion 注意:安装需要使用root权限,否则会提示You need to be root to perform this command.英文也很简单,这里就不多废话了. 2. 查看Subversion的安装位置 rpm -ql subversion 我们看到在bin目录下放有可执行的命令: 可以通过查看SVN版本来确认是否已经安装成功,输入如下命令: svn -

Linux SVN 服务器

一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中. 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动. 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史. SVN中的一些概念 : (1). repository(源代码库) 源代码统一存放的地方 (2). Checkout (提取) 当你手上没有源代码的时候,你需要从r

Linux ISCSI服务器搭建

Linux ISCSI服务器搭建 1. iscsi服务器简述 iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择.iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料. iSCSI:Internet 小型计算机系统接口 (iSCSI:Internet Sma

SVN服务器搭建和使用

VS2015的官方VisualSVN-5.0.1 插件这里,还是遇到了一些问题,我知道有插件了,但是忽略了开始的版本问题,按时插件安装过程中没有出现意外,故以为"插件安装成功",岂不知此"成功"非彼"成功".由于我用的是VisualSVN-Server-3.5.7-x64,适应的VS版本最新的是2012版,故不适应与VS2015版本的,然后就去下载的最新版本,最终才成功安装实现VS2015和SVN的结合. 对应VS2015的官方VisualSVN