目前,我通过设置在 vim 上编辑文件patchmode=.orig
,然后有两个文件:
file.txt.orig
<- 不做任何更改的备份file.txt
<- 更新文件
但是,我想生成一个差异,而不必重命名该.orig
文件,因此patch
了解它只是file.txt
已更新的文件。
理想情况下,我真的很喜欢可以运行的工作流程
diff -u file.txt
它会自动比较file.txt.orig
并file.txt
输出.diff
包含
--- file.txt 2021-05-03 17:47:12.685416342 +0200
+++ file.txt 2021-05-03 17:47:30.538750593 +0200
@@ -1 +1,2 @@
foo bar
+bar baz
代替diff -u file.txt.orig file.txt
--- file.txt.orig 2021-05-03 17:47:12.685416342 +0200
+++ file.txt 2021-05-03 17:47:30.538750593 +0200
@@ -1 +1,2 @@
foo bar
+bar baz
上面确实需要我.diff
每次都手动编辑文件。如果.orig
自动使用文件,那是可能的,我很乐意将 vim patchmode 集成diff
并拥有有效的补丁,而无需额外的努力。
也许有更好的方法?任何建议,将不胜感激。两者diff
或git diff
都适合我的情况。
答案1
该工作流程适合我。也许您正在通过尝试将补丁应用到您之前更新的文件来进行测试?
准备
echo this is original >file.txt.orig
echo this is new >file.txt
diff -u file.txt.orig file.txt >file.diff
cat file.diff
--- file.txt.orig 2021-05-03 19:17:13.038918015 +0100
+++ file.txt 2021-05-03 19:17:21.548900027 +0100
@@ -1 +1 @@
-this is original
+this is new
创建原始文件的副本以进行修补
mkdir x
cp -p file.txt.orig x/file.txt
cd x
cat file.txt
this is original
patch <../file.diff
patching file file.txt
cat file.txt
this is new