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
linux svn服务器搭建、客户端操作、备份与恢复的更多相关文章
- linux svn 服务器搭建问题
我的svn版本 svn, version 1.7.14 (r1542130) compiled Nov 20 2015, 19:25:09 Copyright (C) 2013 The Apache ...
- Linux svn服务器搭建
一.安装 yum -y install subversion 二.建立版本库目录 mkdir /var/svn/svnrepos 三.创建svn版本库 svnadmin create /var/svn ...
- Linux下的SVN服务器搭建
Linux下的SVN服务器搭建 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总 ...
- Linux下的SVN服务器搭建
鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...
- linux 中 svn 服务器搭建 重启
鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...
- Linux SVN服务器的搭建配置及分支的创建与合并
第一步:通过yum命令安装svnserve,命令如下: >yum -y install subversion 若需查看svn安装位置,可以用以下命令: >rpm -ql subversio ...
- Linux centos7 下 svn 服务器搭建
摘自:https://www.cnblogs.com/mymelon/p/5483215.html 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在 ...
- Linux下的SVN服务器搭建(转)
Linux下的SVN服务器搭建 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此 ...
- SVN服务器搭建及客户端配置
为什么要使用SVN? 在程序的编写过程中,每个程序员都会负责开发一个或多个模块,且开发中会生成很多不同的版本, 这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subvers ...
随机推荐
- 学点css之经验总结篇章
学css说起来应该有三天左右的时间的,加上之前了解的基础,对css有一点的感性认识了,相应代码有有比较好的把握,现在就通过分享几张照片的形式分享一下我的收获 备注:在Border的外边的部门被称作:o ...
- 20160402javaweb 开发模式
开发案例: 首先,我们确定用xml文件代替数据库,便于测试 建立web工程,基本架构见下图 代码如下: 首先是javabean:User.java package com.dzq.domian; im ...
- iOS越狱系列(一):使用Reveal分析APP
TOOLS 1.已越狱的设备,并且已安装了OpenSSH,MobileSubstrate等实用工具 Cydia源/Telesphoreo里有 里面有个包 可以基本集合所有开发工具提供库 2.mac o ...
- iOS 动画基础
原文:http://www.cnblogs.com/lujianwenance/p/5733846.html 今天说一下有关动画的基础,希望能帮助到一些刚接触iOS动画或者刚开始学习iOS的同学, ...
- O_NONBLOCK模式下写fifo的注意事项
后台网络通信框架一般采用fifo来作为事件通知的机制:创建一个fifo,然后以非阻塞读和非阻塞写的方式打开fifo,然后把fd加到epoll里面,作为通知网络事件的fd. 在这里有个隐晦的问题容易被忽 ...
- firefox下对ajax的onreadystatechange的支持情况分析及解决
一.问题: var xmlHttp; function savecarttodata(){ createXMLHttpRequest(); var rndcode = new Date().getTi ...
- HTML 表格的书写方式:
首先要进行reset table{border-collapse:collapse;border-spacing:0;}th{text-align:inherit;} 1. caption标签对整个 ...
- HTML5 改良的 input 元素的种类
html5中增加改良的input 元素 . 在过去我们制作网页输入框,会用到不少JS验证,如今有了HTML5写这种效果已经没有那么麻烦了,下面我来给大家介绍两种HTML5的input的新增加的类型应用 ...
- mongodb3.2系统性学习——2、write concern mongodb 写安全机制
为了尊重作者原文章位置:http://kyfxbl.iteye.com/blog/1952941 首先讲一下mongodb 的写操作过程: mongodb有一个write concern的设置,作用是 ...
- CPU/寄存器/内存
因为要了解多线程,自然少不了一些硬件知识的科普,我没有系统学习过硬件知识,仅仅是从书上以及网络上看来的,如果有错误请指出来. CPU,全名Central Processing Unit(中央处理器). ...