如何将完整的二进制文件添加到 Mercurial 补丁中?

发布于 2024-08-30 15:25:56 字数 139 浏览 4 评论 0原文

我想使用 Mercurial 来捕获对我们使用的软件的普通安装所做的更改。每次升级软件时,我们都需要手动编辑各种配置文件并添加当前版本软件中使用的第3方库。为配置文件更改创建补丁很好,但如何将第 3 方库(二进制文件)添加到 Mercurial 补丁中?有可能吗?

I want to use Mercurial to capture changes made to the vanilla installation of a piece of software we use. Everytime we upgrade the software, we need to manually edit the various configuration files and add 3rd party libraries that we use in the current version of the software. Creating patches for the configuration files changes are fine, but how do I add 3rd party libraries (binaries) to a Mercurial patch? Is it even possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

旧人九事 2024-09-06 15:25:56

如果您想尝试获取第七版的补丁......

hg export --git -r 7 -o 7.patch

If you were to try to get the patch for the 7th revision...

hg export --git -r 7 -o 7.patch
一个人的旅程 2024-09-06 15:25:56

是的,mq 扩展可以处理二进制数据以及文本数据。它将使用 Git 的扩展补丁格式来保存二进制文件数据。当您使用修改后的二进制文件刷新补丁时,这是透明地为您处理的。

这是否是一个好主意是另一个问题——VonC 是正确的,他写道这不是版本控制系统的正常用例。

Yes, the mq extension can handle binary data just as well as textual data. It will use Git's extended patch format to save the binary data. This is transparently handled for you when you refresh a patch with modified binary files.

Whether or not this is a good idea is another question — VonC is correct when he writes that this is not the normal use case for a version control system.

若沐 2024-09-06 15:25:56

即使可能,也不建议这样做! (对于 Mercurial 或任何其他 VCS)
版本控制系统不是用来记录二进制文件的(主要是因为它会快速增长,占用大量磁盘空间,并且没有有效的方式存储增量)

您应该记录配置 需要您标记的每个版本。
这可以是一个文本文件,或者例如 maven pom 。任何允许外部机制(如 Maven)为您下载并在本地存储正确依赖项的东西。

这意味着您的补丁将包括对该文本文件(例如 pom)的更改,以及其余的代码修改。

Even if it may be possible, it is not advisable! (for Mercurial or any other VCS)
A Version Control System is not made to record binaries (mainly because it quickly grows out of proportion, take a all lot of disk space, and has no efficient way to be stored in delta)

You should record the configuration need for each version you tag.
That can be a text file, or a maven pom for instance. Anything that allow an external mechanism (like maven) to download and locally store for you the right dependencies.

That means your patch will include changes to that text file (pom for instance), as well as the rest of the code modifications.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文