ローカル リポジトリにいくつかの変更を加えて run を実行svn diff
しましたが、diff
出力は空です。しかしsvn status
、私のファイルを変更済みとしてマークしました。diff
これはファイルであり、外部アイテムです。これでコマンドを使用するにはどうすればよいですか?
5 に答える
マニュアルからの引用は次のとおりです。
svn checkout、svn update、svn switch、およびsvn exportコマンドは、externals がチェックアウトされるバラバラ (または切断された) サブディレクトリを実際に管理しますが、svn statusコマンドは、externals 定義も認識します。切り離された外部サブディレクトリのステータス コード X を表示し、それらのサブディレクトリに再帰的にアクセスして、外部アイテム自体のステータスを表示します。--ignore-externalsオプションをこれらのサブコマンドのいずれかに渡して、外部定義処理を無効にすることができます。
上記から、前述のコマンドのみが外部をサポートしていると推測できます。
なぜそうなのかはわかりませんが、適切に設計するのが比較的難しく、機能リストの上位になかったというのが私の推測です。
これは論理的です。その理由は、svn ステータスがトランクの最後のリビジョンに関するステータスを示しているからです。これは、ローカルがトランクの最後のリビジョンに更新されていないことを意味します。svn 情報を取得すると、
Path: /home/....
Working Copy Root Path: /home/trunk
URL: https://svn.***.**/trunk
Repository Root: https://svn.***.**/
Repository UUID:
Revision: **LAST_UPDATED_REVISION_Nr**
ただし、svn diffは、ローカル ファイルとLAST_UPDATED_REVISION_Nrのファイル状況の違いを示しています。トランクの最後のリビジョンとの違いを確認するには:
svn diff -rHEAD address_of_your_file