更新派生文件以包含原始文件的更改

时间:2013-08-07 08:29:15

标签: linux bash version-control diff patch

考虑以下工作流程:

  1. 文件A与文件B
  2. 相同
  3. 文件B已修改
  4. 文件A已修改
  5. 如何更新文件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
    

1 个答案:

答案 0 :(得分:0)

以下似乎有效:

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