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

简介:     Subversion(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之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)

 

11SVN 帮助

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 

 

3svn恢复

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

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
0
0
0
2
分享
相关文章
|
2月前
|
Veritas NetBackup 11 for Linux & Windows - 领先的企业备份和恢复解决方案
Veritas NetBackup 11 for Linux & Windows - 领先的企业备份和恢复解决方案
43 0
Veritas NetBackup 11 for Linux & Windows - 领先的企业备份和恢复解决方案
|
2月前
|
Websoft9:为开发者打造的高效 Linux 服务器面板
Websoft9 是一款以开源应用部署与管理为核心的服务器面板,采用“环境即服务”模式。它通过运行环境标准化、自动化配置、安全融合和资源管理四个方面实现平台与环境的深度协同。支持多语言框架预集成、云原生组件整合,提供 200+ 应用模板一键部署,并具备全流程安全防护和统一资源监控能力,助力开发者高效管理和扩展应用环境。
63 0
|
16天前
|
阿里云linux服务器使用脚本通过安全组屏蔽异常海外访问ip
公网网站可能会遭受黑客攻击导致访问异常,使用此脚本可以屏蔽掉异常IP 恢复访问。也可自行设置定时任务定期检测屏蔽。
120 28
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
94 28
在Linux服务器中遇到的立即重启后的绑定错误:地址已被使用问题解决
总的来说,解决"地址已被使用"的问题需要理解Linux的网络资源管理机制,选择合适的套接字选项,以及合适的时间点进行服务重启。以上就是对“立即重启后的绑定错误:地址已被使用问题”的全面解答。希望可以帮你解决问题。
91 20
|
2月前
|
Studio 3T 2025.5 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
Studio 3T 2025.5 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
100 2
Studio 3T 2025.5 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
|
2月前
|
Linux系统管理:服务器时间与网络时间同步技巧。
以上就是在Linux服务器上设置时间同步的方式。然而,要正确运用这些知识,需要理解其背后的工作原理:服务器根据网络中的其他机器的时间进行校对,逐步地精确自己的系统时间,就像一只犹豫不决的啮齿动物,通过观察其他啮齿动物的行为,逐渐确定自己的行为逻辑,既简单,又有趣。最后希望这个过程既能给你带来乐趣,也能提高你作为系统管理员的专业素养。
124 20
CentOS 7.9系统备份:每日定期发送最新备份文件到另一台服务器。
注意,这个解决方案忽略了很多细节,例如错误处理和通知、备份版本控制、循环处理旧的备份文件等等。此外,你也应该尽量保持源服务器和目标服务器之间快速,稳定且安全的网络连接,并且目标服务器应该有足够的空间用于存放每天的备份文件。如果你需要更高级的备份解决方案,可能需要考虑一下使用专门的备份工具或者服务。
74 18
YashanDB Linux客户端安装
本文详细介绍了YashanDB客户端在Linux系统中的安装、使用与卸载步骤。安装方法包括适用于所有Linux平台的脚本安装和专用于CentOS的rpm安装。脚本安装需解压软件包并配置环境变量,而rpm安装则需以root用户执行相关命令。此外,文章还说明了如何通过yasql连接YashanDB并进行数据库操作,以及两种安装方式对应的卸载方法,帮助用户顺利完成客户端的管理与维护。
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等