如何在 Linux 中备份和恢复 SVN 存储库

2023-11-04

Subversion (SVN) 是一种广泛使用的版本控制系统,允许开发人员跟踪代码更改并在项目上进行协作。管理 SVN 存储库的一个重要方面是备份存储库数据,以防止数据丢失并确保业务连续性。本文将指导您使用不同的方法在 Linux 中完成备份和恢复 SVN 存储库的过程。

您还可以在以下位置设置自己的 SVN 服务器基于 Debian 的系统 and 基于Redhat的系统.

使用‘备份 SVN 存储库svnadmin dump

svnadmin dump 命令是创建 SVN 存储库备份的标准方法。它创建一个包含所有存储库修订的转储文件,然后可以使用 svnadmin load 命令将其导入到新存储库中。 svnadmin dump 命令的基本语法是:

1
svnadmindump [存储库路径] > [转储文件]

Where [repository_path]是 SVN 存储库的路径,并且[dump_file]是输出转储文件的名称。

Example:创建位于以下位置的 SVN 存储库的备份/var/svn/repo:

svnadmin dump /var/svn/repo > repo_backup.svndump 

使用‘恢复 SVN 存储库svnadmin load

要从使用 svnadmin dump 命令创建的转储文件恢复 SVN 存储库,请使用 svnadmin load 命令。首先,创建一个新的空存储库以导入转储文件数据。 svnadmin load 命令的基本语法是:

1
svnadminload [新存储库路径] < [转储文件]

其中 [new_repository_path] 是新 SVN 存储库的路径,[dump_file] 是输入转储文件的名称。

Example:从备份文件恢复 SVN 存储库“repo_backup.svndump”到位于的新存储库中/var/svn/new_repo:

svnadmin create /var/svn/new_repo 
svnadmin load /var/svn/new_repo < repo_backup.svndump 

增量备份使用 'svnadmin dump'

对于大型存储库或频繁备份,创建仅包含自上次备份以来所做更改的增量备份会更有效。要创建增量备份,请使用带 --incremental 选项的 svnadmin dump 命令,并使用 -r 选项指定起始修订版。

1
svnadmindump [存储库路径] --增加的 -r [开始修订版]:[修订结束] > [增量转储文件]

其中 [repository_path] 是 SVN 存储库的路径,[start_revision] 是起始修订版号,[end_revision] 是结束修订版号,[incremental_dump_file] 是输出增量转储文件的名称。

Example:创建位于以下位置的 SVN 存储库的增量备份/var/svn/repo,从修订版 1001 开始:

svnadmin dump /var/svn/repo --incremental -r 1001:HEAD > repo_incremental_backup.svndump 

使用 ' 恢复增量备份svnadmin load'

要从增量备份恢复 SVN 存储库,请像使用完整备份一样使用 svnadmin load 命令。请注意,您必须先恢复完整备份,然后才能应用增量备份。

Example:从增量备份文件恢复 SVN 存储库“repo_incremental_backup.svndump”进入位于以下位置的现有存储库/var/svn/new_repo:

svnadmin load /var/svn/new_repo < repo_incremental_backup.svndump 

压缩备份文件

为了节省磁盘空间,您可以压缩 svnadmin dump 命令生成的转储文件。使用 gzip 或 bzip2 等压缩工具来压缩备份文件。

Example:要使用 gzip 压缩“repo_backup.svndump”文件:

gzip repo_backup.svndump 

压缩文件将有一个".gz"扩大:“repo_backup.svndump.gz”.

要在恢复之前解压缩压缩的备份文件:

gunzip repo_backup.svndump.gz 

结论

