問題タブ [pre-commit-hook]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
svn - Subversion ワークフロー: 強制更新、ビルド、コミット前のテスト
作業ディレクトリがコミット前にsvn更新、ビルド、テストされていることを確認するsvnコミットフックを作成することは可能ですか? 少なくとも、開発者がコミットする前に、コードがトランク内の最新のコードでコンパイルおよびテストされていることを確認したいと考えています。これにより、開発者がさまざまなソース コードを変更してビルドが失敗した場合に、トランクでの統合の問題が回避されます。
別の方法は、更新されたファイルが存在する場合にコミットを防止することです (ただし、作業ディレクトリで必ずしも変更されていません)。
余談ですが、前の質問で述べたように、私の仕事はソースだけでなくバイナリもコミットしています。この理由の 1 つは、コミット時にバイナリ ファイルの競合が発生した場合、そのバイナリのソースに変更があったことがわかっているため、svn-update を実行して再コンパイルする必要があることです。また、マージと更新が苦痛になります。開発者がコミットする前に更新した場合、このチェックが必要になる可能性は低くなります。
svn - SVN プリコミットでの CoffeeScripts のコンパイル
私はクライアントのアプリケーションに取り組んでいます。私がプロジェクトを終えた後、クライアントもアプリを開発することになるので、彼らがそれを簡単に行えるようにする必要があります. 私は CoffeeScripts を使用して JavaScript を記述しており、Ant スクリプトを使用して個人用ビルド サーバーにプッシュするときにコンパイルしています。
coffee -c js/*.coffee
すべてのコーヒー ファイルを同じ名前の JS ファイルにコンパイルするAnt スクリプト呼び出し。SVN pre-commit フックで同じコマンドを実行したいと思います。SVN フックを使用してファイルを変更することが悪いことであることはわかっていますが、実際にファイルを変更するのではなく、新しいファイルを作成しているので、これは人々が主張する大きな悪いノーノーとして分類されていないと思います。
私は SVN にまったく精通しておらず (私は通常 Git を使用しています)、Python スクリプトと svnlook と呼ばれるツールについての話を見つけることができますが、実際にそれを説明するものは何もありません。
svn - 「svnlookpropget」は機能しますか?
さて、以下を見てください:
svnlookコマンドを使用していますが、問題があるようです。1行目は、にプロパティの変更があることを示していますtrunk
。foo
2行目は、値が。で呼び出されたプロパティがあることを示していますbar
。svnlook proplist
私はこのコマンドを介してこれを行いました。さて、これまでのところとても良いです。
propget
3行目は、 onプロパティの結果を示していますfoo
。何も返しません。4行目で行ったように名前のつづりを間違えると、プロパティが見つからないことがわかります。
私の理解ではsvnlook propget
、プロパティの値を出力するのと同じように出力することを想定してsvn propget
います。実際には:
私が思うことを正確に行います。
私は何かが足りないのですか。私は何か間違ったことをしましたか。svnlook
または、コマンドに問題がありますか?
Subversionフックにはこれが必要なので、svn
代わりに使用することsvnlook
はできません。
python - Mercurial Pre-Commit フック: 現在のディレクトリで Python プログラムにフックする方法は?
コミットがメイン リポジトリにプッシュされるときに実行される Mercurial フックを作成しようとしています。以下のようにpythonスクリプトを作成しました。
commit.py
コードがメイン リポジトリにプッシュされる前に実行する必要があるメカニズムが含まれているため、ブランチごとにこれが複製されます。これらの事前プッシュ メカニズムがパスした場合にのみ、プッシュが成功するはずです。ユーザーはローカルの commit.py を変更して、作業中のプロジェクトに応じてこれらの事前プッシュ操作のサブセットのみを実行し、各ユーザーが一度に複数のプロジェクトに作業することができます。そのため、フォルダーcommit.py
に常駐できるグローバル python スクリプトにすることはできません。.hg
Mercurial をローカルcommit.py
で実行するために、mercurial.ini ファイル (C:\Users\UserName\mercurial.ini 内) に次のステートメントを追加しました。
pythonスクリプトは、.hg
フォルダー内に配置すると実行されますが、これを実行すると実行されません。この問題を明らかにするのを手伝ってくれる人はいますか? どうもありがとう。
git - git設定/フックをどのように伝播できますか?
私は最近、自分のリポジトリにコミットするすべての人に単純なコミットログを記入してもらいたいと決めました。基本的には、コミットメッセージのフォームに記入してもらいたいです。
クイック検索で私が見つかりました: git commitメッセージのデフォルトのコメントを変更するにはどうすればよいですか?
これで、フックを挿入して、フォームのアウトラインを含むデフォルトのコミットメッセージを生成できます。
ただし、セキュリティ上の理由から、gitではリポジトリに接続している他のユーザーにフックをプッシュできないことを理解しています。
または、commit.templateを変更してテンプレートを指定すると、コミットを実行するたびに入力するフォームが表示されます。
繰り返しになりますが、他の人のマシンの構成を変更できないようです。
自分で設定せずに、gitで同じデフォルトのコミットメッセージを全員に与える方法はありますか?
svn - コンソールでユーザータイプ 'y/n' を必要とする subversion pre-commit フック?
メッセージが空ではなく、少なくとも x 文字数が必要であることを確認する pre-commit フックが機能しています。問題の追跡に JIRA を使用しており、コミット メッセージ ログで問題に「タグ付け」しています。ただし、すべてのコミットが JIRA の問題に関連しているわけではありません。
メッセージに JIRA キーワードが含まれているかどうかを確認し、含まれていない場合はユーザーにコミットするかどうかを尋ね、「y」と入力するとコミットし、「n」と入力するとコミットし、コミットしません。
この方法でユーザー入力/キーボード フィードバックを取得することは可能ですか?
注: Windows と TortoiseSVN を使用しています
git - Ack は git フック スクリプトのパターンと一致しません
ローカル ファイルへのパスを含むコミットを禁止する目的で、git pre-commit フックを作成しました。多くの場合、git ユーザーは、コミットしてプッシュする前に、ローカル パスをサーバーに関連するパスに置き換えるのを忘れます。これが発生するたびに、多くの時間が無駄になります。
正規表現は、指定したファイルを使用して CLI で ack が呼び出されると正常に動作しますが、フック スクリプト内から呼び出されるとテキストの一致を拒否します。おそらくエコーが原因であるか、問題は改行/改行に関連していると思います。
私のスクリプト:
これにより、次のように git diff に表示されるように、新しいパスが追加されたコミットが防止されるはずです。
ただし、次のようにコメントアウトされたパスを受け入れる必要があります。
スクリプトがコメント解除されたローカル パスを正しく検出しないのはなぜですか?
php - 特定のフォルダーに対してトリガーされる SVN Pre-commit フック
クライアントの SVN リポジトリの 1 つには、単一のリポジトリの下にかなりの数のプロジェクトがあります。ここで、プロジェクトの 1 つのコーディング標準を pre-commit フックで確認したいと思います。
事前コミットを構成すると、リポジトリ内のすべてのプロジェクト (フォルダー) に影響します。特定のフォルダー (またはプロジェクト) からファイルが読み込まれた場合にのみ、フック スクリプトをトリガーする (コーディング標準を確認する) ように指示するにはどうすればよいですか? ) がコミットされます。
アップデート
コーディング標準は Zend 向けのものであり、PHPCS (PHP コーディング標準)を使用してコーディング標準を検証します。
svn - Subversionのソースファイルにレビューア名を自動的に追加する
私はの専門家ではありませんsubversion
。次の問題に関するヒントをいただければ幸いです。
ファイルのヘッダーのコメント付きセクションにレビュー名を自動的に追加したいJava
(.java
拡張子のみ)。これは手動で行うことができますが、大規模なコミットの場合、何百ものファイルのヘッダーを変更するのに時間がかかる場合があります。svn pre-commit
フック、または他のsvn
機能がここで使用される可能性があると思います。
svn - SVNの事前コミットの問題
私はこのスクリプトをネット上で見つけましたが、リポジトリで機能していると言っている人はほとんどいませんでした。スクリプトは、コミット前のチェックでチェック中にコメントのチェックを強制できるようにすることです。問題は、SVNのhooksディレクトリに追加したところ、すべてのコミット(コメントのあるものも含む)が失敗し、このエラーメッセージ 「Commit事前コミット(終了コード255)によってブロックされ、出力がありません」
同じエラーが発生するため、スクリプトを変更したり削除したりすることはできません。このpre-commitスクリプトを元に戻す方法に関する提案はありますか?