新しい行を追加するパッチの適用
ファイルに新しい行を追加するUnified Diffパッチの適用方法を学びます。Unified Diff形式の'+'行、Hunkヘッダー、コンテキスト行の基本を解説します。
Basic Patches
詳細な説明
Unified Diffパッチで行を追加する
最もシンプルなパッチ操作は、既存のファイルに新しい行を追加することです。Unified Diff形式では、追加行は+で始まり、変更されていないコンテキスト行はスペースで始まります。
オリジナルの例
line 1
line 2
line 3
パッチの例
--- a/file.txt
+++ b/file.txt
@@ -1,3 +1,5 @@
line 1
+line 1.5
line 2
line 3
+line 4
動作の仕組み
Hunkヘッダー@@ -1,3 +1,5 @@の意味:
| パート | 意味 |
|---|---|
-1,3 |
オリジナルファイルは1行目から始まり3行にわたる |
+1,5 |
新しいファイルは1行目から始まり5行にわたる |
(スペース)で始まる行はコンテキスト行です。オリジナルテキストと正確に一致する必要があります。パッチエンジンはこれを使って正しい位置に変更を適用していることを確認します。+で始まる行は追加行で、出力のその位置に挿入されます。
コンテキスト行の重要性
コンテキスト行はアンカーとして機能します。パッチが作成されてからオリジナルファイルが変更されていた場合、コンテキスト行がパッチエンジンに正しい位置を特定させます。ほとんどのツールはデフォルトで各変更の前後に3行のコンテキストを提供し、diff -uのデフォルトと一致します。
ユースケース
同僚からコードレビューパッチを受け取り、モジュールに新しいヘルパー関数を追加する内容です。手動でファイルを編集する代わりに、オリジナルとパッチを貼り付けて即座に適用できます。