Skip to content

xuzhuoxi/SVNArchiver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SVNArchiver

SVN归档工具

中文 | English

兼容性

go 1.16.15

开始

2.1 下载

  • 下载发行版本 这里.
  • 下载仓库:
  go get -u github.com/xuzhuoxi/SVNArchiver

2.2 构建

  • 如果你已经下载整个仓库及相关依赖仓库,你可以执行构造脚本获得执行程序。
  • 如有必要,你可以修改 (goxc_build.sh)来进行自定义的构造,构造工具的说明在这里.

2.3 运行

  • 运行机器上要求已经安装配置好Svn客户端工具。
  • 仅支持命令行运行
  • 参考命令:
    • 查询提交信息功能:
    • 完整归档功能:
      • 版本号完整归档
        SVNArchiver -env=环境路径 -r=12 -target=与环境路径相关的相对Svn目录 -arch=归档文件路径_{d}_{r}.zip
      • 时间点完整归档
        SVNArchiver -d=20060102T150405 -target=Svn目录 -arch=归档文件路径_{d}_{r}.zip
    • 差异归档功能:
      • 版本号差异归档
        SVNArchiver -env=环境路径 -r0=1 -r1=15 -target=与环境路径相关的相对Svn目录 -arch=归档文件路径_{d0}_{d1}_{r0}_{r1}.zip
      • 时间点差异归档
        SVNArchiver -d0=20220703 -d1=20220709T150405 -target=Svn目录 -arch=归档文件路径_{d0}_{d1}_{r0}_{r1}.zip
    • 根据配置xml进行归档:

用户手册

3.1 参数说明

  • -env
    环境路径, 用于指定一个基础路径,覆盖执行程序"SVNArchiver"的目录,然后-target和-arch则可使用相对路径。
    若不指定,则使用执行文件所在目录作为环境路径。

  • -xml
    批量任务的配置文件路径。

  • -size
    查询条目显示的最大数量,要求>=0, 当值为0时,认定为无限制。

  • -target
    归档处理的svn目录,可以是svn仓库的非根目录

  • -arch
    归档文件保存路径,支持通配符

  • -r
    完整归档时使用, 用于指定具体版本号,并使用该版本号(或向前最近的版本号)进行归档。

  • -d
    完整归档时使用, 用于指定一个时间点,并使用该时间点上的版本号(或向前最近的版本号)进行归档。

  • -r0
    差异归档时使用, 用于指定起始版本号。

  • -r1
    差异归档时使用, 用于指定结束版本号。

  • -d0
    差异归档时使用, 用于指定起始时间。

  • -d1
    差异归档时使用, 用于指定结束时间。

  • 注意

    1. 版本号指定要求确定,如果svn目录上为非连贯版本号且没有指定的版本号,则使用向前最近的版本号代替。
    2. 时间指定不要求确定,最终使用的时当前时间上的或向前最近的版本号。
    3. 使用版本号配置进行差异归档时,-r0与-r1至少有一个。 当只有-r0时,-r1会设置为最大的版本号。 当只有-r1时,-r0全设置为相对于-r1上一个版本号
    4. 使用时间配置进行差异归档时,-d0与-d1至少有一个。 当只有-d0时,-d1会设置为最新的时间。 当只有-d1时,-d0会设置为相对-d1关联到的版本号的上一个版本号时间
    5. 带"r"的参数与带"d"的参数不应该同时使用。
    6. -arch可使用固定路径,也可以使用通配符路径, 通配符会被实际使用的版本号或时间填充。
    7. 完整归档时-arch支持带**{d}{r}**的通配符路径。
    8. 差异归档时-arch支持带**{d0}{d1}{r0}{r1}**的通配符路径。

