2

我有一个项目需要维护对文本和二进制文件的更改。我有几个选择:

  1. 使用补丁
  2. 使用 git 或 hg 之类的版本控制系统。

就我的目的而言,如果只是文本文件,补丁是一个更好的选择。但是,由于有些图像可能会被替换/添加/删除,那么最好的方法是什么?

是否有一个干净的 diff/patch 实用程序也可以处理二进制差异(我不必指定它是二进制的——我应该能够区分整个目录而不是单个文件,我不能用 bash 的 diff在二进制模式下)并将它们用作补丁? 如果不是,对于二进制文件,哪个版本控制系统是更干净的选择?

4

3 回答 3

3

Git 和 Mercurial 都可以轻松处理文本和二进制文件。使用任何你喜欢的。是的,VCS 是正确的选择。

于 2011-02-17T07:10:09.337 回答
3

Mercurial 有补丁队列的概念(启用了 mq 扩展),很大程度上受quilt启发。
这允许您以多种方式管理您的补丁:

  • 使用单个补丁队列并在其中按顺序排列所有补丁顺序
  • 使用 qqueue 命令使用多个补丁队列,并根据适合您的标准对补丁进行分组。

作为奖励,由于补丁队列实际上是补丁文件,您可以轻松更改它们的顺序,甚至将它们从一个队列移动/复制到另一个队列(查看 .hg 目录以找到补丁队列)。

您可以在Steve Losh 的 mercurial queue 教程中找到更多有关管理补丁队列的有用信息。

于 2011-02-17T10:33:58.690 回答
0

如果您不喜欢这样的 VCS,请尝试使用包含补丁的 ftp 服务器。版本号可以用作目录名称。该系统可以由脚本支持,该脚本根据目录名称顺序应用补丁。

在我正在进行的项目中,数据库补丁就是以这种方式应用的。但是,它们是在 VCS 中维护的。一个文件可用于维护当前版本,脚本将读取该文件以决定应用哪个补丁。

于 2014-12-17T16:46:59.957 回答