ホームページ  >  記事  >  システムチュートリアル  >  パッチファイルの深い理解: diff 命令の生成と共通パラメータの分析

パッチファイルの深い理解: diff 命令の生成と共通パラメータの分析

PHPz
PHPzオリジナル
2024-06-27 08:35:46545ブラウズ

深入了解 patch 文件:diff 指令生成与常用参数解析

パッチ ファイルは diff 命令 (linuxdiff、svndiff、gitdiff、gitformat-patch) によって生成されます。

まず、diff コマンドとその共通パラメータを紹介しましょう:

差分:

diff の機能は、2 つのファイル間の差異を比較して記録することであり、いわゆる diff パッチです。文形式: diff [オプション] ソースファイル(フォルダー) 宛先ファイル(フォルダー) Linuxオペレーティングシステムは良いです、それはソースファイル(フォルダー)にlinux patchMarco linuxをパッチして宛先ファイル(クリップ)にすることです、用語は「アップグレード」です。最も一般的に使用される 3 つのオプションを以下に紹介します:

-r は再帰的オプションです。このオプション linux を patch に設定すると、diff は 2 つの異なるバージョンのソース コード ディレクトリ内の対応するすべてのファイル (サブディレクトリ ファイルも含む) を一度に比較します。

-N オプションを使用すると、ファイルが作成または削除された状況をパッチ ファイルが正しく処理できるようになります。

-u オプションは、デフォルト形式よりもコンパクトな統一形式でパッチ ファイルを作成します。

2、パッチ

————————————————————————

linux 打patch_linux 打patch_linux 打patch

名前

オリジナルのパッチ適用diffファイル

あらすじ

パッチ[オプション][オリジナルファイル[パッチファイル]]

でもいつもはただ

パッチプナム

————————————————————————

パッチとは簡単に言うと、diffで作ったパッチを使って変換元のファイル(フォルダ)と変換先のファイル(フォルダ)を変換することです。これは、ソース ファイル (フォルダー) -> 宛先ファイル (フォルダー)、または宛先ファイル (フォルダー) -> ソース ファイル (フォルダー) を使用できることを意味します。最も一般的に使用されるオプションのいくつかを次に示します:

-p0 オプションは、現在のディレクトリから宛先ファイル (フォルダー) を検索することです

-p1 オプションは、第 1 レベルのディレクトリを無視し、現在のディレクトリから検索を開始します。

同様の -p2 オプションは、第 2 レベルのディレクトリを無視する必要があります。

......

************************************************ ***** *************

ここに例があります:

---old/modules/pcitableMonSep2711:03:561999

+++new/modules/pcitableTueDec1920:05:412000

パラメータ -p0 を使用する場合、現在のディレクトリから old という名前のフォルダを見つけ、その下のモジュールにある pcitable ファイルを探してパッチ操作を実行することを意味します。

パラメータ -p1 を使用すると、第 1 レベルのディレクトリ (つまり、古いディレクトリに関係なく) を無視し、現在のディレクトリから modules フォルダーを検索し、その下にある pcitable を検索することを意味します。この前提として、現在のディレクトリはモジュールが配置されているディレクトリである必要があります。差分パッチ ファイルへのパスが指定されている限り、差分パッチ ファイルは任意の場所に置くことができます。実際、相対パスまたは絶対パスを使用できます。ただし、通常は相対パスを使用します。

************************************************ ***** *************

-E オプションは、空のファイルが見つかった場合はそれを削除することを示します

-R オプションは、パッチ ファイル内の「新しい」ファイルと「古い」ファイルが交換されることを示します (実際には、新しいバージョンにパッチを適用して古いバージョンにすることです)

linux 打patch_linux 打patch_linux 打patch

パッチファイルの構造

パッチヘッド

パッチヘッダーは ---/+++ で始まる 2 行で、パッチが適用されるファイルを表します。 --- は古いファイルを示し、+++ は新しいファイルを示します。

1つのパッチファイルに複数のパッチ

パッチ ファイルには ---/+++ で始まる多くのセクションが含まれる場合があり、各セクションはパッチの適用に使用されます。したがって、パッチ ファイルには多数のパッチを含めることができます。

ブロック

ブロックはパッチ内で変更する場所です。通常、変更する必要のない何かで始まり、何かで終わります。これらは、変更される場所を示すためにのみ使用されます。通常、これらは @@ で始まり、別のブロックまたは新しいパッチ ヘッダーの先頭で終わります。

linux 打patch_linux 打patch_linux 打patch

ブロックインデント

ブロックは 1 列分インデントされ、この列は行を下げるか削除するかを示すために使用されます。

ブロックの最初の列

+ 記号は、この行を追加する必要があることを示します。

- 記号は、この行を削除する必要があることを示します。

マイナス記号やマイナス記号がない場合は、それが単なる参照であり、変更する必要がないことを意味します。

使用法:

patch-p0

patch-p1

以上がパッチファイルの深い理解: diff 命令の生成と共通パラメータの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。