3.2 功能说明

  • 查询提交信息功能
    示例: SVNArchiver -size=50 -target=Svn目录

    • -size: 非必要
      打印条目的数量限制,没有则代表没限制。
  • 基于版本号的完整归档
    示例: SVNArchiver -env=环境路径 -r=12 -target=归档Svn目录 -arch=归档文件路径_{d}_{r}.zip

    • -env:非必要
      指定一个新的环境路径,用于覆盖执行程序"SVNArchiver"的目录。
    • -r:必要
      归档版本号,要求是svn仓库中真实存在的。
    • -target:必要
      进行归档的svn目录(可以不是svn根目录)。 支持绝对路径,也支持相对于-env的相对路径。
    • -arch:必要
      归档文件保存路径。 支持相对路径,也支持相对于-env的相对路径。 路径支持通配符"{d}"、"{r}"。
  • 基于时间点的完整归档
    示例: SVNArchiver -env=环境路径 -d=20060102T150405 -target=归档Svn目录 -arch=归档文件路径_{d}_{r}.zip

    • -env:非必要
      指定一个新的环境路径,用于覆盖执行程序"SVNArchiver"的目录。
    • -d:必要
      归档时间点,实际使用的是**<=时间点最近**的版本号进行归档。
    • -target:必要
      进行归档的svn目录(可以不是svn根目录)。 支持绝对路径,也支持相对于-env的相对路径。
    • -arch:必要
      归档文件保存路径。 支持相对路径,也支持相对于-env的相对路径。 路径支持通配符"{d}"、"{r}"。
  • 基于版本号的差异归档
    示例: SVNArchiver -env=环境路径 -r0=1 -r1=12 -target=归档Svn目录 -arch=归档文件路径_{d0}_{d1}_{r0}_{r1}.zip

    • -env:非必要
      指定一个新的环境路径,用于覆盖执行程序"SVNArchiver"的目录。
    • -r0 和 -r1:至少有一个
      归档版本号。 -r0为起始版本号, -r1为结束版本号。
      当只有-r0时,-r1会设置为最大的版本号。 当只有-r1时,-r0全设置为相对于-r1上一个版本号
    • -target:必要
      进行归档的svn目录(可以不是svn根目录)。 支持绝对路径,也支持相对于-env的相对路径。
    • -arch:必要
      归档文件保存路径。 支持相对路径,也支持相对于-env的相对路径。 路径支持通配符"{d0}"、"{d1}"、"{r0}"、"{r1}"。
  • 基于时间点的差异归档
    示例: SVNArchiver -env=环境路径 -d0=20220703 -d1=20220709T150405 -target=归档Svn目录 -arch=归档文件路径_{d0}_{d1}_{r0}_{r1}.zip

    • -env:非必要
      指定一个新的环境路径,用于覆盖执行程序"SVNArchiver"的目录。
    • -d0 和 -d1:至少有一个
      归档时间点。 -d0为起始时间点, -d1为结束时间点。
      当只有-d0时,-d1会设置为最新的时间。 当只有-d1时,-d0会设置为相对-d1关联到的版本号的上一个版本号时间
    • -target:必要
      进行归档的svn目录(可以不是svn根目录)。 支持绝对路径,也支持相对于-env的相对路径。
    • -arch:必要
      归档文件保存路径。 支持相对路径,也支持相对于-env的相对路径。 路径支持通配符"{d0}"、"{d1}"、"{r0}"、"{r1}"。
  • 基于配置文件的批量归档
    示例: SVNArchiver -xml=xml配置文件路径

    • -xml: 必要
      指定一个xml格式的配置文件路径,用户批量处理配置文件中的归档功能。

    • XML格式说明
      image

      • <main-env>为主环境路径,可选,当没有配置时默认为执行文件所在目录。
      • <log>为归档信息记录配置,可选,当没有时,归档处理则不会生成归档信息文件。
        • file属性为归档信息文件的格式,支持json和xml。
        • 归档文件提取的特征码类型,支持md5和sha1。
        • log内容值为归档信息文件的保存路径,支持绝对路径与相对路径(相对于main-env运行值)。
      • <tasks>中属性参数arch-override用于设置归档文件已经存在时是否进行覆盖,true为覆盖, false为忽略。
      • r,d,r0,r1,d0,d1为属性参数,要求与参数说明中同名参数一致。
      • <env>为任务环境路径,可选,没有配置时使用<main-env>填充。
      • <target>为svn目录路径,如果使用相对路径,则以<env>节点运行时的值作为相对目录。
      • <arch>为归档文件路径,支持通配符。 如果使用相对路径,则以<env>节点运行时的值作为相对目录。
      • <arch>中属性参数override, 用于设置当已经存在名称相同的归档文件时是否进行覆盖。 true:覆盖, flase:忽略,没有:使用arch-override属性。

3.3 注意

  • 要求安装svn客户端工具,并设置为环境变量。
  • 要求能正确连接到服务仓库。

参考文献

依赖性

联系作者

xuzhuoxi
xuzhuoxi@gmail.commailxuzhuoxi@163.com

开源许可证

SVNArchiver 源代码基于MIT许可证进行开源。