問題タブ [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.

0 投票する
1 に答える
4629 参照

git - フックを使用して特定の形式の git コミット メッセージを強制する

git フックを使用して、コミット メッセージを強制的に特定の形式に準拠させたいと考えています (#number で終わる必要があります)。こちらも参照されているこのフックをインストールしようとしましたが、メッセージが引き続き表示されます。

例に示されているとおりにスクリプトを使用していますが、どちらも同じエラーが発生します。私は例えば試してみました:

何が間違っている可能性がありますか?

0 投票する
3 に答える
3945 参照

svn - SVNにコミットされたファイルがpre-commitフックを使用してUTF-8でエンコードされているかどうかを確認するにはどうすればよいですか?

Linux BashでSVNpre-commitフックスクリプトを作成しようとしています。このスクリプトは、ファイルをUTF-8として解析できない場合にコミットを拒否します。

これまでのところ、私はこのスクリプトを書きました:

問題は、iconvがコミットされたファイル(または他の形式のテキスト)へのパスを必要とし、それを取得する方法がわからないことです。

誰か助けてもらえますか?

0 投票する
1 に答える
1182 参照

svn - シェル スクリプトでのみサブディレクトリ名を検証する SVN pre-commit フック

サブディレクトリ名を yyyymmdd 形式で検証するプレコミット フックを追加しようとしています。プロジェクト フォルダ全体ではなく、特定のディレクトリにのみ適用する必要があります。フック スクリプトの作成を手伝ってください。

0 投票する
1 に答える
722 参照

linux - SVNリビジョンからではなくSVNトランザクションから読み取るときに、iconvがエラーで終了するのはなぜですか?

%%問題は解決し、以下のコードは期待どおりに機能します%%

着信ファイルのUTF-8エンコーディングをテストするSVNpre-commitフックをBashで作成しようとしています。着信ファイルのパスを取得し、dirs / pictures /削除されたファイルなどを無視するために多くの文字列ジャグリングを行った後、「svnlook cat」を使用して着信ファイルを読み取り、「iconv-fUTF-8」にパイプします。この後、${PIPESTATUS[1]}を使用してiconv操作の終了ステータスを読み取りました。

私のコードは次のようになります。

問題は、「æøå」のようなスカンジナビア文字を含むファイルをコミットしようとするたびに、iconvがエラー(出口1)を返すことです。

スクリプトを無効にした場合は、「æøå」を使用してファイルをコミットし、「svnlook-t」および「svnlookcat -t」の-t(トランザクション)を-r(リビジョン)に変更して、リビジョンを使用してスクリプトを手動で実行します「æøå」ファイルの番号、次にiconv(およびそのためのスクリプト)はexit0を返します。そしてすべてがダンディです。

svnlook cat -rが期待どおりに機能する(UTF-8でエンコードされた「æøå」文字列を返す)のに、svnlook cat -tが機能しないのはなぜですか?

0 投票する
1 に答える
3689 参照

git - git pre-commit フック、インデックスにファイルを追加

ファイルが変更されたかどうかを確認するための単純な pre-commit フックを作成しようとしています。変更されている場合は、圧縮して現在のインデックスに追加します。

私には 2 つの問題があります。これは私が返すエラーです:

そして私の2番目の問題は、条件を削除しても、ファイルが実際にはコミットに追加されず、変更されても追加されないことです。

ありがとう、レオ

0 投票する
5 に答える
18517 参照

github - githubはprecommithookをサポートしていますか?

現在、SVNを使用しています。GitHubの使用を開始したいのですが、絶対的な要件の1つは、現在のようにコードの事前コミット(事前マージ)検証を行う必要があることです。GitHubはprecommithooks(premergehooks)をサポートしていますか?

私たちは5人の開発者のチームです。すべてのコード(JavaScript)がJSLintのような検証に合格する必要があることに合意しました。自主的な検証は、簡単に忘れられるため、機能しないことが証明されています。他の人が利用できるようになるコードがJSLint(または同様のもの)に対して検証されることが保証されていることをどのように確認できますか?

0 投票する
2 に答える
620 参照

c# - SVN pre-commit-hook、クライアントウィンドウでログメッセージを設定する方法はありますか?

私の質問を読んでくれてありがとう:)

私の目標は、コミットがSVN-Serverに発行される前に、このメッセージを変更することです:

ここに画像の説明を入力

私はすでに開始フックと事前コミットフック (C#) を持っています。何かをコミットしようとすると、両方が呼び出されます。また、動作中の SharpSvn ライブラリもあります。しかし、残念ながら私は前進していません。このメッセージをどのように記入すればよいかわかりません。

それは可能ですか?私はすべての小さなヒントに満足しています:)

0 投票する
2 に答える
1733 参照

svn - pre-commit スクリプトでのブランチの再統合またはマージの検出

pre-commit スクリプト内で、? に起因するコミットを特定することは可能svn mergeですか?

svnlook changed ...変更されたファイルを表示しますが、マージと手動編集を区別しません。

merge理想的には、標準とを区別したいと思いmerge --reintegrateます。

バックグラウンド:

プロジェクトに SVN の使用ポリシーを適用するために pre-commit フックを使用する可能性を探っています。

ポリシーの 1 つは、一部のディレクトリ ( など/trunk) を直接変更してはならず、機能ブランチの再統合によってのみ変更する必要があると述べています。したがって、pre-commit スクリプトは、ブランチの再統合を除いて、これらのディレクトリに加えられたすべての変更を拒否します。

何か案は?


アップデート:

コマンドを調査しましたが、最も近いのは、ディレクトリsvnlookのプロパティへの変更を検出して解析することです。svn:mergeinfoこのアプローチにはいくつかの欠点があります。

  1. svnlookプロパティの変更にフラグを立てることはできますが、どのプロパティが変更されたかはわかりません。proplist(前のリビジョンとの差分が必要です)
  2. の変更を調べることでsvn:mergeinfo、実行されたことを検出できsvn mergeます。ただし、コミットが純粋にマージの結果であるかどうかを判断する方法はありません。マージ後に手動で行った変更は検出されません。(関連記事:別のパス/リビジョンに対するトランザクション ツリーの差分)
0 投票する
1 に答える
507 参照

svn - トランザクション ツリーを別のパス/リビジョンと比較する

コミット前のスクリプトで、同じリポジトリ内の任意のパス/リビジョンに対してコミットされた変更の差分を取得するにはどうすればよいですか?

たとえば、内のファイルへの変更がコミットされると、コミットされた (まだリビジョンではない)/trunkの差分を取得したいと思います(これは のブランチです)。/trunk/branches/feature_x/trunk

私が知る限りsvnlook diff、そのトランザクションによって提案された変更のみが表示されますが、トランザクションではsvn diffなくリビジョンでのみ機能します。

力ずくの方法は、変更されたすべてのファイルの " svnlook cat ..." と " "の出力を比較することです。svn cat PATH:REVただし、それはかなり非効率的であり、フック スクリプトに含めたいとは思わないものです。

バックグラウンド:

特定のディレクトリへのすべてのコミットを拒否し、ブランチの再統合によってのみ変更を許可するプレコミット スクリプトを作成しようとしています (関連記事:プレコミット スクリプトでブランチの再統合またはマージを検出する)。

これまでのところ、ベース ディレクトリのプロパティをsvn merge調べることで の使用を検出できるようです。svn:mergeinfoただし、マージによって適用されたファイルの変更と手動で行われたファイルの変更を区別することはできないため、マージ後の編集は検出されません。

コミットされたトランザクション ツリーをマージのソースと比較して、余分な変更が加えられていないことを確認できるようにしたいと考えています。(私たちのプロジェクト ポリシーに従って、すべての競合の解決は再統合の前にフィーチャー ブランチで行われるため、後で変更する必要はありませんmerge --reintegrate) /trunk

0 投票する
3 に答える
1063 参照

svn - 事前コミットでのトランザクションのベースリビジョンの決定

トランザクションのにファイルの内容に基づいていくつかのルールを適用したいpre-commitフックを書いています。したがって、トランザクションの開始時に、「U」、「UU」、または「D」とマークされたファイルの内容を、保留中の変更なしでsvnlookcatしたいと思います。提供されたトランザクション識別子(事前コミットの2番目の引数)を取得し、ダッシュとそれに続く文字を取り除き、「基本リビジョン」と見なしても安全ですか?この情報を入手するためのより良い方法はありますか?