如何维护已修补的上游软件包

如何维护已修补的上游软件包

我正在寻找维护上游 ubuntu 软件包修补版本的最佳方法。情况如下:

我们有自己的运行 reprepro 的服务器,用于托管修改后的软件包。我们的其他软件包使用 git 和 git 打包工具(git-dch、git-buildpackage)进行管理。

我有一个 .diff 文件,其中包含对上游源的补丁,我之前已经通过执行apt-get source pkgname、应用它并运行 debuild 来应用它。这次我想使用 git 正确跟踪它。

管理这个问题的最佳流程是什么?

答案1

我建议使用与 Flimzy 略有不同的东西。看看git-import-dsc和可能的git-debimport。它们将自动从 Debian 源包创建单独的上游、debian 和 prinstine-tar 分支。然后,您可以为补丁集创建自己的分支。每次向 Ubuntu 上传新内容时,您只需git-import-dsc在新包上运行并与您的分支合并即可。

bzr如果您不习惯,使用 会更简单git。每个 Ubuntu 软件包也可以在分支中找到bzrbzr branch ubuntu:$PACKAGE_NAME将为您获取源分支。进行更改并提交。然后,每当有新的 Ubuntu 上传时,您只需运行bzr merge-package ubuntu:$PACKAGE_NAME

答案2

我希望我完全理解你的问题...

以下是我的做法:

  1. 将 *.orig.tar.gz *.diff.gz 和 *.dsc 文件放在与您的包适当命名的目录中
  2. 解压源代码(dpkg-source -x *.dsc)。你现在将有三个文件和一个子目录
  3. 将其提交到你的 RCS(提交 A)
  4. 应用你的更改,并提交到你的 RCS(提交 B)
  5. 进行任何未来更改并提交(提交 N)

当新的上游版本发布时:

  1. 在提交 A 和提交 N 之间创建差异
  2. 重复上述步骤 1-3
  3. 应用你的 diff(在步骤 1 中创建),然后提交(新提交 A)
  4. 进行任何未来更改并提交(提交 N)

冲洗,重复。

相关内容