web-dev-qa-db-ja.com

パッチファイルの形式は何ですか?

次はどういう意味ですか?

diff -rBNu src.orig/Java/org/Apache/nutch/analysis/NutchAnalysisConstants.Java src/Java/org/Apache/nutch/analysis/NutchAnalysisConstants.Java
--- src.orig/Java/org/Apache/nutch/analysis/NutchAnalysisConstants.Java 2009-03-10 11:34:01.000000000 -0700
+++ src/Java/org/Apache/nutch/analysis/NutchAnalysisConstants.Java  2009-03-10 14:11:55.000000000 -0700
@@ -4,9 +4,12 @@

+  int CJK = 21;
+  int DIGIT = 22;

   int DEFAULT = 0;

   String[] tokenImage = {
     "<EOF>",
+    "\"OR\"",
     "<Word>",
     "<ACRONYM>",
     "<SIGRAM>",
@@ -39,6 +42,8 @@
     "\"\\\"\"",
     "\":\"",
     "\"/\"",
+    "\"(\"",
+    "\")\"",
     "\".\"",
     "\"@\"",
     "\"\\\'\"",
60
omg

使用した-uオプションは、統一された形式を指定します。この形式では、最初の2行はヘッダーです。---は元のファイル、+++は新しいファイル、およびタイムスタンプです。

@@ブロックヘッダー

その後、@@ -R,r +R,r @@構文で始まるチャンク(ハンクの変更)が続きます。

これらは2つの範囲です。-のある範囲は元のファイルのチャンクの範囲であり、+のある範囲は新しいファイルの範囲です。 Rは、diff操作が開始される行番号を指定します。

コンマの後の数字は、各ファイルの影響を受ける行の数です。

  • 削除行ごとに、+rの数は-rよりも小さいになります。
  • 追加行ごとに、+rの数は-rよりも大きいになります
  • 行を変更すると、0+r番号に追加されます。 (同じ範囲の行)

コード行の塊

これらのチャンク内で、行は追加または削除として識別されます-は削除を意味し、+は追加を意味します。そのチャンクで変更されなかった行の前には、+-もありません。

この例では、2つのファイル間で変更された2つのチャンクまたはセクションがあり、+が含まれる行が追加され、削除されたものはないことを意味します。

統合されたdiffのgoogle検索を実行することにより、構文に関するより多くの情報を見つけることができます。

91
Andre Miller

古いファイル名

--- src.orig/Java/org/Apache/nutch/analysis/NutchAnalysisConstants.Java 2009-03-10 11:34:01.000000000 -0700

新しいファイル名

+++ src/Java/org/Apache/nutch/analysis/NutchAnalysisConstants.Java  2009-03-10 14:11:55.000000000 -0700
  • -4:チャンクは古いファイルの4行目から始まります(コンテキスト行を含む)。
  • 9:コンテキスト行を含む古いファイルのチャンクの行数(したがって、-またはそれらの前に何もない);
  • +4:新しいファイルの4行目からチャンクが始まります。
  • 12:コンテキスト行を含む新しいファイルのチャンクの行数(つまり、+またはそれらの前に何もない)。

注意:変更された行を含むように差分を変更したので、削除された行の後に追加された行が続きます。

@@ -4,9 +4,12 @@

+  int CJK = 21;
+  int DIGIT = 22;

-  int DEFAULT = 0;
+  int DEFAULT = 42;

   String[] tokenImage = {
     "<EOF>",
+    "\"OR\"",
     "<Word>",
     "<ACRONYM>",
     "<SIGRAM>",

上記と同じですが、前のチャンクが3行の純価値を追加したため、新しいファイルのチャンクがさらに3行開始していることに注意してください。

@@ -39,6 +42,8 @@
     "\"\\\"\"",
     "\":\"",
     "\"/\"",
+    "\"(\"",
+    "\")\"",
     "\".\"",
     "\"@\"",
     "\"\\\'\"",
13
qwertzguy

+文字は、NutchAnalysisConstants.Javaの最後のバージョン以降にこれらの行が追加されたことを意味します。 @@行は、差分がファイルの別のセクション、この場合は元の行39、または新しい行43にジャンプしたことを示しています。

1
John G

それはあなたが何を求めているかによります。 Diffは、2つのファイルの違いを示します。あなたの場合、NutchAnalysisConstants.Java 2つの異なる場所から、それらの違いに関する情報を生成します。

-r to diffは「再帰的diff」を意味しますが、この場合は、ディレクトリではなくファイルを比較するため、何もしません。

-Bは、空白行のみを含む変更を無視することを意味します。

-Nは、directory1にファイルがあり、directory2に存在しない場合、diffはfile2に存在するが空であるかのように扱う必要があることを意味します(したがって、事実上directory1のファイルの完全な内容を提供します)。

-uは、GNU diffおよびGNUパッチ。

出力の意味については、この link が役立つ場合があります。

0
FreeMemory