問題タブ [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 - 非推奨のqsaveなしで、パッチキューで拒否されたハンクにmercurialマージ機能を使用する方法は?
リポジトリがあり、未完成の変更に mq パッチ キューを使用しています。パッチ キューもバージョン管理下にあります。
2 つのパッチ p1 と p2 があるとします (この順序で適用されます)。ここで、p1 に変更を加えます。
...そして p2 は適用に失敗します。
標準的な方法は、拒否されたハンクを手動で適用することです。MqMergePatchのような、mercurial のマージを使用する優れたものを使用したいのですが、これは非推奨の機能に基づいています。
私の質問は: hg rebaseでそれを行う方法は?
編集
リポジトリのログを見た後、私は MqMergePatch がそれに対して行うことをまったく好きではありません。パッチを使用する際の私の主な目標は、リポジトリの履歴をクリーンにし、無駄な詳細が散らばらないようにすることです。
linux - 差分ファイルの一部を選択的に除外する対話型プログラム
差分ファイルをインタラクティブに「フィルタリング」するために使用できるプログラム (できれば Cygwin で利用可能) はありますか? つまり、差分ファイルを操作したいという点を除いて、git interactive add のようなものが必要です。私はすでに を発見filterdiff
しましたが、インタラクティブな編集をサポートしているとは思いません。事前定義された検索基準に基づいたハンクの包含/除外のみです。
私の使用シナリオ: MQ にパッチがあります。チュートリアルに従って分割したいと思います: https://www.mercurial-scm.org/wiki/MqTutorial#Split_a_patch_into_multiple_patches。そのためには、必要な (多くの) 変更のみが含まれるようにパッチ ファイルを編集する必要があり、テキスト エディターを使用して手動でこれを行うのは面倒です。
ありがとう!
mercurial - 適用されたMQパッチのマージを解く/元に戻す方法は?
パッチが適用されたワークスペースにブランチを誤ってマージしました。
この混乱をどのようにクリーンアップしますか?マージをクリーンアップする必要がありますか(hg up -C
)、またはマージを保存する方法はありますか?
mercurial - N 個のローカル最上位コミットを MQ パッチに変換する方法は?
最後のコミットを MQ パッチとして整理したいと思います。すべてのコミットはローカル (サーバーにプッシュされることはありません) ですが、すべてのローカル コミットが変換されるわけではありません。
例えば、私は 10 回のコミットを行いました (決してプッシュしたことはありません)。そして今、最後の 5 つをパッチに変換したいと考えています。
どうすればいいのですか?
mercurial - mqパッチを更新すると、変更されたファイルが作業ディレクトリに残るのはなぜですか?
観察してください:
MQパッチを更新した後、hg statusが同じ追加ファイルを返すのはなぜですか?これらのファイルは、hgqrefreshの詳細な出力に表示されることに注意してください。
私は今それをどうすることになっていますか?
ありがとう。
mercurial - hg update --mqが機能していませんか?
私は使用しています:Mercurial Distributed SCM (version 1.9.1)
、そして私は次のことをしました:
そして、私はmqの特定のリビジョンに戻ろうとしました:
Queue0のコンテンツが表示されないのはなぜですか?
mercurial - Mercurialキューまたはhisteditでpretxncommitフックを無効にする方法は?
ローカルのMercurialリポジトリにいくつかのpretxncommitフックがあります。これらのフックは、コミットメッセージにチケットへの参照とその他の健全性チェックが含まれていることを確認するために使用されます。
私の問題は、マーキュリアルキューを使用しようとするqnew
と、これらのフックを実行しようとしたり、チケットチェックの1つが失敗したりするとhistedit
、同様の拡張機能で同じ問題が発生することです。
これらのコマンドでpretxncommitフックが実行されるのはなぜですか?彼らはある種の内部コミットを実行しますか?
これらのフックをコミットでのみ実行するようにするにはどうすればよいですか?
python - パッチベースのワークフローが失敗してリポジトリに .rej ハンクが発生した場合に、mercurial でうまく機能するパッチ ツールはありますか?
Mercurial に組み込まれているものよりも優れたパッチ ツール、または Mercurial または Gnu パッチに受け入れられるようにパッチを編集するのに役立つビジュアル ツールを探しています。
Mercurial wiki には、Patching の失敗がいかに簡単であるかを示す、 HandlingRejectsというトピックがあります。機能ブランチに基づいており、統合前のパッチのエクスポートとレビューに依存する、機能ブランチのバージョン管理のための水銀ベースのワークフローを実装しようとしています。このアイデアの最初のテストでは、「パッチ アウト」および「レビューと受け入れと変更」パッチの最も弱いリンクは、パッチの拒否によって私がシャットダウンされる方法です。
Mercurial パッチのインポートが失敗する一般的なケースを次に示します。
アップストリーム repoA とフィーチャー ブランチ repoB の両方に些細な変更を加え、両方のブランチのどこかに 1 行追加します。両方のブランチに履歴があるため、マージ ツールで「誰かが repoA に 1 行追加し、他の誰かが repoB に 1 行追加した」ことを確認できるはずです。ただし、パッチのインポートの場合は、パッチのインポートが拒否され、リポジトリに .rej ファイルができてしまい、手動で修復する必要があります (適用できるようになるまで .rej ファイルを編集する必要があります)。
上記の wiki ページでは、ここにある mpatch ツールについて言及しています。(a) mercurial で動作し、(b) 上記のハンドリング リジェクト wiki ページに記載されている些細なケースを処理できる、他のより優れたマージ ツールを探しています。mpatch は私の目的では機能しないことに注意してください。パッチ ツールよりもリベース ツールが必要なようです。私の場合、パッチ ツールを構文対応にする必要があるかもしれません (したがって、単一のプログラミング言語)。
Windows でネイティブに、または cygwin などを介して作業するためのツールを探しています。Linux/Unix スタイルのツールには慣れていますが、Unix/Linux 環境は使用していません。
私は現在mq
拡張機能を使用しておらず、hg export を使用して変更の範囲をエクスポートし、hg import を使用してインポートしています。残りの作業は私自身の発明ですが、 mq ユーザーはこの処理の問題mq
に精通しているため、これにタグを付けました。 .rej
.
関連する質問hereは、TortoiseHg を使用しているときにこのような問題を解決する方法を示しています。
mercurial - Mercurial - シェルフに似たキューの操作?
私は最近、MQ を使い始めました。変更セットが十分に洗練されるまで、分離されたパッチに取り組み、レポに影響を与えずにコミットするというアイデアが好きだからです。それ以前は、Mercurial のシェルフ拡張機能を使用していましたが、少し不安定でした。私がまだ MQ で理解しようとしているのは、パッチを互いに分離し、特定の順序で適用せず、異なるブランチ間で適用する方法です。これが私の通常の流れです -
1.新しいパッチの作業を開始します。
2.作業する新しい機能/バグを取得します。
3.この時点で、バグ修正の作業に戻りたいと思います。機能の作業は脇に置きます。私はそれが次のように簡単だと思った:
ただし、MQ は常にシリーズで作成された最新のパッチを使用しているようで、使用している qpop/qpush コマンドに関係なく適用されます。私が作業しているファイルも完全に分離されていることに注意してください (ただし、同じ場合もあります)。
ここで何か不足していますか?これに使用hg qqueue
する必要がありますか?ありがとう。
mercurial - Mercurialで一時的な名前付きブランチを作成し、それを存在から削除します
TeamCity Visual Stuioプラグインに「Mercurialのリモート実行(パーソナルビルド)」機能を追加するというアイデアをいじっています。
v6.5以降、TeamCityは「リモート実行ブランチトリガー」をサポートします。TeamCityのトリガーに一致する名前付きブランチがプッシュされると、TeamCityはそのブランチのパーソナルビルドを実行します。
アイデアは、現在のブランチ(たとえばdefault
)から現在の発信チェンジセットを取得し、それらをと呼ばれる一時的な名前付きブランチに移動することremote-run
です。次に、これがCIにプッシュされるため、パーソナルビルドがトリガーされ、パーソナルビルドが成功すると、変更が元のブランチに戻され、remote-run
ブランチが削除されます。
これに関していくつか質問があります:
- それも意味がありますか?
- これにはどの拡張子を使用する必要がありますか?MqExtensionは必要なすべてを実行すると思いますが、代替手段はありますか?
- リモート実行中にユーザーが追加の変更をコミットするとどうなりますか?「一時的なブランチ」のチェンジセットはどのように元のブランチにマージされますか?
私が現在ターゲットにしているシナリオは次のとおりです。デフォルトのブランチで作業しているときに、ユーザーは3つの新しいリビジョンを追加します。次に、これらの変更をTeamCityの個人用ビルドとして実行したいと考えていますが、特別な名前のブランチにこれらのリビジョンをコミットするのを忘れていました。代わりに、私のアドインはそれらの送信変更を受け取り、名前付きブランチに配置します。パーソナルビルドが成功すると、それらの変更は元の(デフォルトの)ブランチに戻され、リモートリポジトリにプッシュされます。
このようなもの:
B
、C
およびD
が新しいリビジョンであると仮定して、ツールに次のことを実行させます。
そして、それが完了したら、元の状態に戻します。つまり、次のようになります。
編集:私はMqを使用して変更を別のブランチに移動することができましたが、これは非常に簡単でした。残念ながら、この変更を元に戻す方法がわかりません:)
これが理にかなっていることを願っています!