問題タブ [mercurial-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.
git - gitpost-receiveフックに相当するHg
git post-receive
リポジトリへのプッシュが行われたことを別のサービスに通知できるように、Mercurialのフックに相当するものが必要です。
フックに必要なのは単純です。最後のチェンジセットのチェンジセットリビジョンです。
もちろん、gitとの違いは、ref
名前が付けられないことと、リポジトリに複数のヘッドがプッシュされる可能性があることです。私はそれで大丈夫かもしれません。
今のところ私が望まないのは、hg incoming
フックを使用した現在の実装の動作です。プッシュされたすべてのチェンジセットのリビジョンがあります。
次に、要約するhg
と、リポジトリに最後にプッシュされたコミットを通知するための最良の方法は何ですか?
編集:新しいコードが到着したため、リポジトリからプルするように別のサービスに通知することが目標です。しかし、私はサービスがプッシュのすべてのチェンジセットに対してプルすることを望んでいません
mercurial - リベース後にのみmercurial changegroupフックを実行するには?
リモートの変更をプルするたびに実行される単純な mercurial フックがあります。changegroup フックを使用します。私たちのフックは、いくつかの dll を再構築し、それらをフォルダーにコピーします。プルを行うと、自動的にリベースします。これにより、フックが 2 回実行されます。最初はプルを実行するとき、次に自動リベース後です。
リベースがあるかどうかを検出し、リベースの最後に一度だけフックを実行する簡単な方法はありますか?
ありがとう、
mercurial - mercurial: precommit で変更されたファイルを含む
リポジトリへのコミット時に、Mercurial で定義されたフックがあります。
これにより、コミットに含める必要があるデータベースから SQL ダンプが作成/更新されます。BUT: これは機能しますが、Sql は新規としてマークされますが、現在コミット中の変更セットの一部ではありません。変更されたファイルのセットに入るように自動的に含めるにはどうすればよいですか?
これが理にかなっていることを願っています...
Thx ラインハルト
mercurial - MercurialEncodeDecodeFiltertempfileテンプレートがsedバッチからOUTFILEを取得しない
私は現在、単純で、一見必要と思われる前提を容赦なく非難しています。ドキュメントに従えば、物事は宣伝どおりに機能するということです。これが常に当てはまるとは限らないことは理解していますが、最近、そのようなWTFの急流に悩まされています。
狙撃兵を幸せにする最初のことは、はい、これはhgキーワードと関係があります。具体的には、コミット前に常に縮小されるようにします。hgがディレクトリをロックしているため、のprecommitフックが機能しないことを発見しました。hg kwshrink
そのため、次の候補は[encode]
フィルタです。
私は#2から始めましたが、#1も機能せず、私のバッチは単純です
レムは私の調査を示しています。
hgが私の出力を使用していないことを除いて、すべてが正しく行われているように見えます。元のファイルがどのように動作するかについてのドキュメントを読んだことがないかのように、元のファイルをコミットするだけです。
明らかに、私は魔法の呪文を見逃しているか、ここでのキャリアの選択を再評価する必要があります。
mercurial - hg changegroup フック - hg からの特定の出力を抑制しますか?
リモート サーバー コピーから変更をプルするときに、ローカル リポジトリで呼び出される changegroup フックを作成しました。フックの実装では、hg update を呼び出して変更を取り込みます。hg pull
コマンドを実行すると、出力は次のように表示されます。
私はすでにhg update
フックを呼び出しているので、ユーザーに実行を提案する最後の行を抑制したいと思いますhg update
。
mercurial - 水銀ロールバックフック?
ロールバックが行われた後にロジックを実行できると非常に便利な拡張機能を作成しています。
フックで見つけたすべてのドキュメントを調べましたが、フックが見つかりませんでしたrollback
。post-*
フック(つまり、 )も試しましたpost-rollback
が、それも発火しませんでした。私の次のステップは情報源に飛び込むことですが、誰かが知っている場合に備えて、この質問をするつもりでした。
ロールバックフックはありますか?もしそうなら、またはを使用してPython拡張機能に接続することは可能ですuisetup()
かreposetup()
?
mercurial - Mercurial リポジトリの無効化/非推奨 (ただし削除はしない)
私の同僚と私は、集中管理された (問題がある場合は ubuntu) サーバー上にあるいくつかのリポジトリを使用しています。私たちのいくつかのプロジェクトでは、同じ 4 つのリポジトリを多くの異なるプロジェクトのサブリポジトリとして含めています。これは、ネットワークを介してすべてを転送するのに時間がかかるなどの理由で、多くの異なるプロジェクトにわたって 4 つの異なるサブリポジトリを常にプッシュ/プル/マージしていると、少しイライラする可能性があります。
これら 4 つのリポジトリを 1 つのマスター リポジトリに結合して、今後のすべてのプロジェクトに含めることができるようにしたいと考えています。問題は、古いサブリポジトリを削除したくないということです。削除すると、正常に機能している既存のプロジェクトが壊れてしまうからです。
これらの古いリポジトリを非推奨として指定する方法、または少なくとも、私の同僚がこれらのリポジトリに新しい変更セットをプッシュして役立つエラー メッセージを表示することを不可能にする方法があれば、素晴らしいことです。これは、おそらくこの接線 Q/A が示唆するように水銀フックを使用して可能ですか?
mercurial - コミットメッセージの特定の文字列が原因で通知を送信するようにMercurial通知拡張機能を調整していますか?
Mercurial リポジトリのコミット メッセージに特定の文字列があるため、特定のメールに通知を送信する必要があります。通知拡張機能が機能するようになりましたが、プッシュごとに通知が送信されます。事前に感謝します。
mercurial - hg push -f を許可しない - ただし、hg pull を許可して新しいヘッドを作成する
Mercurialのフォローアップとして: "hg commit" の前に "hg pull -u" を強制 する フックの使用を開始しました
forbid_2head.sh は次のようになります
これは、複数の名前付きブランチを許可するhttp://tutorials.davidherron.com/2008/10/forbidding-multiple-heads-in-shared.htmlにあるスクリプトの派生物です。
私が今抱えている問題は、
- それは私が望んでいたhg push -fを停止します
- また、着信チェンジセットがあり、発信コミットがある場合に備えて、hg pull を停止します。これはさすがにまずい
同じスクリプトを何らかの方法で再利用して、フックの設定を変更し、"hg push -f" を停止することはできますか? または、forbid_2head.sh で、これが実行中のプッシュ コマンドかプル コマンドかを知ることができますか?
mercurial - Mercurial:リモートhg更新フックの後に強制削除
リモートリポジトリには、プッシュを受信した後にリポジトリを自動的に更新するためのフック設定があります。ローカルでファイルを削除してからプッシュする場合を除いて、これはうまく機能します。次のようなメッセージを受け取ります。
'c'を自動的に選択します。Mercurialに「d」を使用させて代わりにファイルを削除する方法はありますか?
コメントにも投稿されているフックは次のとおりですが、改行がここに保持されていることを願っています。
.shファイルは、hgの更新後に一部のアクセス許可をリセットします。