問題タブ [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 - 特定のリポジトリ ファイルを変更するユーザーをブロックする SVN pre-commit フック スクリプト
SVN リポジトリのユーザーが特定のファイルへの変更をチェックインできないようにしたいと考えています。これは、次の pre-commit フック スクリプトを使用して行いました。ただし、制限されたファイルの数が増えており、変更をコミットするのが非常に遅くなっています。より効率的なコーディング方法があるかどうか疑問に思っていました。チェンジリストで遊んだことがありますが、うまくいきません。
前もって感謝します
pre-commit フック スクリプト (Windows ベースの SVN リポジトリ):
git - Git サブモジュールのコミット フック
モジュールをいくつかのプロジェクトに含めることができるように、git サブモジュール (SubmoduleRepo と呼びましょう) を使用しています。
SubmoduleRepo を使用する任意のプロジェクトから SubmoduleRepo にコミットできます。
SubmoduleRepo への更新、コミット、およびプッシュをかなり簡単に行うことができます。
SubmoduleRepo を含むプロジェクトのディレクトリで作業中に何かをコミットするたびに、コミット フックを実行する必要があります (SubmoduleRepo で作業すると、コミット フックが期待どおりに実行されます)。
サブモジュールのディレクトリに .git フォルダーはありません (現在のディレクトリへのパスを指定する .git ファイルのみ)。
git - コミットがpre-commitフックの最初のコミットであるかどうかを確認します
現在、pre-commitフックを使用して、マスターブランチへのコミットを禁止しています(他のブランチで作業し、変更をマージするように強制します)。これでは、新しく作成されたリポジトリで最初のコミットを実行できません。マスターが最初のコミットである場合に、マスターでのコミットを許可するチェックを追加したいと思います。
私はこれの複数のバージョンを運が悪かったので試しました...
git - NetBeansはGitのpre-commitフックを無視しますか?
Gitにpre-commitフックを使用しようとしています。フックは次のようになります。
したがって、常に失敗します。つまり、Gitコミットは失敗するはずです。
gitを使用して何かを追加し、それをコマンドラインでコミットすると、うまく失敗し、コミットが失敗します。
しかし、NetBeansでコミットすると、pre-commitフックが実行されません。それは単にそれを無視しているようです。
UbuntuとNetBeans7.1を使用しています。pre-commitフックの権限は-rwxrwxrwxです(テスト目的で777に変更しただけです)。
これはどのように可能ですか?
git - pre-commitフックのgitstashが最初のコミットで失敗する
YUI Compressorを使用して、コミット用にステージングされたCSSファイルとJavaScriptファイルを縮小するpre-commitフックに取り組んでいます。ファイルが縮小された後、縮小されたバージョンは自動的にコミットのためにステージングされます。マシンで生成されたファイルをコミットに自動的に追加することは一般的には良い考えではないことを読みましたが、この場合は問題ないと思います。これはどのように見えるかです:
の出力git status
:
の出力git commit -m "Updated site-wide styling"
:
ここで起こったことは、YUI Compressorを使用して縮小_site-wide.css
し、結果を出力するpre-commitフックsite-wide.css
です(先頭にアンダースコアはありません)。site-wide.css
次に、コミットのためにステージングしました。pre-commitフックは_subpage.css
、変更されていてもコミット用にステージングされていなかったため、スキップされました。
ディスク上のCSSファイルとJavaScriptファイルは、コミット用にステージングされたCSSファイルとJavaScriptファイルと同じではない可能性があるためgit stash -q --keep-index
、ファイルを縮小する前に実行してから実行git stash pop -q
します。このpre-commitフックは、すでにコミットされているリポジトリで正常に機能しますが、最初のコミットが行われる前にpre-commitフックを配置すると、次のようになります。
の出力git status
:
の出力git commit -m "Initial commit"
:
の出力git status
:
次に、pre-commitフックのコードを貼り付けます。柔軟性を持たせるために、Gitリポジトリを持つプロジェクトだけでなく、任意のCakePHPプロジェクトで実行できるようにこのスクリプトを作成したことを覚えておいてください。また、コミット用にステージングされたファイルだけでなく、すべてのCSSファイルとJavaScriptファイルを強制的に縮小できるように作成しました。これは、を実行することによって実行されます.git/hooks/pre-commit force
。コードは次のとおりです。
どうすればこれを機能させることができますか?どんな助けでもいただければ幸いです。
php - phingの出力を美しくする方法は?
Phingは、デフォルトで、または組み込みのロガー (phing.listener.NoBannerLogger、phing.listener.AnsiColorLogger、phing.listener.XmlLogger、phing.listener.HtmlColorLogger) を使用しても、非常に詳細な出力が得られます。
私のユースケースは、テストを実行するために Phing を pre-commit フックとして使用することです。したがって、ログ ping で提供されるすべての情報は気にしません。テストを実行するためのマルチプラットフォーム ツールとして使用しています。
例:
これらの行の多くは本当に冗長で、私のユース ケースでは役に立ちません。実は、本来の意味での「ビルド」すら実行していません。
phing ログを次のように表示したいのは、単純に次のようなものです。
私の目的に悪いツールを使用していると思われる場合は、それも教えてください。他にも何かあることを知っていただければ幸いです。
svn - svnフックをチェックアウトされたリポジトリにリンクする方法
svnフックをチェックアウトされたリポジトリにリンクする方法は?サンプルのSVNリポジトリをチェックアウトしました。そして、SVN-adminオプションを使用して、サンプルフックを持つsvn repo(?)を作成しました。しかし、新しく作成したスクリプトをローカルのチェックアウトされたリポジトリで機能するようにリンクするにはどうすればよいですか?管理領域に配置する前にスクリプトをローカルでテストしたので、必要です。
ありがとう
php - コード スニファー SVN pre commit フック
私は、pear のガイドに従って、コード スニファーを svn pre-commit フックとして機能させようとしています。ただし、コードが無効であることは 100% 確信していますが、エラーは発生せず、プロジェクトは問題なくコミットされます。
pear のガイドに従う以外に何かする必要があることはありますか?
コミット前のフックとしてのコード スニファーのナシ ガイドへのリンク
私のphpcs-svn-pre-commitファイル:
そして、Subversion からの私の事前コミット ファイル:
私はSVNとcodesnifferの両方にかなり慣れていないので、ガイドに従ってテストを実行しているだけです。これを機能させるためのアドバイスやヒントをいただければ幸いです:)
アップデート
svn フックからいくつかの結果を得ることができましたが、スクリプトに基づいてエラーのリストが表示されるようになりました。私はSVNに必要なスクリプト言語に精通していないので、これらを解決する方法がわかりません.
エラーのリスト:
REPOS が内部コマンドまたは外部コマンドとして認識されない
TXN が内部コマンドまたは外部コマンドとして認識されない
不明なコマンド '/usr/local/bin/svnlook'
$SVNLOOK が内部コマンドまたは外部コマンドとして認識されない
git - Git の pre-commit フックでコミットされるファイルのリストを取得する
ソース コードのリストをコミットする前に、何らかのコード検証ツールまたはチェッカーを追加するとよい場合があります。Facebook は、自動化されたテストをコミット プロセスに統合することさえしました (そう聞いたことがあります)。私が必要としているのは、編集されるだけでなく、コミットされる予定のファイルのリストを取得する方法です。これにはいくつかの理由があります。
git commit -m "message"
ファイルを取得するために使用しようとしたときに、prepare-message および commit-msg フックをバイパスするデフォルトのメッセージを変更できます。- pre-commit フックはコマンドから引数を取得しないため
git commit
、特に部分的なコミットから、どのファイルがコミットされているかを判断するのは簡単ではありません。 - 1 つの共有ワークステーション、1 人の共有ユーザー、および 1 つの共有ローカル リポジトリに複数のユーザーがいる (私はそれについて何もできず、そこで自分の仕事をするだけです)。気持ちは相互です)。そのため、 を使用する
git diff-index --name-only HEAD
と、必要以上に多くのコードを検証する必要があります。 - 自動化は素晴らしいので、コード検証ツールをフックにインストールするのはクールだと思います。
- 検証に失敗した場合は、コミット プロセスを中止することをお勧めします。
私が説明した方法でコードを自動的に検証する方法が他にある場合は、その方法を教えてください。私は本当にこれが必要です。どうもありがとうございました。
git - 部分的にコミットされたファイル リストを取得するプレコミット フック
git-diff やその他のツールを実行すると、リポジトリ内の変更を特定できることはわかっていますが、部分的なコミットを行う場合は、(変更されたファイルのセット全体ではなく) コミットされたファイルのみを pre-commit に渡す必要があります。針。
たとえば、3 つのファイルを変更して 2 つだけをコミットし、pre-commit フックに 2 つのファイルの名前を認識させたいとします。
次に実行します:
pre-commit フックが 2 つのファイルのみのリストを取得するにはどうすればよいですか?