【问题标题】:Update derived file to include changes from original file更新派生文件以包含原始文件的更改
【发布时间】:2013-08-07 08:29:14
【问题描述】:

考虑以下工作流程:

  1. 文件 A 与文件 B 相同
  2. 文件 B 已修改
  3. 文件 A 已修改

如何更新文件 B(以编程方式)以包含文件 A 中与步骤 2 中对文件 B 所做的更改不冲突的更改?


我查看了diffpatch,但我不知道如何使用它们。

举个例子:让步骤1中的文件A和文件B为:

KEYWA
 1 3 5

KEYWB
 3 3 3

然后在步骤2中将文件B更改为:

KEYWA
 1 3 5

KEYWB
 3 5 3

最后文件 A 在步骤 3 中更改为:

KEYWA
-- A comment
 1 3 5

KEYWB
 3 3 3

然后我想更新文件 B 以包含文件 A 中的更改。因此,我希望新文件 B 变为:

KEYWA
-- A comment
 1 3 5

KEYWB
 3 5 3

【问题讨论】:

  • 我不确定您尝试的原因。不过,您似乎正在尝试将 fileA 的修订 2 和同一文件的 rev1 的差异应用于 fileB 的 rev2。这是否简化了问题?
  • 是的,我认为这是个好主意。然后我可以为对文件 A 所做的更改生成一个补丁,然后将该补丁应用到文件 B?

标签: linux bash version-control diff patch


【解决方案1】:

以下似乎有效:

  • 在步骤 1 之后:cp A A2
  • 在第 3 步中:编辑文件 A2 并保持文件 A 不变
  • 在第 3 步运行后:
    • diff -u A A2 > patA
    • patch B <patA

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 2020-05-12
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    相关资源
    最近更新 更多