使用 svnadmin dump 和 svnadmin load 命令在 Linux 中备份和恢复 SVN 存储库是一个简单的过程。定期备份 SVN 存储库可确保您的数据免遭丢失或损坏。了解如何创建完整备份和增量备份、恢复存储库以及压缩备份文件将帮助您维护强大的版本控制系统并保护宝贵的项目数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Linux 中备份和恢复 SVN 存储库 的相关文章

  • 使用 mysqldump 转储和加载 MySQL InnoDB 数据库的最快方法是什么?

    我想使用 mysqldump 和 MySQL 5 1 创建一个包含大约 40 个 InnoDB 表和大约 1 5GB 数据的数据库副本 能够实现最快转储和加载数据的最佳参数是什么 即 single transaction 此外 将数据加载到
  • 当主干/分支/标签结构混乱时,如何从 Subversion 迁移到 Mercurial?

    我想将存储库从 Subversion 转换为 Mercurial 但是当我最初设置存储库时 我以最懒的方式完成了它 随着时间的推移 该结构不断变形和恶化 此时已有 5 年历史 尽管如此 我还是想保留尽可能多的历史 即使我必须弄脏并手动将东西
  • 当您的 ant 构建过程在版本控制上崩溃时该怎么办

    所以我有一个很好的 Java 项目 使用 Ant 构建到 dist 文件夹 整个项目处于版本控制之下 因此我只需通过 dist 文件夹路径上的 svn导出 即可部署最新版本 但我的构建不断删除 dist 文件夹内的 svn 文件夹及其所有依
  • 对于单个开发人员来说,是否值得从 SVN 转向 Git?

    自 2013 年起 此线程很可能已过时 当存储库主要由单个开发人员访问时 是否值得从 SVN 转到 GIT 我有几台用于开发的机器 主要不是用 C 开发 但我的存储库中混合了 VB VB Net PHP C C HTML Batch BAS
  • PHP 通过 FTP 下载整个文件夹(递归)

    我目前有一个非常大的网站 大小约为 5GB 包含 60 000 个文件 当前主机并没有做太多事情来帮助我将网站转移到新主机 我的想法是在新主机上制作一个简单的脚本 通过 FTP 传输到旧主机并下载整个 public html 文件夹 递归地
  • 如何在powershell中使用SVN提交

    我想在我的 PowerShell 脚本中使用 SVN 命令 我知道我需要将 SVN 可执行文件声明为变量 但之后我想提交一个已声明为变量的文件 并且我想要给出的提交消息在文件中指定 svnExe C Program Files Tortoi
  • 如何在vs2008中使用C#使用卷影复制

    我想制作一个使用卷影复制服务进行备份 恢复的 C 应用程序 如何从 C 访问 VSS API 查看AlphaVSS https github com alphaleonis AlphaVSS 我相信这正是医生所吩咐的
  • SVN存储库内容

    我已经设置了 VisualSvn Server 创建了一个存储库 并使用 AnkhSVN 向其中添加了 Visual Studio 解决方案 存储库的 url 类似于https msi pc svn MyProj 由于我的无能 一个问题 此
  • SVN 预提交挂钩,用于避免更改标签子目录

    有没有人对如何添加避免更改标签子目录的预提交挂钩有明确的说明 我已经在互联网上搜索了很多 我找到了这个链接 SVN Hooks 拒绝更改 https metacpan org pod SVN Hooks DenyChanges 但我似乎无法
  • TortoiseGit 与 TortoiseSVN 并存?

    我已经使用 TortoiseSVN 好几年了 但我正在考虑慢慢改用 git 因为我真的很喜欢它的分支和合并 我目前正在通过命令行使用 git 但正在考虑安装 TortoiseGit 有人有并排使用两只乌龟的经验吗 这有什么已知的问题吗 我真
  • 如何在 svn 存储库中本地忽略 .git 和 .gitignore?

    我有一个 SVN 工作副本 由 TortoiseSVN 管理 在该工作副本中 我使用 git 进行本地版本控制和分支 当然 我想隐藏svn的 git目录和 gitignore文件 但是 忽略它们意味着将属性添加到不再是本地的存储库中 我不希
  • 无法将 Visual Studio 项目中的多个文件提交到 subversion

    几周以来 我在使用 Subversion 时遇到了一些问题 当我尝试从 Visual Studio 2017 项目提交文件时 有些文件无法提交到我的 Visual SVN 服务器 准确地说 项目文件夹中的所有文件 如 cs config c
  • Python Subversion 包装器库

    在颠覆的文档 http svnbook red bean com en 1 7 svn developer usingapi html svn developer usingapi otherlangs有一个从 Python 使用 Subv
  • 如何从 SQL Server 2005 备份中恢复单个表?

    我已经使用常规 SQL Server 2005 备份命令进行了备份 有没有办法只恢复单个表 而不是整个数据库 将整个数据库恢复到另一台机器 或临时数据库 然后复制表对我来说似乎是最简单的
  • svn:使用vim合并冲突

    我正在尝试看看如何使 svn 中的合并变得容易 This page http svnbook red bean com en 1 7 svn advanced externaldifftools html提到可以使用外部工具进行合并 vim
  • svn diff 如何仅显示更改的行

    当我使用 svn diff en lua 时 我得到以下结果 num Amount all All class Quality own Have own Have2 paper Specs piece Shard not enough no
  • 无法提交到 svn - 访问被拒绝

    我正在使用 SVN 开发一个小项目 我查看了该项目 svn co http mylocalserver projectx 我进行了更改 更新并添加了文件 svn add file1 php file2 php 但是 每次我想使用此命令提交更
  • 如何在 Mac OS X 10.8 上安装 hg Convert 所需的 python subversion 绑定?

    我正在寻找一种解决方案 最好是干净且简单的 以启用hg convert使用 SVN 存储库在 OS X 10 8 上工作 目前 如果您尝试转换 SVN 存储库 您将得到一个could not load Subversion python b
  • 从本地缓存恢复SVN密码

    有没有办法从本地缓存恢复密码 密码必须存储在某处 因为我可以运行 svn co http my svn server foo 但我自己丢失了密码 我是否必须重置它 或者是否可以 以及如何 找到并解密密码 我主要在 Windows 上使用 C
  • 相当于“svn update -r”的 git 是什么?

    我是最近的 git 转换者 能够使用 git svn 将我的分支保留在本地而不干扰 svn 服务器真是太棒了 最新版本的代码中存在一个错误 我想确定一个它起作用的时间 以便我可以使用 git bisect 我找不到正确的命令来及时返回 谢谢

