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

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

本文目录:

Linux svn服务器部署
linux svn客户端命令操作
linux svn备份与恢复

一、linux svn服务器部署

1、安装svn

[root@yang~]#yum install -y subversion
[root@yang~]#svnserve--version
svnserve,version 1.6.11 (r934486)

2、创建SVN版本库

[root@yang~]# mkdir /data/svn
[root@yang~]# svnadmin create /data/svn/project
[root@yangproject]# ls /data/svn/project/
conf db format hooks locks README.txt

3、配置SVN

[root@yangproject]# cd /data/svn/project/conf/
[root@yangconf]# 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:        指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件

配置如下:

[root@yangconf]# 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文件

作用是配置用户名和密码

[root@yangconf]# cat passwd
[users]
yangyun= yangyunpasswd
test = testpasswd 

authz文件

配置用户访问权限

[root@yangconf]# cat authz |grep -v '#'
[aliases]
[groups]
project_w=yangyun
project_r=test
[/]
project_w=rw
project_r=r 

4、启动svn服务

[root@yangconf]# svnserve -d -r /data/svn

5、初始化svn数据

[root@yangdjango]# svn import mysite file:///data/svn/project/ -m 'initial import'

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

[root@yangdjango]# 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 
(0)

相关推荐

  • Linux下实现MySQL数据备份和恢复的命令使用全攻略

    为了保障数据的安全,需要定期对数据进行备份.备份的方式有很多种,效果也不一样.一旦数据库中的数据出现了错误,就需要使用备份好的数据进行还原恢复.从而将损失降到最低.下面我们来了解一下MySQL常见的有三种备份恢复方式: 1.利用Mysqldump+二进制日志实现备份 2.利用LVM快照+二进制日志实现备份 3.使用Xtrabackup备份 一:实验环境介绍: 系统介绍:CentOS6.4_X64 数据库版本:mysql-5.5.33 二:基于Mysqldump命令实现备份恢复 2.1.思路概念

  • Linux备份及恢复及Linux文件权限详解

    Linux备份及恢复及Linux文件权限详解 概述 一个系统管理员菜鸟不小心输入"chmod -R 777 /"从而导致了巨大的悲剧,使得整个系统遭到了严重的破坏.在日常管理中,我们有许多工具可以用来备份文件权限,如cp.rsync.etckeeper等.如果你使用了这个备份工具,那么你的确不需要担心改变的文件权限问题. 但如果只是想暂时备份文件权限(而不是文件本身),例如:为了阻止一些目录的内容被覆盖暂时移除该目录下所有文件写的权限:或是正在排除文件权限问题的过程中需要对文件进行ch

  • linux备份与恢复基础知识

    unix系统为每个文件都记录这三个不同的时间,第一个是mtime,即修改时间.无论何时,只要文件内容被改变,mtime的值就会被相应修改.第二个是atime,即访问时间.只要文件被访问(比如运行或读取),它就会被修改.第三个是ctime,即变更时间.当文件的属性发生变化(比如改变权限或者所有关系)时,ctime的值就会被改变.管理员用ctime来查找黑客. 备份会改变atime,tar,cpio,dd都会这样做,dump通过原始设备来读取文件系统,因此它不 会改变atime. dump的语法.

  • linux VPS之间网站数据的备份与恢复(网站迁移教程)

    本文所用命令Debian和CentOS通用,文件目录默认与LNMP相同,请做相应修改. 文中www.xxx.com绑定在VPS1的wwwroot目录上为例 1.VPS1上数据打包(备份) a.VPS1上文件数据打包(Tar命令详解 http://www.jb51.net/os/RedHat/1219.html) cd /home/wwwroot/ tar zcvf xxx.tar.gz 网站目录(如/home/wwwroot/vmvps.com) b.VPS1上MySQL数据导出 mysqldu

  • Windows或Linux系统中备份和恢复MongoDB数据的教程

    windows下面mongodb数据库备份和恢复 我可以讲数据备份到c:\data\dump目录下面,首先创建这个路径.然后进入到mongodb的bin目录下面 我的是: C:\Program Files\mongodb\bin 备份脚本是: //备份 mongodump -h 127.0.0.1:27017 -d test -o c:\data\dump 恢复脚本是: //恢复 mongorestore -h 127.0.0.1:27017 -d test --directoryperdb c

  • 详解如何备份及恢复 Linux 文件权限

    你可能听说或碰到过这样的事情:一个系统管理员菜鸟不小心输入"chmod -R 777 /"从而导致了巨大的悲剧,使得整个系统遭到了严重的破坏.在日常管理中,我们有许多工具可以用来备份文件权限,如cp.rsync.etckeeper等.如果你使用了这个备份工具,那么你的确不需要担心改变的文件权限问题. 但如果只是想暂时备份文件权限(而不是文件本身),例如:为了阻止一些目录的内容被覆盖暂时移除该目录下所有文件写的权限:或是正在排除文件权限问题的过程中需要对文件进行chmod命令操作.在这些

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

    Subversion(SVN)是一个开源的版本控制系統,管理着随时间改变的数据.这些数据放置在一个中央资料档案库中,这个档案库很像一个普通的文件服务器,它会记住每一次文件的变动,这样就可以把档案恢复到旧的版本,或是浏览文件的变动历史. 本文目录: Linux svn服务器部署 linux svn客户端命令操作 linux svn备份与恢复 一.linux svn服务器部署 1.安装svn [root@yang~]#yum install -y subversion [root@yang~]#sv

  • Linux下的SVN服务器搭建步骤

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

  • Windows下SVN服务器搭建方法整理(apache)

    本节和大家谈谈Windows下SVN服务器搭建问题,在这里拿出来和大家分享一下,希望对大家有用. 1,软件下载 Windows下SVN服务器搭建,下载Subversion服务器程序.到官方网站的下载二进制安装文件,来到二进制包下载部分,找到WindowsNT,2000,XPand2003部分,然后选择"thisdirectory",这样我们可以看到许多下载的内容,目前可以下载svn-1.4.0-setup.exe.下载Subversion的Windows客户端TortoiseSVN.T

  • Windows SVN服务器搭建方法

    这里我就介绍一个在Windows环境下简单快速搭建SVN服务器的方法.通常的SVN服务器是搭建在Linux等系统下,例如用Apache+SVN配置,Linux下的SVN性能会非常好,但配置有些繁琐,如果SVN服务器只有自己使用,那么可以直接把SVN服务器搭建在个人Windows环境下使用. 目前较为简单的方案是VisualSVN Server.该SVN服务器是免费的,支持Windows NT, 2000, XP and 2003等环境,安装非常简单. 安装的时候可以选择SVN走http协议还是h

  • SVN服务器搭建图文教程

    SVN服务器搭建教程,供大家参考,具体内容如下 一.首先准备三个软件: 1.VisualSVN-Server-3.6.3-x64.msi(svn服务端) 2.TortoiseSVN-1.9.6.27867-x64-svn-1.9.6.msi(svn客户端) 3.LanguagePack_1.9.6.27867-x64-zh_CN.msi(TortoiseSVN 的汉化包) 软件下载地址:http://subversion.apache.org/packages.html 打开网页拉到最后,看到以

  • node.js基于dgram数据报模块创建UDP服务器和客户端操作示例

    本文实例讲述了node.js基于dgram数据报模块创建UDP服务器和客户端操作.分享给大家供大家参考,具体如下: node.js中 dgram 模块提供了udp数据包的socket实现,可以方便的创建udp服务器和客户端. 一.创建UDP服务器和客户端 服务端: const dgram = require('dgram'); //创建upd套接字 //参数一表示套接字类型,'udp4' 或 'udp6' //参数二表示事件监听函数,'message' 事件监听器 let server = dg

  • Linux svn的搭建与使用(图文详解)

    Linunx svn的搭建与使用........纯手打的..具体入下: 一.安装前的准备 1.1 配置yum 库 1)加载光盘 2)进入/etc/yum.repo.d目录 3)复制"rhel-debuginfo.repo"为"my.repo" 4)修改my.repo文件 5)修改红框标注部分 修改完毕保存退出:wq 1.2 安装telnet 远程连接工具 1)用yum命令安装远程工具. 2)安装成功. 3)用vi命令编辑位于/etc/xinetd.d下的telnet

  • 图解SVN服务器搭建和使用(一)

    Subversion是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作. Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上了,下载地址: http://subversion.apache.org

  • 详解CentOS的SVN服务器搭建与自动部署全过程

    服务器搭建 安装服务 yum install subversion 配置服务 mkdir -p /data/wwwsvn/myrepo #创建svn仓库的目录 这里可以自定义创建的目录,注意不是网站的文件目录. svnadmin create /data/wwwsvn/myrepo #与上面的目录相同. 这里要注意该目录不能是空目录. 成功以后会得到以下文件 # ls conf db format hooks locks README.txt 进入conf修改配置文件 vi passwd添加在末

  • Linux云服务器搭建SFTP服务器图片服务器的操作

    首先大家可以先了解一下SFTP和FTP协议的区别,这里我就不赘述了. Sftp 默认监听端口22 Ftp协议默认监听端口21 本质没什么区别都是基于文件传输协议.前者安全性能高,后者效率高. 下面进入正题: 一,确保你的Linux 账号能连接,sftp默认就是Linux root账号密码 这里就是你的管理员账号用户名和密码.一般这个密码Sftp就直接连就行了不用改的都.下面看看Xftp 连接成功了说明没有问题. 二,通过如果是阿里云服务器一定把防火墙和安全组都打开,以免出现其他问题 还有一个防火

随机推荐