2つのクリアケースバージョン間でコード行を比較する方法はありますか、またはバージョン管理者が何であれ、メインブランチと開発ブランチを比較するなど、2つの異なるバージョンを比較したいと思います。私はJavaのためにこのトピックを探しています
5 に答える
行を比較+表示+編集する必要がある場合は、VonCのWinMergeの推奨事項が優れていますが、コードの行数(カウント)を比較する必要がある場合は、ProjectCodeMeterやCLOCなどのslocdiffツールの方が適しています。
任意の差分/マージツール( WindowsのWinMergeなど)を使用して、すべてのファイルセットの比較を取得できますが、次を使用することをお勧めします。
- 適切なバージョンを選択するための適切な構成の2つのClearCaseビュー
- 関連するすべてのバージョンをすばやく取得するための2つの動的ビュー(スナップショットビューは長すぎてロードできません)
マージ/差分ツールがたくさんあります。私はファイルとディレクトリの比較の優れた視覚化と処理を備えたmeldを使用しています
行を数えることだけが必要で、svnを使用している場合は、実行することをお勧めします
svn blame -r N:M | wc -l
このコマンドラインが現在機能していることを確認できませんが、svn blame
2つの興味深いリビジョン(NとM)の間で使用してから、実行wc -l
(行数)することをお勧めします。
すべてのソース管理には、と同様のコマンドがあると思いますsvn blame
。
VonCが提案するように、2つの異なるビューを使用できます。または、file@@version
探しているものが正確にわかっている場合は、構文を使用して両方のバージョンに直接アクセスできます。何かを自動化する場合は、2つのビューがおそらく最良のオプションです(Javaで何かを実装することは私に示唆しています)。
「2つのクリアケースバージョン間でコード行を比較する」と言うときは、標準以外のものを探していると思いますcleartool diff
(ところで、KDiff3はクリアケースが統合された優れたdiffユーティリティです。これを強くお勧めします)。あなたが探している「行数を数える」方向。
ただし、行の違いを数えるだけでは限られた情報しか得られません。通常、違いを構成する行がほとんど追加または削除されているかどうかを知ることも興味深いです。この種の情報を提供するには、diffstatを使用できます(出力例については、この回答を参照してください)。
私の最後の仕事で、私は実行するためのJavaGUIを作成しました
diff -u file@@/main/branch1/LABEL1 file@@/main/branch2/LABEL2 | diffstat
いくつかのファイルを反復処理する2つのラベルが与えられましたが、その後cygwinのbash、diff、およびdiffstatに依存しました。ここでは、純粋なJavaの代替手段を認識していません。