随机推荐

  • 编译警告"struct declared inside parameter list"

    近来在阅读linux 2 6 37中cgroup的相关代码 读到include linux cgroup h的开头时犯了嘀咕 include
  • laravel基础学习笔记--Blade 模板

    laravel基础学习笔记 Blade 模板 Blade 视图文件都将被编译成原生的 PHP 代码并缓存起来 除非它被修改 否则不会重新编译 这就意味着 Blade 基本上不会给你的应用增加任何负担 Blade模板 section side
  • 2021华为杯数学建模B题“空气质量预报二次建模” 预处理思路+Python代码

    简介 前阵子和小伙伴做了2021年华为杯研赛的B题 空气质量预报二次建模 发现数据预处理一块挺有意思的 涵盖了常规的缺失值 随机缺失 指标缺失 列缺失 条目缺失 行缺失 异常值 偏离正态分布 非负数据为负 以及不常规的协同处理等 一直想着有
  • Ubuntu 16.04 手动用 apt-get 在线安装 Redis 5.0 最新版

    目录 安装 Redis 添加 Redis 源 开始安装 Redis 启动 Redis 常用基本命令 配置 Redis 密码 修改配置文件 设置 Redis 密码 测试 Redis 密码 Redis 全称 REmote DIctionary
  • angular 小试

    测试token var app angular module myApp ngRoute 构造拦截器 添加token信息 3 app config function httpProvider 构造拦截器 var intercepter fu
  • 如何在 Gmail 中启用不太安全的应用程序设置

    在Google帐户中 启用不太安全的应用程序功能可以使黑客更容易进入您的帐户 一般来说 Gmail 用户在使用其帐户通过 Google STMP 服务器发送电子邮件时启用此功能 我们从不建议启用此功能 但在某些情况下 有必要在 Gmail
  • 确保网站安全的 5 个最佳 WordPress 安全插件

    由于 WordPress 的巨大受欢迎 难怪它引起了黑客的兴趣 WordPress 拥有自己的安全措施 这些措施会通过自动更新功能不断更新 但这就足够了吗 如果您确实想确保您的 WordPress 网站安全 您应该研究 WordPress
  • 如何在 Ubuntu 20.04 上安装 OpenOffice

    Apache OpenOffice 是一个开源办公应用软件套件 可用于基于 Unix 的系统 您可以自由使用文档 电子表格 演示文稿和绘图软件 OpenOffice 是由 Apache 基金会构建的一个项目 提供最新的功能和安全更新 本教程
  • PHP – 获取查询字符串值 ($_SERVER['QUERY_STRING'])

    查询字符串是通过 Web 浏览器访问的 url 的一部分 使用查询字符串 我们将参数传递给网页 通过本文 我们将帮助您了解如何使用 php 脚本获取查询字符串的值 获取查询字符串 我们可以从以下位置获取 url 查询字符串值 SERVER数
  • Bash 连接字符串

    在 Bash 中连接字符串就像将它们与双引号 特点 但是 如果您的字符串包含多个单词或包含特殊字符 您可能需要使用不同的方法 幸运的是 Bash 编程语言提供了多种连接字符串的方法 本文探讨了在 Bash 脚本和程序中组合字符串的五种常见方
  • IMAP 和 POP3 之间有什么区别

    用于接收电子邮件的协议是互联网运作的重要组成部分 但大多数用户仍然看不到它们 最常见的两种协议是 Internet 消息访问协议 IMAP 和邮局协议版本 3 POP3 每一种都有独特的用途 并具有不同的优点和缺点 了解 IMAP 和 PO
  • 如何在 Debian 9 (Stretch) 上安装 Java

    本教程可以帮助您在 Debian 9 Stretch 上安装 Java通过 Apt Get Java 是一种流行的面向对象 独立于平台的编程语言 您可以根据您的要求安装 Java 例如 要运行java应用程序 您只需要安装JRE Java运
  • 已修复 MSSQL 错误 3154 – 备份集保存了现有数据库以外的数据库的备份

    使用 SQL 查询窗口 Use 带替换MSSQL 查询窗口上的 RESTORE 命令的选项 根据您的设置更改数据库名称和备份文件位置 USE MASTER GO RESTORE DATABASE MyDB FROM DISK C Backu
  • 如何为目录中的所有文件生成 md5 校验和

    生成 md5 校验和 查找 var www type f exec md5sum gt tmp www md5 list 上面的命令将为当前目录及其子目录中的所有文件生成 md5 校验和并将其存储在 tmp www md5 list 文件中
  • 如何在 Ubuntu 22.04 上安装 NVM

    节点版本管理器 NVM 是一种流行的工具 可让您管理系统上的多个 Node js 版本 使用 NVM 您可以轻松地在不同的 Node js 版本之间切换 安装新版本以及删除不再需要的版本 本文将指导您完成在 Ubuntu 22 04 上安装
  • 使用 Iptables、UFW 和 Firewalld 阻止 IP 地址

    管理进出 Linux 系统的网络流量对于维护系统安全至关重要 这可以通过大多数 Linux 发行版中捆绑的各种工具来实现 包括 iptables UFW 简单防火墙 和 firewalld 在本文中 我们将探讨如何使用这些工具来阻止特定的
  • Shell 脚本中的 YYYY-MM-DD 格式日期

    Linux date 命令用于获取当前日期和时间 您可以使用参数轻松自定义结果 在本操作教程中 您将学习在 bash shell 中将日期格式设置为 YYYY MM DD 使用以下方法之一获取 YYYY MM DD 格式的当前日期 Usin
  • 如何在 Ubuntu 18.04 和 16.04 LTS 上安装和配置 phpMyAdmin

    php我的管理员是 MySQL 的基于 Web 的图形数据库管理工具 phpMyAdmin 易于使用 并提供了大部分用于工作和管理 MySQL 服务器的选项 它还提供了一种通过简单的步骤向导在多个 MySQL 主机之间设置数据库复制的简单方
  • 每 5 分钟运行一次 Cron

    每 5 分钟运行一次作业是常用的 cron 计划 在这篇快速操作方法文章中 您将学习安排一个 cronjob 每 5 分钟运行一次 Syntax 使用以下语法通过 crontab 安排命令或脚本每 5 分钟运行一次 5 command 1
  • 如何在 Linux 中备份和恢复 SVN 存储库

    Subversion SVN 是一种广泛使用的版本控制系统 允许开发人员跟踪代码更改并在项目上进行协作 管理 SVN 存储库的一个重要方面是备份存储库数据 以防止数据丢失并确保业务连续性 本文将指导您使用不同的方法在 Linux 中完成备份