私はsvnプロジェクトの下で作業しています。私はコミットされたソースファイルを解析し、フックスクリプトを使用して自動的にファイル内に新しく追加された行を探します。SVNで新しく追加された行を見つける
答えて
のsvnログ+のsvn非難
あなたがのために-rオプションを使用する必要がWC
最初のステップは、svnlook changed REPO_PATH
を使用して、変更されたパスを抽出することである
内始まりsvn log -v -q -l 1
のために試してみてくださいポストフックスクリプトで知られているリビジョン(CommittedRev)。
上記は、スクリプトによって解析されなければならない変更されたファイルのリストを示します。
あなたが追加/修正ラインはあなたの特定のリビジョンで変更された行を与える責任をsvnを抽出しようとすると...あなたは非難によって抽出することはできませんどのような
svn blame -rCommittedRev:CommittedRev file:///Repository/ | grep "^ CommittedRev "
が線であり、削除されています。
svn blameコマンドでエラーを表示しますか? – shaggy
どのようなエラーがありますか? – khmarbaise
svnlook
を使用して変更の差分を取得し、追加された行を示す+
記号で始まる行についてgrepすることができます。
私はSystem.out
を参照しているすべての行が追加されたかどうかを確認したい場合たとえば、私は次のパイプラインを使用することができます
svnlook diff -t "$TXN" "$REPOS" | grep -E "^\+" | grep -qE "System\.out"
を、戻り値をテストする - 0は、それが一致したことを意味しますライン。
ありがとうございました...その有用な – shaggy
NO NO NO
フックを使ってこれを実行しないでください!
フックスクリプトを使用すると、ユーザーはフックが完了するのを待っていることになります。代わりに、Jenkinsを使用してタスクを処理します。ジェンキンスはビルドシステムですが、このようなことをしてビルドのステップを完全にスキップすることができます。この方法では、ユーザーはフックスクリプトが完了するまで待つ必要はなく、実行している差分の結果を自動的に投稿できる場所があります。
なぜ、新しく追加された行だけで、すべてが変更されるのではないのですか? svn diff
の結果を解析してすべての追加を見つけることができますが、すべての変更に興味があると思います。
クイックチェック(数百ミリ秒まで)の場合、ユーザーはJenkinsのジョブが非同期で通知されるのを待たなければならないのはなぜですか?賢明なプリコミットフックは、問題のあるコミットであれば、コミットが最初に起こらないことを確認できます。 – Avi
@Avi - このフックは、新たに追加された行を確認するためのものです。これらの行をどのようにユーザーに報告するつもりですか?あなたはそれらに電子メールを送りますか?ウェブページを更新しますか?ジェンキンスはレポートを表示する場所があるため、報告する問題を解決します。さらに、ジェンキンスの変化の歴史は全部あります。さらに、変更を解析してからWebページを電子メールまたは更新しようとしているときに、ユーザーを保持しません。フックは、直接的に、そして直ちにユーザーとコミュニケーションするのに最適です。プリコミットフックは、ユーザが何か間違ったことをするのを防ぎます。このために、ジェンキンスはより良いです。 –
私はあなたがこのすべてを質問にどのように読み込んでいるかわかりません。質問は、彼が追加された行の*レポート*を望んでいるとは言わず、単にそれらを見つけたいと思っています。私は彼らと一緒に何かを自動的にやろうとしていました。彼が何をしたいのか分からずに、私は質問に答えると思っていました。(それはどうやってそれをやるのかということでした)、彼は間違っていると言います。 – Avi
- 1. フォルダ内で新しく追加されたファイルを見つける方法は?
- 2. 更新された新しく追加されたファイル/フォルダを見つけるためのUnixコマンド
- 3. SVN新しく追加されたファイルをダウンロードしません
- 4. SVN:ファイルがリポジトリに追加されたときを見つける方法
- 5. クリックされた要素に追加された行の数を見つける
- 6. WebDavで追加された予定を見つける方法
- 7. マージ中にSVNが新しく追加されたディレクトリを削除します
- 8. jqgrid - 新しく追加された行を編集する
- 9. ディレクトリに最後に追加されたファイルを見つける
- 10. 動的に追加されたテキストボックスの値を見つける
- 11. log4j-DailyRollingFileAppenderに新しく追加されたプロパティが見つかりません
- 12. jQueryが追加された要素を見つけません
- 13. SVNで新しいファイルを追加
- 14. 新しく追加された表行方不明
- 15. 新しく追加された行のデータページングページング
- 16. ClearCaseで新しく作成されたファイルを見つける方法
- 17. SVNはマージされたリビジョンを見つけますか?
- 18. 新しく追加されたテーブル行にバリデーションを実行する方法
- 19. mysqlで新しく追加されたテーブルレコードを操作する
- 20. 列を追加した後にdb2テーブルに新しく追加された行を取得する方法
- 21. SVN Windowsで最新の変更/追加されたファイルをエクスポートする
- 22. データベースから新しく追加された行を取得できません
- 23. 新しく追加されたフレームワークファイルをインポートできません
- 24. 新しく追加された行はextjsのグリッドパネルでドラッグドロップできません
- 25. 新しく追加されたコラムでもpgAdminで
- 26. マトリックスに新しい行を1つずつ追加してください
- 27. 新しく追加された列をRailsに移入する
- 28. syncfusion ejtreegrid新しく追加されたノードを変更する
- 29. WPF新しく追加されたコントロールをキャプチャするイベント?
- 30. Mongoose多くを見つけて更新してください
OPには「自動的に」と「フックスクリプト」と記載されています。私はここにフックが見えません... – Dialecticus
2つのこれらのコマンド+いくつかのgrepping +いくつかのロジック、ポストコミットに配置 - フック –
これはサーバー側から行う必要があります – shaggy