由于我暂时被困在Subversion和shell工具中,git-gui
等工具都不可用。是否有任何shell工具可以逐行交互式地应用补丁?
由于我暂时被困在Subversion和shell工具中,git-gui
等工具都不可用。是否有任何shell工具可以逐行交互式地应用补丁?
尝试在patch
命令中添加--dry-run
选项,这将让您确定问题所在,并适当编辑补丁或被补丁修改的文件。
sdiff
适用于合并两个文件。但是,当您需要交互式地应用补丁时,它并不能真正帮上忙。对于这种情况,只需使用 patch
命令,并加上 --dry-mode
选项来查找无效的块并进行编辑,这可能已经足够了。 - tonio--dry-run
。 - Hasturkunsdiff file1 file2 -o outfile
可以对比文件file1和file2,并交互式地展示每个更改,让您选择要保存到outfile的更改。 sdiff
是最好的工具。 - pvinis.diff
文件并删除任何您不想要的更改。diff-mode
中,则可以编辑补丁,并且emacs将尝试更新块标记。(Emacs会自动在diff-mode
中打开.diff
文件。)C-c C-w
以重新生成块。C-c C-a
。要反向应用,请执行C-u C-c C-a
。您还可以使用M-x diff-tell-file-name
将它们应用于其他文件。patch original patch.diff
比patch < patch.diff
更可靠,并且使用diff -u
创建的补丁文件更易于处理。
此处也有记录信息。
更新[5.21.21]:C-c C-s
允许您拆分块,这对于手动编辑非常有用。有时C-c C-w
(diff-ignore-whitespace-hunk
)无法达到您预期的效果,因此最安全的方法是拆分块并让emacs自动更新标题。当保留行不变时,这尤其有用;只需拆分成一个块并删除以删除更改即可。