精华内容
下载资源
问答
  • 备份-如何备份远程SVN存储库我目前正在将SVN服务器从家庭服务器移至远程服务器,以便可以从其他位置更轻松地访问它。我的远程服务器未备份,因此我想定期将其备份到我的家庭服务器。远程服务器是Windows 2003服务器...

    备份-如何备份远程SVN存储库

    我目前正在将SVN服务器从家庭服务器移至远程服务器,以便可以从其他位置更轻松地访问它。我的远程服务器未备份,因此我想定期将其备份到我的家庭服务器。

    远程服务器是Windows 2003服务器。 主服务器是Windows Home Server。

    做这个的最好方式是什么? 我可以每天晚上让我的家庭服务器获取远程服务器的转储吗? 带宽不是一个很大的考虑因素,但是如果我可以将任何新签入复制到我的家庭服务器上的SVN服务器上,那会很好。

    任何建议欢迎。

    Roaders asked 2020-06-19T01:45:38Z

    9个解决方案

    116 votes

    只需使用svnsync命令。

    首先,在您的家用计算机上创建一个新的存储库。

    svnadmin create c:\backuprepo

    或在Unix上:

    svnadmin create ./backuprepo

    接下来,创建一个名为pre-revprop-change.bat的文件:

    echo exit 0 > c:\backuprepo\hooks\pre-revprop-change.bat

    或在Unix上:

    echo -ne '#!/bin/sh\nexit 0' > ./backuprepo/hooks/pre-revprop-change

    chmod ugo+x ./backuprepo/hooks/pre-revprop-change

    然后,初始化同步:

    svnsync init file:///c:/backuprepo https://url/of/your/repository

    或在Unix上:

    svnsync init file:///Volumes/volumelabel/backuprepo https://url/of/your/repository

    之后,您只需运行

    svnsync sync file:///c:/backuprepo

    大约一天一次,您将仅获得备份存储库中尚未发生的那些更改。 第一次需要一段时间,但是在将备份存储库与实际备份存储库同步之后,只需几秒钟即可同步它,因为仅需要同步那些新的修订。

    Stefan answered 2020-06-19T01:46:23Z

    17 votes

    从1.7版开始,您还可以使用新命令svnrdump。从文档中:

    转储(即生成的存储库转储流)对位于SOURCE_URL的存储库项目的修订,将信息打印到标准输出。

    用法是:

    svnrdump dump http://example.com/repos/ > repos.dump

    这将在svnrdump中创建存储库的“转储文件”。这是对存储库数据(包括历史记录)的完整备份,但是Subversion客户端无法直接读取。 如果需要还原此数据,请使用标准的gzip工具:

    svnadmin create c:\backup-repos

    svnadmin load c:\backup-repose < repos.dump

    尚未进行任何测试,但是最终结果可能会比2929192827840840103424慢。gzip每次都会对存储库进行一次完整的转储,我假设synsync仅从上次运行以来才导入存储库中的更改。 但是,您将拥有一个包含整个存储库的文件,该文件可能更容易管理,也可能不容易管理。

    请注意,您可能希望将svnrdump的输出通过gzip或类似程序进行传递,以可能显着减小输出文件的大小。

    joesdiner answered 2020-06-19T01:47:06Z

    11 votes

    创建本地存储库

    svnsync sync file:Users/jsmith/repo

    创建一个空的revprop-change挂钩脚本

    svnsync sync file:Users/jsmith/repo

    使pre-revprop-change挂钩脚本可执行

    svnsync sync file:Users/jsmith/repo

    初始化svnsync

    svnsync sync file:Users/jsmith/repo

    同步仓库

    svnsync sync file:Users/jsmith/repo

    yanokwa answered 2020-06-19T01:48:04Z

    7 votes

    rsync(或DeltaCopy是Windows UI的顶部)是在文件系统级别增量复制完整存储库的一个不错的选择。

    您也可以使用svnsync将新修订直接从一台SVN服务器复制到另一台SVN服务器。

    Wim answered 2020-06-19T01:48:29Z

    2 votes

    您可以在远程服务器上使用脚本,该脚本转储存储库,然后将其复制到本地计算机(或将其保留在预定义位置以供本地计算机复制)

    您可以使用rsync或scp同步备份目录。

    该脚本可以与“计划任务”一起运行,并且可以生成唯一命名的备份文件,稍后将通过本地计算机以上述方式同步该备份文件。 (然后可能删除)

    EFraim answered 2020-06-19T01:48:58Z

    2 votes

    在我撰写本文时,EFraim提到了rsync,因此已涉及到。

    如果您不想使用它,Subversion本书提供了svnadmin dump --incremental选项,在此处进行了说明:

    存储库维护(将页面向下滚动到“备份”部分)

    迁移存储库中有关svnadmin dump --incremental的示例

    但是,要成功完成此操作,您必须处理修订号-重新同步原始存储库数据目录会更加容易。

    困难的部分可能是设置rsync,以便您的本地和远程计算机可以安全地通信(即在2003服务器上设置SSH服务)。 Wim提到的DeltaCopy非常有趣,这将是我的第一枪。 仅适用于命令行操作,这是有关如何使Rsync作为Windows 2003上的服务运行的方法。

    Pekka 웃 answered 2020-06-19T01:49:41Z

    1 votes

    我将使用svnsync或svnadmin hotcopy,因为即使交易正在进行,这两种技术都可以保证从存储库中复制有效数据。 取决于存储库格式,其他文件同步技术可能不那么可靠。

    Damian Powell answered 2020-06-19T01:50:01Z

    0 votes

    在Mac OS X 10.10中,/Library/Developer/CommandLineTools/usr/bin/svnrdump命令位于此处:

    /Library/Developer/CommandLineTools/usr/bin/svnrdump

    然后,您可以使用joesdiner的上述答案。

    Software Engineer answered 2020-06-19T01:50:30Z

    0 votes

    为了扩展Stefans的答案,以下是一些Windows批处理脚本,以帮助稍微自动化该过程。

    svn-backup-init.bat

    @echo off

    set /P directory="Local Directory: "

    set /P URL="Svn URL: "

    echo "Running SVN backup";

    @echo on

    svnadmin create %directory%

    echo exit 0 > %directory%\hooks\pre-revprop-change.bat

    svnsync init file:///%directory% %URL%

    svnsync sync file:///%directory%**strong text**

    该脚本将创建svn存储库,并将其检出并立即进行同步。 运行脚本时,只需输入将存储库放置在本地的目录以及要使用的服务器的URL。

    svn-backup-run.bat

    for /d %%i in (%~dp0*) do ( svnsync sync file:///%%i )

    这将循环遍历每个目录并运行svnsync命令。 如果您有多个存储库,请将它们检出到同一文件夹中。 然后可以轻松地将其添加为Windows中的“任务”,以一次更新所有存储库。

    资料夹结构

    我使用这样的文件夹结构:

    .

    ├── svn-backups

    | ├── repo-1

    | ├── repo-2

    | ├── repo-3

    | ├── svn-backup-init.bat

    | └── svn-backup-run.bat

    Joe Jankowiak answered 2020-06-19T01:51:16Z

    展开全文
  • svn远程备份

    2019-03-02 09:30:17
    网络上如何进行远程svn备份 首先建立版本库,apache下建立用户。
  • 去网上调查了一下,发现一般是在sever端使用svndump命令dump出一个库来实现svn库的迁移。但是我哪有ssh淘宝code服务器的权限啊。。。 我的直觉告诉我,这个问题很普遍,肯定有大神做过解决这个问题的工具。...

    最近淘宝code越来越不给力了,没事总是500 Internal Server Error,已经严重影响工作效率了,最近svn服务器也搭好了于是决定迁移。

    去网上调查了一下,发现一般是在sever端使用svndump命令dump出一个库来实现svn库的迁移。但是我哪有ssh淘宝code服务器的权限啊。。。

    我的直觉告诉我,这个问题很普遍,肯定有大神做过解决这个问题的工具。果不其然,我在oschina找到了rsvndump

    虽然有段时间没更新了,但是依然能正常使用。

    安装就略过了,基本就是./configure && make && make install,Linux下源码安装的标准流程。没发现什么依赖库之类的东西,我用的centos7,svn肯定要有的吧。

    使用:

    rsvndump svn://host -u user  >  svn.dump  
    svnadmin create --fs-type=fsfs svn
    svnadmin load mysvn < svn.dump
    svnserve -d -r mysvn

    这样svndump就算完成了。

    实际使用感受:淘宝code太坑爹,每次基本dump不到100 revision 就返回500了。明天在尝试一下svnsync,还不行的话只能取出代码,放弃历史记录了。。。


    转载于:https://my.oschina.net/u/1242185/blog/324237

    展开全文
  • 下边提供一种简易方法,不仅可以用来备份数据库文件,也可以备份其他任何文件,我们通过SVN来监控文件增量,定时提交至远程SVN仓库,只需要安装SVN,执行以下自动提交脚本: :start @echo 开始批量提交 "C:\...

    数据库备份一般有冷备份和热备份两种,数据库本地备份方案非常多就不介绍了,但本地数据库在发生服务器宕机时,整个局域网可能都受到波及,为了能容灾我们常常需要异地备份

    下边提供一种简易方法,不仅可以用来备份数据库文件,也可以备份其他任何文件,我们通过SVN来监控文件增量,定时提交至远程的SVN仓库,只需要安装SVN,执行以下自动提交脚本:

    :start
    @echo 开始批量提交
    "C:\Program Files (x86)\Subversion\bin\svn.exe" add "D:\backup" --no-ignore --force
    call "C:\Program Files (x86)\Subversion\bin\svn.exe" commit -m "database auto commit" "D:\backup"
    echo 提交完成 休眠中...
    ping -n 172800 127.0.0.1>nul
    goto start
    pause  

    部分解释:

    此命令用来调用SVN执行程序,监测指定磁盘位置下新增的文件,并添加至SVN的监测

    此命令用来调起svn程序,提交上一步监测到的指定磁盘位置新增的文件

    此命令用来计时,达到定时运行的目的,这里通过ping本机来计时,172800为次数,1次1秒

    此命令在计时结束后运行,表示跳转至上述程序中 :start 的位置重新向下执行程序

     

    展开全文
  • svn 代码都会备份储存在远程的服务器上,以避免哪天公司的svn 服务器瘫痪了,无法在短时间内恢复,或是自然灾害所有的数据都丢失,有了这些储存在远程服务器上的代码,很容易短时间内恢复生产。 但是储存在远程...

    svn 代码都会备份储存在远程的服务器上,以避免哪天公司的svn 服务器瘫痪了,无法在短时间内恢复,或是自然灾害所有的数据都丢失,有了这些储存在远程服务器上的代码,很容易短时间内恢复生产。

    但是储存在远程服务器上的代码需要时不时的从远程服务器上下载下来进行测试(以保证代码在急用的时候可以立即使用)

     

    我的测试环境

    centos 6.8 + usvn 1.0.6 + svn 1.6.11 + apache 2.2.15 + php 5.3 + Database PDO_MySQL

    如果svn 的部署在虚拟机上,其实可以直接克隆svn 服务器,把这个服务器的备份部署在网络里(),以便服务器在短时间无法修复的时候可以立马使用(而且有条件的话这个备份文件也可以储存在远程服务器上)。

    我在测试过程中发现原svn 运行环境已经升级

    Centos 7.4 + Usvn 1.0.7 + svn 4.8.19 + apache 2.4.6 + php 5.4.16 + Database PDO_MySQL

    所以当把备份从远程服务器上拷贝到备份服务器svn repo 路径的时候,usvn 显示:

    Can't list subversion repository: svn: Unable to open an ra_local session to URL svn: Unable to open repository 'file:///var/www/html/usvn/files/svn/wrws_priips' svn: Expected FS format between '1' and '4'; found format '6'

    备份服务器使用的是 svn 1.6,svn 服务器使用的是 svn 1.8.

    “PathSvn”/”ProjectName”/db/format

    修改

    6

    layout sharded 1000

    To

    4

    layout sharded 1000

    可能还会遇到权限错误:

    Can't list subversion repository: svn: Unable to open an ra_local session to URL svn: Unable to open repository 'file:///var/www/html/usvn/files/svn/svn/wrws_priips' svn: Can't open file '/var/www/html/usvn/files/svn/svn/wrws_priips/format': Permission denied

    chown -r apache:apache projectName (修改为apache 服务器可以访问的权限)

    还因为apache 服务器版本不同一个使用的是2.2,一个是2.4 所有httpd.conf 的语法略有区别。

    展开全文
  • 利用svnadmin hotcopy可以实现完全备份,但不能进行增量备份。svnadmin hotcopy是将整个库都...如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。缺点是:比较耗费硬盘...
  • 使用svnsync备份(远程)svn仓库

    千次阅读 2012-04-29 11:15:10
    =摘要= 在svn中,利用svnsync命令可以对某个代码仓库进行备份.这里主要简介怎么使用svnsync进行仓库备份以及一些需要注意的地方. ...这里的备份是完全复制一个远程仓库. 1: 使用svnadmin仓库一人本地的空的仓库. $
  • 远程镜像与备份SVN 服务器 此文讲述SVN 如何镜像服务器,注意是单向镜像。众所周知,SVN 有自已的镜像命令
  • 远程镜像与备份SVN服务器 如需转载,请注明出处:http://bbs.iusesvn.com/thread-3068-1-1.html 此文讲述SVN如何镜像服务器,注意是单向镜像。众所周知,SVN有自已的镜像命令svnsync(svn1.4以及以上版本特性),...
  • 远程svn服务器 内容精选换一换远程桌面链接Windows云服务器报错:连接被拒绝,因为没有授权此用户账户进行远程登录。Windows远程桌面相关权限配置异常。在运行窗口输入secpol.msc,打开组策略编辑器打开"本地策略 &...
  • 此文讲述SVN如何镜像服务器,注意是单向镜像。众所周知,SVN有自已的镜像命令svnsync(svn1.4以及以上版本特性),但是部署与维护确是繁琐至极,令人望而却步。
  • Centos7.4从无到有搭建完整的svn有本地备份远程带密码备份 一、centos7.4 python-pip安装 1. yum -y install epel-release 2. yum install python-pip 二、centos7.4 pexpect安装 1.pip install pexpect ...
  • svn远程完全增量备份批处理文件。还有相关参考文件。
  • ### SVN远程备份管理器(SVN RBM) ### ############################################################## 名称: SVN Remote Backup Manager版本: -1.0.0作者: -Amit Kumar Mishra System requirements :- ...
  • SVN 备份及还原包括逻辑和物理备份,逻辑备份包含了本地备份和通过FTP脚本的备份,定期执行计划保证数据丢失。里面有3个文档和编写好的bat脚本
  • SVN备份

    2016-05-24 15:18:00
    关于SVN备份我甚是头疼,花了比学会搭建SVN的时间还要长。 我在两种方法中纠结,后来实际案例给了我答案! svnadmin dump 备份语法1:svnadmin dump -r 起始版本:结束版本 项目路径 > full.$DATE (全备) ...
  • 使用svnsync实时备份SVN版本库

    万次阅读 热门讨论 2015-01-27 15:27:55
    前段时间把SVN版本库从win迁移到了Linux上,没隔几天那台win的磁盘就严重坏道了。。。。这TMD什么运气! 花费了点时间研究了下...svnsync是Subversion的远程版本库镜像工具,它允许你把一个版本库的内容录入到另一
  • SVN备份策略

    2016-05-03 11:08:50
    转载:http://www.svnspot.com/svn/svnconf/27570_1.html (本文例子基于FreeBSD/Linux实现,windows环境请自己做出相应修改)  配置管理的一个重要使命是保证数据的安全性,防止服务器应硬盘损坏、误操作造成...
  • SVN备份常用命令

    2019-10-06 11:25:35
    svn备份常用命令 1、完全备份和增量备份svn。 svnadmin dump /svn/project/www > full.svn.bak #完全备份/svn/project/www这个版本库,并另存为full.svn.bak svnadmin dump /svn/project/...
  • svn服务器:192.168.40.110备份服务器:192.168.40.162在svn服务器进行本地备份1.全量备份#vim/data/shell/backup_svn.sh #!/bin/sh # PATH=$PATH:/usr/local/subversion/bin exportPATH #定义时间变量,用于文件名...
  • linux远程查看svn服务器 内容精选换一换远程连接Linux云服务器报错:read: Connection reset by peer安全组未放通远程登录端口。防火墙开启,且关闭了远程连接端口。针对此问题,我们推荐采用以下方式来排查:检查...
  • 整理了一下svnrsync的配置我的环境:(环境不必与我相同,视实际而定,我试过备用低版本的SVN Server同步,也成功了)主SVN Server(Windows Server 2008 R2 + VisualSVN Server Manager r2.54)备用SVN Server(Windows ...
  • tarname = now.strftime(basedir+iplist[0]+'_SVNDump_' +name[-1]+ '_%Y%m%d_%H%M%S.tar.gz') #print tarname tar = tarfile.open(tarname, 'w|gz') tar.add(filename) tar.close() scp = pexpect.spawn...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,832
精华内容 4,732
关键字:

备份远程svn