私は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. jqgrid - 新しく追加された行を編集する
- 5. マージ中にSVNが新しく追加されたディレクトリを削除します
- 6. 動的に追加されたテキストボックスの値を見つける
- 7. ディレクトリに最後に追加されたファイルを見つける
- 8. log4j-DailyRollingFileAppenderに新しく追加されたプロパティが見つかりません
- 9. mysqlで新しく追加されたテーブルレコードを操作する
- 10. 列を追加した後にdb2テーブルに新しく追加された行を取得する方法
- 11. 新しく追加されたフレームワークファイルをインポートできません
- 12. マトリックスに新しい行を1つずつ追加してください
- 13. 新しく追加された行はextjsのグリッドパネルでドラッグドロップできません
- 14. 新しく追加されたコラムでもpgAdminで
- 15. 新しく追加された列をRailsに移入する
- 16. WPF新しく追加されたコントロールをキャプチャするイベント?
- 17. CVSディレクトリに新鮮に追加されたファイルのリストを見つけるために、どのように
- 18. SVN Windowsで最新の変更/追加されたファイルをエクスポートする
- 19. uiグリッドの新しく追加された行にフォーカスを設定します
- 20. PHPで新しく追加されたファイルの検索サーバー
- 21. バッチでhtmlの行を見つけて、その下にテキストを追加してください
- 22. EF4は、新しく追加されたエンティティには常に一時キーを使用しますか?私はTryGetObjectByKeyを使用してコンテキストに新しく追加されたエンティティを見つけようとしてきた
- 23. IDを見つけてアニメーションクラスを追加
- 24. 指定されたコミットで変更された行のファイルを見つける
- 25. コントロールSVNアクセスは、SVNリポジトリに追加した後、一度だけ追加することができます。
- 26. 新しい項目が追加されたときにListViewがちらつく
- 27. ダイアログで開く新しく追加されたプログラムを覚えていない
- 28. Javascript:DOM内に新しく追加されたフォーム入力が見つかりません
- 29. 追加されたパーミッションのビットフィールドを素早く更新する
- 30. jQueryツリービュープラグイン崩壊/新しく追加されたノードに展開
OPには「自動的に」と「フックスクリプト」と記載されています。私はここにフックが見えません... – Dialecticus
2つのこれらのコマンド+いくつかのgrepping +いくつかのロジック、ポストコミットに配置 - フック –
これはサーバー側から行う必要があります – shaggy