1

これは hg 機能ではないことはわかっていますが、誰かが似たようなものを取得する方法を知っているかもしれません。うまくいけば、私の説明は理にかなっています:

メインライン (つまり、デフォルト ブランチ) のコミットをパッチ キューに数週間保持して、「解決」できるようにしておくと便利です。ただし、新しいキューを介してトピック ブランチを作成できるようにしたいとも考えています。適用されたパッチから始まる新しいキューを作成できないため、これら 2 つのアイデアは相互に排他的です。これを行う唯一の方法は、メインライン パッチをファイナライズし、qparent コミットからブランチ キューを開始し、ファイナライズされたパッチを mq にインポートして微調整を処理することです。他のアイデアはありますか?この種のワークフローでは git の方が優れていますか?

4

3 に答える 3

0

mqhgbook で説明されているように、guard必要な柔軟性を提供できる機能があります。3 つのパッチがあるとします。

  • patch-a- 「解決」させているメインライン パッチ
  • patch-b- feature1 の作業が不完全な新しいパッチ
  • patch-c- feature2 を開始する新しいパッチ

必要に応じてガードを割り当てるだけです。

hg qpop -a
hg qguard patch-b +feature1
hg qguard patch-c +feature2
hg qselect feature2
hg qpush -a

この時点で、はガードされていない ( ) パッチとポジティブにガードされている ( ) パッチをmqすべてプッシュし、現在選択されていないガードがあるためスキップします。保護されていないパッチは常に適用されます。ガードが選択されている場合にパッチの適用を防止するネガティブ ガード (例: ) もあります。patch-apatch-cpatch-bhg qguard -- -feature1

feature1 に切り替えるには:

hg qpop -a
hg qselect feature1
hg qpush -a

パッチ キューでこれだけ多くの作業を行っている場合は、( を使用して) キューの変更を追跡するために、キュー自体を頻繁にコミットする必要があることに注意してくださいhg com --mq

于 2013-06-26T21:24:13.043 に答える
0

https://www.mercurial-scm.org/wiki/ChangesetEvolutionを参照してください。

git では、このワークフローが少し簡単になる可能性が十分にあります。

于 2013-06-21T09:22:45.527 に答える