86

次の意味は何ですか?

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 @@
     "\"\\\"\"",
     "\":\"",
     "\"/\"",
+    "\"(\"",
+    "\")\"",
     "\".\"",
     "\"@\"",
     "\"\\\'\"",
4

4 に答える 4

126

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

@@ブロックヘッダー

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

これらは 2 つの範囲-です+。はR、差分操作を開始する行番号を指定します。

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

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

コード行のチャンク

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

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

統合差分をグーグル検索すると、構文に関するより多くの情報を見つけることができます。

于 2009-06-12T15:53:46.183 に答える
24

古いファイル名

--- 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: コンテキスト行を含む古いファイルのチャンク内の行数 (-前に a または何もない行の合計);
  • +4: チャンクは新しいファイルの 4 行目から始まります。
  • 12: コンテキスト行を含む新しいファイルのチャンク内の行数 (+前に a または何もない行の合計)。

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

@@ -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 @@
     "\"\\\"\"",
     "\":\"",
     "\"/\"",
+    "\"(\"",
+    "\")\"",
     "\".\"",
     "\"@\"",
     "\"\\\'\"",
于 2016-12-15T19:37:09.997 に答える
1

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

于 2009-06-12T15:50:09.360 に答える
0

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

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

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

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

-uGNU diff と GNU patch でのみサポートされている統一された出力形式を使用することを意味します。

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

于 2009-06-12T15:48:55.353 に答える