問題タブ [mercurial-queue]
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.
mercurial - Mercurial MQコマンドのフックを追加するにはどうすればよいですか?
mq拡張によって行われるいくつかのアクションのためにhgフックを設定したいと思います。例えば私がするとき
レビューボードサーバーで新しいレビューリクエストを作成するために、ポストレビューを使用したいと思います。また、差分を更新するフックを作成したいと思います。
これは可能ですか?
mercurial - Mercurial 拡張機能 (mq など) を有効にする方法は?
Ubuntu パッケージ リポジトリから Mercurial をインストールしました。q*
ただし、拡張機能 (コマンド)を有効にする方法がわかりません。どうすればいいですか?ヘルプはそれを示しています
mq と hgk を有効にしたい。
mercurial - 現在の変更のいくつかから新しいパッチを作成するための効率的な方法
私は水銀キューをかなり多く使用していて、それらに本当に満足していますが、私が過度に複雑だと思うワークフローが1つあります。パッチで作業しているときに、別のパッチで作業していることに気付くことがあります(たとえば、機能の作業中に見つけたバグを修正したり、別の機能を追加したりした場合など)。私は実際に別のパッチに入れたいと思っています)。
したがって、作業ディレクトリの状態は次のとおりです。適用されたパッチA、B、Cに加えて、パッチCに配置する必要のある変更、および新しいパッチDに配置する必要のある変更。
そのための私の現在のワークフローは次のとおりです。
私もこのようにできることを知っています
このアプローチの欠点は、パッチCのファイルの数が通常多いことであり、それらすべてをコマンドラインに配置する必要があるのは厄介です。パッチDのファイル数は、通常、比較すると少ないです。
私が上で概説したものよりもこれを達成するためのより良い方法はありますか?
mercurial - 下書きでのみ mq を機能させる
最近 Mercurial にフェーズが追加されました。
mq をフェーズドラフトでのみ機能するように制限することは可能ですか?
strip
変更セットを公開しようとすると、警告が表示されるはずです。
mercurial - 一部の変更が Mercurial に伝播しないようにするにはどうすればよいですか?
私は Web データベースを開発していますが、これはすでに約 12 の個別のインストールで使用されており、そのほとんどは私も管理しています。各インストールには、かなりのローカル構成とカスタマイズがあります。svn から mercurial に切り替えたばかりなので、その分散された性質を利用してローカルの変更を追跡したいと考えています。インストールされている各サーバーを独自のレポとしてセットアップしました (および .hg ディレクトリを提供しないように apache を構成しました)。
私の問題は、開発ツリーにもローカル構成が含まれていることです。バージョン管理されていない構成ファイルにすべてのビットを配置することは避けたいと考えています。では、マスター リポジトリとインストール済みのコピーにローカル構成が伝播されないようにするにはどうすればよいでしょうか。
例:バージョン管理と配布が必要な長い config.ini ファイルがあります。「クリーン」バージョンにはデータベース接続パラメーターのプレースホルダーが含まれており、インストールされたコピーのリポジトリーに開発サーバーのパスワードを入れたくありません。しかし、ときどき、伝播する必要のある変更 (新しいデフォルトなど) を行います。同様の状況にあるファイルがいくつかあります。
これまでのところ、mq をインストールして、ローカルの変更をパッチ (実際には、論理的に別々の変更セットを持つ 2 つのパッチ) に変換することが最善の方法です。通常の変更セットをローカルリポジトリにコミットするたびに、すべてのパッチをポップし、変更をコミットして、パッチを再適用する必要があります。マスター リポジトリにプッシュする準備ができたら、もう一度パッチをポップし、プッシュして、再適用する必要があります。これはすべて複雑で、エラーが発生しやすいものです。
私が見ることができる他の唯一の代替手段は、プッシュを忘れて変更セットをパッチとしてのみ伝播することですが、これはさらに悪い解決策のようです. 誰かがより良いセットアップを提案できますか? これがそれほど珍しい構成だとは想像できませんが、それについては何も見つかりませんでした。
編集:ここでの提案をフォローアップした後、名前付きブランチとリベースがシンプルで実行可能なソリューションを提供するという結論に達しました。私自身の回答の形で説明を追加しました。ご覧ください。
mercurial - TortoiseHg 2.xでパッチ(qfold)を折りたたむにはどうすればよいですか?
TortoiseHg 1.xでqfoldとその方法について説明しているチュートリアルをいくつか見ましたが、パッチを折りたたむためのボタンが2.xのどこにあるかわかりません。公式ドキュメントにはそれについてはまったく触れられていません。誰かがそれを行う方法を知っていますか?
mercurial - MQ vs. branches in Mercurial
I've been working with Mercurial now for some time. When making (private) changes to some third party software, in the past I always created a separate named branch for these changes. When the upstream code updates, I simply merge it into my named branch.
Today I read about MQ (Mercurial Queues - chapters 12 and 13). I think I understood the concept behind MQ, so my question is:
Is there any advantage of MQ over (named) branches in Mercurial (for my scenario)?
mercurial - 不要な変更をバックアウトし、それらからパッチを作成します
私はリモートリポジトリで誰かと共同作業をしています。私が行った変更はレポから削除する必要があることに気づきました。しかし、それらの変更は多くのチェンジセットにあり、誰かの変更と混ざっています。
別のチェンジセットをコミットする直前に、変更を削除することにしました。だから私はコミットされていない変更とそれからパッチqpop
を作りました。
次に、残りの変更をリモートからバックアウトし、それらの変更からパッチを選択的に作成して、同僚の変更に影響を与えないようにします。
さらに、新しいパッチの差分と、patch_ive_made_beforeの差分を1つのパッチに含めたいと思います。つまり、2つの異なるチェンジセットから1つのパッチが必要です。手動で行う必要がありますか?
それを行った後、リポジトリへの変更をcommit
/クリアします。push
Mercurial Queuesでこれをどのように行うことができますか?
version-control - Mercurialパッチが引っ張られるのを防ぐにはどうすればよいですか?
これまでのところ、明確な答えを見つけることができませんでしたが、答えは「ワークフローを変更する」である可能性があります。
Mercurialのパッチキューをいじり始めたところですが、そこには深刻な力があります。かなりすごいようです。私のテストでは、にパッチキューがありrepo1
、からプルするとrepo2
、いくつかの悪いことができることがわかりました。例えば:
- リポジトリ1を作成し、クローンを作成します。
- キューを有効にする
repo1
- にいくつかのコミットといくつかのパッチを作成します
repo1
- 変更をプルして
repo2
- すべてのパッチを適用解除
repo1
(ポップ?)します - 変更をプルして
repo2
これで、2つの異なるブランチが表示されます。これは特定の観点からは理にかなっています。ただし、私のパッチはrepo1
(少なくとも適用されるまでは)履歴の一部ではないため、パッチが立ち入り禁止であることをMercurialに伝え、「」にあるものだけを提供する方法があるはずです。公式の歴史」。
これを行う方法はありますか?
mercurial - Mercurial:中断された「qpop-a」から回復する方法は?
いくつかのリビジョンをキューにインポートし、それらすべてをポップしようとしました。残念ながら、同じリポジトリにアクセスしている他のMercurialクライアントによると、hg qpop -a
正常に完了しませんでした。
これで、パッチを元に戻すことができなくなりました。Mercurialは常に「不明なノード」について不平を言います。
これはどういう意味で、この問題をどのように解決できますか?