1

svn diffコマンドを使用して、ファイルの2つのリビジョン間で変更された行数を取得しようとしています。私のコードは次のとおりです。

svn diff "http://svn.apache.org/repos/asf/lucene/dev/trunk" --revision 923475:925738 >>output.txt

cmdウィンドウを開いてこれを実行すると、正常に動作します。今、私はバッチスクリプトの初心者であり、それに慣れていません。私が理解しているように、上記のコマンドをコピーして.batファイルに貼り付けてから、その.batファイルを実行すると、同じ出力が得られるはずです。ただし、これを試したところ、出力テキストファイルに無限ループで次のように書き込まれます。

C:\ Users \ Desktop> svn diff "http://svn.apache.org/repos/asf/lucene/dev/trunk" --revision 923475:925738 1 >> output.txt

誰かが私が間違っていることを教えてもらえますか、またはバッチファイル内でsvn diffコマンドを使用する方法を教えてもらえますか?ありがとうございました。

4

1 に答える 1

1

メモ、回答ではありません

  • コマンド (およびタスク)の適切な構文は次のとおりです。

svn 差分http://svn.apache.org/repos/asf/lucene/dev/trunk -r 923475:925738

(URL の前後に " がないことに注意してください。-r = --revision だけです)

  • URL と同時に最大の問題はコマンド出力です

    svn: E160013: 差分ターゲット 'http://svn.apache.org/repos/asf/lucene/dev/trunk' がリビジョン '923475' および '925738' のリポジトリで見つかりませんでした

つまり、構文やコマンドプロンプトからでも結果を取得できません

svn log -q http://svn.apache.org/repos/asf/lucene/dev/trunk | tail -2たちが得るなら

r924461 | markrmiller | 2010-03-18 01:17:26 +0500 (Чт, 18 мар 2010)
------------------------------------------------------------------------

924461 > 923475、トランクはリビジョンの開始時にまだ存在しませんでした

  • 「... ファイルの 2 つの 2 つのリビジョン間で変更された行数を取得...」したい場合は、このファイルを URL で定義する必要があります。dev/trunk は多くのファイルを含むディレクトリです。

  • output.txt は、データを必要としない差分を含む巨大な multiMB ファイルになります

バッチファイル内で svn diff コマンドを使用するには?

コマンドプロンプトで手動で実行したのと同じ方法(詳細は1つだけ-WCを使用する場合は、cdを忘れないでください。または、バットファイル内でWCへのフルパスを使用してください)

于 2012-11-02T20:16:24.433 に答える