跳转到主要内容

此工具可帮助您将包重置到最新版本。

项目描述

欢迎使用rebase-helper

Github Actions build status Documentation build status Container image build status PyPI version Project status Code Quality

在重置包时,需要执行几个步骤。rebase-helper的目标是自动化大多数这些步骤。

如何运行它?

rebase-helper已打包在Fedora中,因此您可以使用dnf安装它。

如果您想使用最新的代码库,请参阅安装说明

如何使用它?

安装后,从包含SPEC文件、源代码和补丁的目录(通常是克隆的dist-git仓库)执行rebase-helper

$ ls
foo-3.1.9.tar.xz foo.spec sources

在没有任何参数或配置的情况下,rebase-helper将尝试自动确定最新的上游版本。如果失败,或者您希望将变基到某个不同的版本,您可以明确指定它作为参数

$ rebase-helper 3.1.10

或者您可以传递源tarball文件名

$ rebase-helper foo-3.1.10.tar.xz

有关完整的CLI参考,请参阅用法

或者,您可以在容器中运行rebase-helper

$ docker run -it -e PACKAGE=foo quay.io/rebasehelper/rebase-helper:latest

有关更多信息,请参阅容器参考

我能从中得到什么?

rebase-helper始终创建包含以下内容的rebase-helper-results目录

路径 描述
report.txt 包含所有重要信息的总结报告
changes.patch 与原始文件的diff,可直接应用于dist-git仓库
logs/ 不同详细程度的日志文件
rebased-sources/ 包含所有修改文件的git仓库
checkers/ 运行的单个检查器的报告
old-build/ 旧(原始)版本构建的日志和结果
new-build/ 新(变基)版本构建的日志和结果

它是如何工作的?

以下步骤描述了变基过程

  • 准备

    • rebase-helper-workspacerebase-helper-results目录被创建
    • 原始SPEC文件被复制到rebase-helper-results/rebased-sources目录,并修改其Version标签
  • 获取源代码

    • 旧的和新的源tarball被下载并提取到rebase-helper-workspace目录
    • 如果可能,从lookaside缓存下载旧源代码
  • 下游补丁

    • 初始化新的git仓库,将旧源代码提取并提交
    • 应用每个下游补丁,并提交其引入的更改
    • 提取新源代码并将其添加为远程仓库
    • 使用git-rebase将提交重新变基到新源代码之上
    • 相应地修改/删除原始补丁
    • 结果文件存储在rebase-helper-results/rebased-sources
    • 将原始文件的diff保存到rebase-helper-results/changes.patch
  • 构建

    • 创建并使用选定的构建工具构建旧的和新的源RPM
    • 也可以从Koji下载旧的SRPM和RPM以加快变基
  • 比较

    • 对两组软件包及其输出都运行多个检查器工具,并将输出存储在rebase-helper-results/checkers目录中
  • 清理

    • 删除rebase-helper-workspace目录

视频

由František Nečas在DevConf.CZ 2020上发表的关于rebase-helper的演讲

Rebasing RPM packages with rebase-helper - DevConf.CZ 2020

另一个演示,这次来自DevConf.CZ 2016,由Petr Hráček和Tomáš Hozza提供

Rebase-helper and Upstream Release Monitoring - DevConf.CZ 2016

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

rebasehelper-0.29.2.tar.gz (1.9 MB 查看哈希值)

上传时间 源代码

构建分发

rebasehelper-0.29.2-py3-none-any.whl (167.5 kB 查看哈希值)

上传时间 Python 3

支持者