コマンドラインでPerforceに対するsvnの責任に相当するものはありますか? p4 annotate
ユーザー名は表示されません -- チェンジセット番号のみ (先祖の履歴なし!)。
私は現在、先祖を通してコードを追跡し、ファイルログと比較する必要があります.F / OSSユーティリティなど、もっと簡単な方法が必要ですか?
コマンドラインでPerforceに対するsvnの責任に相当するものはありますか? p4 annotate
ユーザー名は表示されません -- チェンジセット番号のみ (先祖の履歴なし!)。
私は現在、先祖を通してコードを追跡し、ファイルログと比較する必要があります.F / OSSユーティリティなど、もっと簡単な方法が必要ですか?
私はblameコマンドにあまり精通していませんが、特定のコード行を変更する人を探していると思います。最も簡単な方法は、p4winとp4vの両方から利用できるPERFORCEの「タイムラプスビュー」を使用することです。
このツールは、注釈やその他のコマンドを使用して、時間の経過に伴うコード行のビューを提供します。誰がどのコードを変更したか、いつコードラインに挿入または削除されたかなどを確認できます。
ただし、コマンドラインではありません。ヘルプを簡単に確認しましたが、p4winまたはp4vの呼び出しから直接タイムラプスビューを起動する方法はないようです。でもあるかもしれません...私はさらにチェックします...
編集:私はサポートに確認しました、そしてあなたは次のようにp4vを通してタイムラプスビューを起動することができます:
p4v.exe -cmd "annotate //<path/to/file>"
HTH。
必要なもののほとんどを手に入れることができると思われるいくつかのツールを見てみてください。
1) Bob Sidebotham と Jonathan Kamens によるp4pr Perl スクリプト。
2) Emacs Perforceインターフェイスには、コマンド 'p4-print-with-rev-history' (`Cx p V' にバインド) があります。
非難するために小さなスクリプトを使用します
#!/bin/bash
FILE="$1"
LINE="$2"
p4 annotate -cq "${FILE}" | sed "${LINE}q;d" | cut -f1 -d: | xargs p4 describe -s | sed -e '/Affected files/,$d'
ファイル名と行を渡すいくつかのエディターにフックすることができます。
もう少し複雑なバージョンがここにあります。
p4v クライアントから、ファイル、チェンジリストなどのファイルを表示するすべてのビューで「タイムラプス ビュー」コンテキスト メニューを取得できます。
タイム ラプス ビューには、単一のリビジョン、複数のリビジョンなど、何が、いつ、誰によって変更されたかを分析するための多数のオプションがあります。
@ alanw123: p4pr は私が探しているものに近いですが、ブランチの境界を越えていません:
last if $type eq 'branch';
これが、私が独自のユーティリティを作成しようとしたときに発生した主な問題でした。分岐元のファイルに行がどのようにマップされるか (簡単に) わかりません。
このp4 annotate
コマンドは、実際にはおよびコマンドを使用して、コマンド ラインでのマージ/統合および分岐に従うことができます (ただし、両方を同時に実行することはできません :( ):-I
-i
-I
Follow integrations into the file. If a line was introduced into the file by a merge, the source of the merge is indicated as the changelist that introduced the line. If that source was itself the result of an integration, that source will be used instead, and so on.
The use of the -I option implies the -c option. The -I option cannot be combined with -i.
-i
Follow file history across branches. If a file was created by branching, Perforce includes revisions up to the branch point.
The use of the -i option implies the -c option. The -i option cannot be combined with -I.