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

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

mercurial - Mercurial:プル時にフックを追加する方法

私はこれをしばらく検索しましたが、何も見ませんでした。つまり、それを行うべきではないか、単に行うことができないということです。

Mercurial のフックのリストを調べたところ、hg pull コマンドを実行した後にスクリプトを実行するフックが見つからなかった (または 1 つが機能した) ように見えました。

ありがとうございました

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

mercurial - Mercurial: リモート リポジトリにリモート リポジトリのローカル コピーを作成する

デスクトップで Mercurial を使用し、ローカル リポジトリを集中型サーバーにプッシュします。私は、このリモート サーバーがリポジトリにファイルのローカル コピーを保持していないことに気付きました (ディレクトリは明らかに.hg1 つを除いて空です)。

これらのディレクトリにローカル コピーを格納するための推奨される方法は何ですか? (これらは、そのサーバー上のさまざまな無関係なサービスによって使用されます)。

これまでに思いついたのは、フックを使用しhg archiveてローカル コピーを作成することです。これは満足のいく解決策ですが、リポジトリごとのhgrcファイルを構成する必要があります (これは面倒ですが、.NET でこれを一元化する方法が見つかりませんでした/etc/mercurial/hgrc)。グローバル スクリプト ( /etc/mercurial/hgrc各 changegroup イベントに対して実行) でしょうか。if...then(その場合、シナリオで使用するリポジトリ名を取得するにはどうすればよいですか?)

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

mercurial-hook - --remove オプションを指定しても Mercurial pretag フックが呼び出される

私は Mercurial の初心者で、タグ名のポリシーをチェックする pretag フックを作成しています。

以下のコードがあります。

このフックは、タグ付けするときに完璧に機能します。しかし、このフックは --remove オプションで無効なタグを削除したいときにも実行されます。

それで、彼の状況を回避する方法はありますか?

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

mercurial - Mercurial でコミットを特定のブランチに制限するにはどうすればよいですか?

基本的に、特定のブランチへの書き込み権限を管理する方法を探しています。

これは、コミット前 (ローカル)、またはコミット後だがプッシュ前 (リモート) のいずれかです。

リリース ブランチを一部のみが編集できるワークフローを強制するために、特定のブランチへの書き込みを保護する必要があります。

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

mercurial - Mercurial: [pretxn]changegroup フックで changegroup を変更する方法

コミットを検査し、おそらくそれにいくつかの変更を加えてから、変更をコミットする changegroup または pretxnchangegroup フックを使用して Mercurial リポジトリを作成しようとしています。私のフックはこれに似たようなことをします:

しかし、フックを持つリモートリポジトリにプッシュすると、ロックを待ってハングし、それを強制終了する必要があります:

変更グループはリポジトリの書き込みロックを保持する必要があり、フック内にあるコミットも保持する必要があることを理解しているため、これは理にかなっています。しかし、どうすればこの問題を回避できますか?

うまくいくかもしれない2つの方法を考えることができますが、それらが可能かどうかはわかりません:

  1. 変更グループが完了してロックが解放された後に実行されるフックがあれば、そこでコミットを実行できます。
  2. 着信チェンジグループにチェンジセットを追加します。
0 投票する
1 に答える
65 参照

mercurial - プッシュ時に新しいヘッドを自動的にマージ

フックを使用してリポジトリへのプッシュに反応し、このプッシュによって作成されたすべての新しいヘッドをマージすることは可能ですか?

これに対する私の使用例は次のとおりです。コミット フックを使用して非常に限定的な変更のみを許可するリポジトリを設計しようとしています。基本的な考え方は、既存のファイルをより良いファイルに置き換えることだけが許可されているということです (より良いものとは、外部プログラムによってチェックできるものです)。各ユーザーは、中央リポジトリのクローンを作成し、変更をクローンにコミットできます。ユーザーが自分の変更を中央リポジトリにプッシュすると、フックは各ブランチに沿って品質が向上するかどうかをチェックし、それ以外の場合はプッシュを拒否します。ユーザーがプッシュして同期を外した場合、理論的には自動的にマージできる複数のヘッドが作成されます (各ファイルの最適なバージョンを取得します)。

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

mercurial - Mercurial でのリベース後のローカル コミットの修正

最初は、私のローカル レポジトリは次
C1 -> C2 -> My1
のように見え、リモート レポジトリは 次のようになりました。
C1 -> C2 -> R1 -> R2

$ hg pull
$ hg rebase

C1 -> C2 -> R1 -> R2 -> My1

ここで、ファイル「File1.java」にいくつかの変更を加えました。これらの変更を最後のコミットの一部にしたいと考えていますMy1。私がするとき:
$ hg commit File1.java --amend
私が得るエラーメッセージは次のとおりです:
abort: cannot amend merge changesets
グーグルでこれを見つけまし、それによると、それはmercurialの問題のように見えますが、それを回避する方法があると確信しています。
最後のローカル コミットの新しい変更を修正する手順を教えてください。