【问题标题】:Is there a diff & patch for large cut & pastes是否有用于大剪切和粘贴的差异和补丁
【发布时间】:2015-04-22 15:59:56
【问题描述】:

是否有一个很好的工具/工作流程可以让 diff+patch 操作“通勤”,在文本文件之间进行大量剪切和粘贴操作?

我们有三个文件 source.oldsource.newdestination。我们之前从source.old 复制了几个文本块到destination,但除此之外这些文件有共享历史记录。此后,我们编辑了source.old 以生成source.new,并怀疑复制的帅哥中出现的更改与destination 有关。

我们首先使用copy & paste detecting tool 或通过指定表示destination 上的粘贴操作的特定git 提交来自动识别复制和粘贴。由于复制和粘贴将是经过编辑的副本,这应该使用类似差异的上下文描述复制和粘贴操作 source.olddestination,并为每个复制的块提供差异。

接下来我们创建一个补丁文件,表示复制的块中发生的从source.oldsource.new 的更改,但在必要时将source.old 的上下文替换为destination 的上下文,并重新排序块以匹配destination。我们最终以交互方式应用补丁,选择相关更改。

有没有一种简单的方法可以使用类似 diff & patch 的工具来做到这一点?如果我们谈论的是sourcedestination 存在于同一个存储库中的剪切和粘贴操作,那么可能必须存在这样的工具,因为可能会将一个文件拆分为多个较短的文件。在这种重组之前,我一直小心翼翼地关闭我的工作分支,但大概 git 可以处理这样的交叉文件更改。当sourcedestination 存在于不相关的存储库中时,如何手动执行?

【问题讨论】:

    标签: git diff patch


    【解决方案1】:

    试试 Unix 的 diffpatch,它们适用于 diff 的输出。似乎它会完全按照您的意愿行事。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-25
      相关资源
      最近更新 更多