• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 10
    • 下载费用:30 金币  

    重庆时时彩360论坛: 一种SUBVERSION配置库的备份方法及装置.pdf

    关 键 词:
    一种 SUBVERSION 配置 备份 方法 装置
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201010119877.4

    申请日:

    2010.03.04

    公开号:

    CN102193841A

    公开日:

    2011.09.21

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 11/14申请日:20100304|||公开
    IPC分类号: G06F11/14 主分类号: G06F11/14
    申请人: 阿里巴巴集团控股有限公司
    发明人: 张静
    地址: 英属开曼群岛大开曼岛资本大厦一座四层847号邮箱
    优先权:
    专利代理机构: 北京集佳知识产权代理有限公司 11227 代理人: 逯长明;王宝筠
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201010119877.4

    授权公告号:

    102193841B||||||

    法律状态公告日:

    2013.07.31|||2011.11.23|||2011.09.21

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本申请公开了一种Subversion配置库的备份方法及装置。一种Subversion配置库的备份方法包括:预先为备份配置库设置版本属性,所述版本属性用于记录备份配置库中最后一个版本的标识;根据备份配置库的版本属性,执行配置库同步操作;如果同步操作成功,则将备份配置库的版本属性值更新为本次成功同步的版本标识;如果同步操作失败,则在确定当前版本为不可同步版本之后,通过完全拷贝方式对源配置库进行备份,并且将备份配置库的版本属性值更新为所述不可同步版本的标识。

    权利要求书

    1.一种Subversion配置库的备份方法,其特征在于,预先为备份配置库设置版本属性,所述版本属性用于记录备份配置库中最后一个版本的标识;所述备份方法包括:根据备份配置库的版本属性,执行配置库同步操作;如果同步操作成功,则将备份配置库的版本属性值更新为本次成功同步的版本标识;如果同步操作失败,则在确定当前版本为不可同步版本之后,通过完全拷贝方式对源配置库进行备份,并且将备份配置库的版本属性值更新为所述不可同步版本的标识。2.根据权利要求1所述的方法,其特征在于,所述确定当前版本为不可同步版本的方法包括:获取同步操作失败的错误信息;根据错误信息,确定当前版本为不可同步版本;或根据错误信息进行相应的错误处理后,仍然同步操作失败,则确定当前版本为不可同步版本。3.根据权利要求2所述的方法,其特征在于,所述根据错误信息进行相应的错误处理,包括:错误信息为:备份配置库锁定,则删除备份配置库的同步锁定属性。4.根据权利要求2所述的方法,其特征在于,所述根据错误信息进行相应的错误处理,包括:错误信息为:备份配置库的某个文件锁定,则删除所述文件的锁属性。5.根据权利要求2所述的方法,其特征在于,所述根据错误信息进行相应的错误处理,包括:错误信息为:备份配置库最后一个版本错误,则删除备份配置库中最后一个版本,并且将备份配置库的版本属性值修改为所述最后一个版本的前一个版本的标识。6.一种Subversion配置库的备份装置,其特征在于,包括:同步单元,用于根据备份配置库的版本属性,执行配置库同步操作;同步成功处理单元,用于在同步操作成功时,将预先设置的备份配置库的版本属性值更新为本次成功同步的版本标识;其中,所述预先设置的版本属性用于记录备份配置库中最后一个版本的标识;同步失败处理单元,用于在同步操作失败时,在确定当前版本为不可同步版本之后,通过完全拷贝方式对源配置库进行备份,并且将备份配置库的版本属性值更新为所述不可同步版本的标识。7.根据权利要求6所述的装置,其特征在于,还包括:不可同步版本确定单元,该单元包括:错误信息获取子单元,用于获取同步操作失败的错误信息;第一确定子单元,用于根据错误信息,确定当前版本为不可同步版本;错误处理子单元,用于根据错误信息进行相应的错误处理;第二确定子单元,用于在进行错误处理后仍然同步操作失败时,确定当前版本为不可同步版本。8.根据权利要求7所述的装置,其特征在于,当错误信息为:备份配置库锁定,则所述错误处理子单元删除备份配置库的同步锁定属性。9.根据权利要求7所述的装置,其特征在于,当错误信息为:备份配置库的某个文件锁定,则所述错误处理子单元删除所述文件的锁属性。10.根据权利要求7所述的装置,其特征在于,所述根据错误信息进行相应的错误处理,包括:当错误信息为:备份配置库最后一个版本错误,则所述错误处理子单元删除备份配置库中最后一个版本,并且将备份配置库的版本属性值修改为所述最后一个版本的前一个版本的标识。

    说明书

    一种Subversion配置库的备份方法及装置

    技术领域

    本申请涉及计算机应用技术领域,特别是涉及一种Subversion配置库的备份方法及装置。

    背景技术

    Subversion,简称SVN,是一种近几年发展起来的代码版本管理软件,相对于传统的版本控制软件,SVN具有诸多优势。目前,已经有越来越多的开发者开始使用SVN进行代码的管理和控制。

    对于代码版本管理软件而言,配置库的备份是一种必要的需求,现有技术中,最常见和简单的备份方法就是直接使用拷贝命令,将配置库目录拷贝到备份目录上。但是,由于配置库的数据量往往非常大,因此每次完全备份都需要很长的时间。

    现有技术的另一种方式是使用sync命令对配置库进行同步,每进行一次同步操作,备份配置库仅对源配置库中相对上一次同步时所更新的内容进行备份,因此备份速度明显提高。但是,这种方法所存在的问题是:一旦在某次同步过程中发生错误,那么后续的版本也将无法继续同步更新,当前已备份的正确数据也无法进行使用。而且即使从零开始重新部署一个新的备份配置库,仍然无法保证后续的同步操作中不出现错误,也就是说,配置库同步操作在实际上可能是无法持续进行的。

    发明内容

    为解决上述技术问题,本申请实施例提供一种Subversion配置库的备份方法及装置,以实现对配置库同步错误的处理,保证配置库的同步操作能够持续进行,技术方案如下:

    一种Subversion配置库的备份方法,预先为备份配置库设置版本属性,所述版本属性用于记录备份配置库中最后一个版本的标识;所述备份方法包括:

    根据备份配置库的版本属性,执行配置库同步操作;

    如果同步操作成功,则将备份配置库的版本属性值更新为本次成功同步的版本标识;

    如果同步操作失败,则在确定当前版本为不可同步版本之后,通过完全拷贝方式对源配置库进行备份,并且将备份配置库的版本属性值更新为所述不可同步版本的标识。

    一种Subversion配置库的备份装置,包括:

    同步单元,用于根据备份配置库的版本属性,执行配置库同步操作;

    同步成功处理单元,用于在同步操作成功时,将预先设置的备份配置库的版本属性值更新为本次成功同步的版本标识;其中,所述预先设置的版本属性用于记录备份配置库中最后一个版本的标识;

    同步失败处理单元,用于在同步操作失败时,在确定当前版本为不可同步版本之后,通过完全拷贝方式对源配置库进行备份,并且将备份配置库的版本属性值更新为所述不可同步版本的标识。

    现有技术中,在对配置库进行首次同步之前,需要先创建一个空的备份配置库并对其进行初始化,一旦在某次同步过程中发生错误,将导致之前已经备份的正确数据无法使用,并且同步操作也难以继续。而应用本申请技术方案无需对备份配置库进行初始化,通过直接为备份配置库设置版本属性,可以在同步操作无法正确进行时,通过拷贝的方式进行备份,然后通过修改备份配置库的版本属性,使得同步操作可以在当前拷贝备份的基础上继续进行。

    此外,本申请还针对一些特定的同步失败原因,提供了相应的自动处理方法,如果自动处理之后可以直接继续进行同步处理,则可以避免使用完全拷贝方式,从而进一步提高配置库的备份效率。

    附图说明

    为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

    图1为本申请实施例的Subversion配置库备份方法流程图;

    图2为本申请实施例的Subversion配置库备份装置的结构示意图;

    图3为本申请实施例的Subversion配置库备份装置的另一种结构示意图。

    具体实施方式

    现有的配置库同步方案,在对配置库进行首次同步之前,需要先创建一个空的备份配置库并使用svnsync?init命令对其进行初始化,一旦在某次同步过程中发生错误,将导致之前已经备份的正确数据无法使用,并且即使重新部署一个新的备份配置库,仍然难以保证后续同步操作的正确进行。

    为解决上述技术问题,本申请提供的技术方案是:预先为备份配置库设置一个版本属性,这个版本属性的作用是记录备份配置库中最后一个版本的标识,其中,在正常情况下,“最后一个版本”即为上一次成功同步的版本,而当同步失败时,可以通过修改该属性值,使得同步操作能够持续进行。

    本申请实施例所提供的Subversion配置库备份方法包括以下基本步骤:

    根据备份配置库的版本属性,执行配置库同步操作;

    如果同步操作成功,则将备份配置库的版本属性值更新为本次成功同步的版本标识;

    如果同步操作失败,则在确定当前版本为不可同步版本之后,通过完全拷贝方式对源配置库进行备份,并且将备份配置库的版本属性值更新为所述不可同步版本的标识。

    应用上述方案,无需对备份配置库进行初始化,通过直接为备份配置库设置版本属性,可以在同步操作无法正确进行时,通过拷贝的方式进行备份,然后通过修改备份配置库的版本属性,使得同步操作可以在当前拷贝备份的基础上继续进行。

    为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例?;诒旧昵胫械氖凳├?,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请?;さ姆段?。

    图1所示为本申请实施例所提供的Subversion配置库备份方法流程图,其中,设repo1为源配置库、repo2为备份配置库,该方法包括以下步骤:

    S101,根据备份配置库的版本属性,执行配置库同步操作;

    在进行配置库同步操作之前,需要对备份配置库进行属性设置,其中,必要的属性设置包括备份配置库的版本属性:

    svn:sync-last-merged-rev

    该属性所记录的是备份配置库中最后一个版本的标识,即repo2/db/current中记录的版本号,如果当前的配置库为空,则可以取版本号为0。在下一次同步时,通过读取该属性,就可以继续进行后续版本的同步。

    此外,需要设置的备份配置库属性还包括:

    源配置库的标识:

    svn:sync-from-uuid

    该属性所记录的是同步操作时所读取的配置库的标识,其中uuid为配置库的标识,在本实施例中,所设置的属性值即为repo1的uuid。

    源配置库的地址:

    svn:sync-from-url

    该属性所记录的是源配置库的存储路径,在本实施例中,所设置的属性值即为repo1的存储路径。

    上述属性均为repo2的全局属性,属性设置完毕后,就为源配置库和备份配置库建立了同步链接,执行svnsync?sync?//localhost/repo2进行同步操作,根据repo2的版本属性sync-last-merged-rev,即可将源配置库中该版本之后的更新版本备份至repo2。

    其中,也可以做进一步的配置,以实现在repo1有新的修订版本提交时自动同步,从而建立repo1和repo2的实时同步。例如,可以通过对repo1的post-commit文件进行脚本定义,使得repo1在有新修订版本提交时,自动触发执行同步操作。

    S102,如果同步操作成功,则将备份配置库的版本属性值更新为本次成功同步的版本标识;

    在正常情况下,每次同步操作成功之后,则自动将repo2的版本属性更新为刚刚成功同步的版本标识。在下一次同步时,就会直接在该版本内容的基础上进行内容更新。

    S103,如果同步操作失败,则在确定当前版本为不可同步版本之后,通过完全拷贝方式对源配置库进行备份,并且将备份配置库的版本属性值更新为所述不可同步版本的标识。

    如果同步操作不成功,则可以直接确定当前版本为不可同步版本。这里所述的不可同步版本,仍然是一个可以正确运行的版本,其本身的代码并不存在问题,只是由于某种原因,导致无法正确同步到备份配置库中去。此时,可以通过完全拷贝的方式,将源配置库中的所有版本(包括其中的不可备份版本)重新备份到备份配置库。

    现有技术中,同步操作必须在对空备份配置库进行初始化之后进行,如果之前的版本采用的是拷贝方式进行备份,则无法在此基础上再进行同步操作。而在本发明实施例中,通过拷贝方式备份源配置库以后,还要进一步将备份配置库的版本属性修改成不可同步版本的版本号。也就是说,通过修改版本属性,令系统把通过拷贝方式备份的版本识别为通过同步方式备份的版本,从而将无法同步的版本跳过,保证同步继续进行。

    当然,在实际应用中,有些特定原因所导致的同步失败,是可以通过一定的方法进行快速处理的。因此,本申请实施例还提供以下的同步失败自动处理方法:

    当出现同步操作失败时,首先获取相应的错误信息,常见的错误信息包括:备份配置库锁定、备份配置库的某个文件锁定、备份配置库最后一个版本错误等,以下将分别进行说明。

    a)备份配置库锁定:

    该类错误的错误信息类似“Failed?to?get?lock?on?destination?repos,currentlyheld?by′alicode:1b27a4fd-fb0e-42a0-a13f-9091cc87b9ac′”的形式,其中“alicode”为机器名。

    在同步过程中,可能会因为网络断线或者其他因素导致sync程序中止,再执行下一次同步时就会失败,这时候需要清除备份配置库的锁?;?,即通过以下命令删除备份配置库的sync-lock属性:

    svn?propdel?svn:sync-lock--revprop-r?0//localhost/repo2

    b)备份配置库的某个文件锁定:

    该类错误的错误信息为:

    svnsync:Server?sent?unexpected?return?value(423?Locked)

    Subversion在客户端可以使用lock功能将某个目录或文件进行锁定,只有锁定人员可以修改该文件或目录,在进行同步的时候,备份库如果出现这样的版本,执行同步时会因没有权限而导致同步失败,此时需要将备份库中的相应文件锁清除才能继续同步,具体方法如下:

    svnadmin?rmlocks?repo2/xxxx

    其中,xxxx表示被锁文件的路径及文件名。

    c)备份配置库最后一个版本错误:

    该类错误的错误信息为:

    svnsync:Missing?node-id?in?node-rev

    在同步过程中,可能会因为网络或配置库响应速度等问题造成备份库的最新版本提交信息不完整,即最后同步的版本信息不全,此时备份配置库表现为不可用,也无法继续同步。应用本申请所提供的技术方案,可以删除备份配置库的最后版本,即删除repo2/db/revs和repo2/db/reprops路径下的最新版本,同时将repo2/db/current中记录的版本号-1。同时,还要将备份配置库的版本属性值修改为所述最后一个版本的前一个版本的标识,以便在下一次同步时,重新备份之前没有备份完整的版本。

    以上例举了三种典型原因所导致同步失败的快速处理方法,如果经上述方法自动处理之后可以直接继续进行同步处理,则可以避免使用完全拷贝方式,从而进一步提高配置库的备份效率。如果在进行相应的错误处理后,仍然同步操作失败,则可以确定当前版本为不可同步版本,需要进一步执行S103。

    当然,导致同步失败的原因可能是多种多样的,一方面,能够快速处理的错误也不仅限于以上三类,本领域技术人员可以根据实际情况添加其他的快速错误处理机制;另一方面,对于无法快速处理的错误,甚至是不清楚原因的错误,也可以直接根据错误信息,确定当前版本为不可同步版本,然后进一步执行S103。

    相应于上面的方法实施例,本申请还提供一种Subversion配置库的备份装置,参见图2所示,包括:

    同步单元210,用于根据备份配置库的版本属性,执行配置库同步操作;

    同步成功处理单元220,用于在同步操作成功时,将预先设置的备份配置库的版本属性值更新为本次成功同步的版本标识;其中,所述预先设置的版本属性用于记录备份配置库中最后一个版本的标识;

    同步失败处理单元230,用于在同步操作失败时,在确定当前版本为不可同步版本之后,通过完全拷贝方式对源配置库进行备份,并且将备份配置库的版本属性值更新为所述不可同步版本的标识。

    应用上述提供的Subversion配置库备份装置,无需对备份配置库进行初始化,通过直接为备份配置库设置版本属性,可以在同步操作无法正确进行时,通过拷贝的方式进行备份,然后通过修改备份配置库的版本属性,使得同步操作可以在当前拷贝备份的基础上继续进行。

    参见图3所示,本申请所提供的Subversion配置库备份装置置还可以包括:不可同步版本确定单元240,该单元具体可以包括:

    错误信息获取子单元,用于获取同步操作失败的错误信息;

    第一确定子单元,用于根据错误信息,确定当前版本为不可同步版本;

    错误处理子单元,用于根据错误信息进行相应的错误处理;

    第二确定子单元,用于在进行错误处理后仍然同步操作失败时,确定当前版本为不可同步版本。

    其中,当错误信息为:备份配置库锁定,则所述错误处理子单元删除备份配置库的同步锁定属性。

    当错误信息为:备份配置库的某个文件锁定,则所述错误处理子单元删除所述文件的锁属性。

    当错误信息为:备份配置库最后一个版本错误,则所述错误处理子单元删除备份配置库中最后一个版本,并且将备份配置库的版本属性值修改为所述最后一个版本的前一个版本的标识。

    上述装置中的不可同步版本确定单元240,可以针对一些特定的同步失败原因,进行相应的自动处理方法,如果自动处理之后可以直接继续进行同步处理,则可以避免使用完全拷贝方式,从而进一步提高配置库的备份效率。

    为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

    通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现?;谡庋睦斫?,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

    本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上??梢愿菔导实男枰≡衿渲械牟糠只蛘呷磕?槔词迪直臼凳├桨傅哪康?。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

    本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

    本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序???。一般地,程序??榘ㄖ葱刑囟ㄈ挝窕蚴迪痔囟ǔ橄笫堇嘈偷睦?、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序??榭梢晕挥诎ù娲⑸璞冈谀诘谋镜睾驮冻碳扑慊娲⒔橹手?。

    以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的?;し段?。

    关于本文
    本文标题:一种SUBVERSION配置库的备份方法及装置.pdf
    链接地址://www.4mum.com.cn/p-5865230.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 逆袭彩票计划软件APP 广东福彩快乐十分中奖规则 天天快3计划软件免费 网上投注站哪些是正规 北京pk10直播现场 幸运飞艇前二复式APP pk10技巧经验 5000千12期倍投稳赚方案图片 pk10走势图定位技巧 新版gb直播 快三跟计划怎么稳赚 老时时彩走势图五星 北京pk10手机免费软件 一分快三彩票计划网站 双色球胆2拖9 630注倍投稳赚方案