diff出力の"@@"行の数字はどういう意味ですか? [コピー]

diff出力の"@@"行の数字はどういう意味ですか? [コピー]

diff以下は、Loeliger、2edのGitを使用したVersion ControlのUnixシェルプログラムの例です。

ここに画像の説明を入力してください。

違いを詳しく見てみましょう。

ヘッダーでは、元のファイルは - - - で表され、新しいファイルは +++ で表されます。

@@行は、両方のファイルバージョンの行番号コンテキストを提供します。

「@@」行の数字はどういう意味ですか?

答え1

patchこれは、(または同様の)プログラムが統合された違いを復号化するのに役立つ古い/新しいファイルの行番号です。

  • カンマの後の数字はブロックの長さ(古いファイルまたは新しいファイル)です。
  • カンマの前の数字は、ブロックが始まる行番号です。
  • +と記号は-それぞれ行の追加と削除を示します。

あなたの例の行

@@ -1,4 +1,5 @@

推論に使用される-アンパサンド記号としてアンパサンド記号を使用する+<>正常な違い左/右のファイル出力。どちらの形式も差の線を交差しようとします。 (コンテキストの違いは、インターリーブされていないフロントブロックとリアブロックを表します。)

統合diffはプログラムの特別な形式ですdiff。広くサポートされている他の形式は次のとおりです。差動出力形式部分。

追加資料:

答え2

これGNUdiffドキュメントこれについては関連セクションで説明します。統合フォーマット:

以下は1つ以上の違いです。各ブロックは異なるファイル領域を示しています。均一にハンサムな男は次のとおりです。

 @@ from-file-line-numbers to-file-line-numbers @@
  line-from-either-file
  line-from-either-file...

ブロックに行が1つしか含まれていない場合は、開始行番号のみが表示されます。それ以外の場合、行番号は "start, count" と同じです。空のブロックは、ブロックの後の行から始まると見なされます。

ブロックとそのコンテキストに複数の行が含まれている場合、その行番号は "start,count"と同じです。それ以外の場合は、末尾の行番号のみが表示されます。空のブロックは、ブロックの前の行で終わると見なされます。

両方のファイルに共通の行は空白文字で始まります。 2つのファイル間で実際に異なる行は、左の印刷列に次のいずれかの表示があります。

‘+’
   A line was added here to the first file. 
‘-’
   A line was removed here from the first file.

関連情報