file.txt.origとfile.txtを自動的に区別する方法

file.txt.origとfile.txtを自動的に区別する方法

現在の設定でvimのファイルを編集し、patchmode=.orig2つのファイルがあります。

  1. file.txt.orig< - 変更なしでバックアップ
  2. file.txt< - アップデートファイル

しかし、ファイル名を変更せずにdiffを生成したい.origので、更新されたファイルにpatchすぎないことを理解してください。file.txt

理想的には、実行できるワークフローが大好きです。

diff -u file.txt自動的に比較され出力さfile.txt.origfile.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パッチモードを統合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

おすすめ記事