SVN归档工具
中文 | English
go 1.16.15
- 下载发行版本 这里.
- 下载仓库:
go get -u github.com/xuzhuoxi/SVNArchiver
- 如果你已经下载整个仓库及相关依赖仓库,你可以执行构造脚本获得执行程序。
- Windows下执行goxc_build.bat
- Linux下执行goxc_build.sh
- 如有必要,你可以修改 (goxc_build.sh)来进行自定义的构造,构造工具的说明在这里.
- 运行机器上要求已经安装配置好Svn客户端工具。
- 仅支持命令行运行
- 参考命令:
-
-env
环境路径, 用于指定一个基础路径,覆盖执行程序"SVNArchiver"的目录,然后-target和-arch则可使用相对路径。
若不指定,则使用执行文件所在目录作为环境路径。 -
-xml
批量任务的配置文件路径。 -
-size
查询条目显示的最大数量,要求>=0, 当值为0时,认定为无限制。 -
-target
归档处理的svn目录,可以是svn仓库的非根目录。 -
-arch
归档文件保存路径,支持通配符。 -
-r
完整归档时使用, 用于指定具体版本号,并使用该版本号(或向前最近的版本号)进行归档。 -
-d
完整归档时使用, 用于指定一个时间点,并使用该时间点上的版本号(或向前最近的版本号)进行归档。 -
-r0
差异归档时使用, 用于指定起始版本号。 -
-r1
差异归档时使用, 用于指定结束版本号。 -
-d0
差异归档时使用, 用于指定起始时间。 -
-d1
差异归档时使用, 用于指定结束时间。 -
注意:
- 版本号指定要求确定,如果svn目录上为非连贯版本号且没有指定的版本号,则使用向前最近的版本号代替。
- 时间指定不要求确定,最终使用的时当前时间上的或向前最近的版本号。
- 使用版本号配置进行差异归档时,-r0与-r1至少有一个。 当只有-r0时,-r1会设置为最大的版本号。 当只有-r1时,-r0全设置为相对于-r1的上一个版本号。
- 使用时间配置进行差异归档时,-d0与-d1至少有一个。 当只有-d0时,-d1会设置为最新的时间。 当只有-d1时,-d0会设置为相对-d1关联到的版本号的上一个版本号时间。
- 带"r"的参数与带"d"的参数不应该同时使用。
- -arch可使用固定路径,也可以使用通配符路径, 通配符会被实际使用的版本号或时间填充。
- 完整归档时-arch支持带**{d}、{r}**的通配符路径。
- 差异归档时-arch支持带**{d0}、{d1}、{r0}、{r1}**的通配符路径。
-
查询提交信息功能
示例:SVNArchiver -size=50 -target=Svn目录
- -size: 非必要
打印条目的数量限制,没有则代表没限制。
- -size: 非必要
-
基于版本号的完整归档
示例:SVNArchiver -env=环境路径 -r=12 -target=归档Svn目录 -arch=归档文件路径_{d}_{r}.zip
- -env:非必要
指定一个新的环境路径,用于覆盖执行程序"SVNArchiver"的目录。 - -r:必要
归档版本号,要求是svn仓库中真实存在的。 - -target:必要
进行归档的svn目录(可以不是svn根目录)。 支持绝对路径,也支持相对于-env的相对路径。 - -arch:必要
归档文件保存路径。 支持相对路径,也支持相对于-env的相对路径。 路径支持通配符"{d}"、"{r}"。
- -env:非必要
-
基于时间点的完整归档
示例:SVNArchiver -env=环境路径 -d=20060102T150405 -target=归档Svn目录 -arch=归档文件路径_{d}_{r}.zip
- -env:非必要
指定一个新的环境路径,用于覆盖执行程序"SVNArchiver"的目录。 - -d:必要
归档时间点,实际使用的是**<=时间点下最近**的版本号进行归档。 - -target:必要
进行归档的svn目录(可以不是svn根目录)。 支持绝对路径,也支持相对于-env的相对路径。 - -arch:必要
归档文件保存路径。 支持相对路径,也支持相对于-env的相对路径。 路径支持通配符"{d}"、"{r}"。
- -env:非必要
-
基于版本号的差异归档
示例: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}"。
- -env:非必要
-
基于时间点的差异归档
示例: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}"。
- -env:非必要
-
基于配置文件的批量归档
示例:SVNArchiver -xml=xml配置文件路径
-
-xml: 必要
指定一个xml格式的配置文件路径,用户批量处理配置文件中的归档功能。 -
<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属性。
-
- 要求安装svn客户端工具,并设置为环境变量。
- 要求能正确连接到服务仓库。
- https://svnbook.red-bean.com/zh/1.8/svn.ref.svnversion.re.html
- https://svnbook.red-bean.com/zh/1.8/svn.ref.svn.c.log.html
- https://svnbook.red-bean.com/zh/1.8/svn.ref.svn.c.diff.html
- https://svnbook.red-bean.com/zh/1.8/svn.ref.svn.c.export.html
- https://svnbook.red-bean.com/zh/1.8/svn.ref.svn.c.list.html
- https://svnbook.red-bean.com/zh/1.8/svn.ref.svn.c.status.html
- https://svnbook.red-bean.com/zh/1.8/svn.ref.svn.c.update.html
- infra-go(库依赖) https://github.com/xuzhuoxi/infra-go
- goxc(编译依赖) https://github.com/laher/goxc
xuzhuoxi
xuzhuoxi@gmail.com 或 mailxuzhuoxi@163.com
SVNArchiver 源代码基于MIT许可证进行开源。