問題タブ [mercurial-phases]
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 - 下書きでのみ mq を機能させる
最近 Mercurial にフェーズが追加されました。
mq をフェーズドラフトでのみ機能するように制限することは可能ですか?
strip
変更セットを公開しようとすると、警告が表示されるはずです。
mercurial - Mercurial: 秘密の変更セットをバンドルに含めますか?
Mercurial を使用して、秘密の変更セットを含め、別のリポジトリにあることがわかっていないすべての変更セットをバンドルするにはどうすればよいですか?
bundle
の--base
オプションにたまたま秘密の変更セットが含まれていることは知っていますが、その--base
動作は望ましくありません。(そして、秘密の変更セットが常に含まれているのに、それなしで--base
は決して含まれないというのは非常に奇妙に思えます。別のオプションがあるべきではありませんか?)
参考までに、潜在的に危険な履歴の書き換えを試みる前に、ローカル リポジトリにのみあるすべての変更セットのバックアップを作成したいと考えています。
mercurial - レビュー リポジトリにプッシュした後、リベースで「中止: イミュータブルな変更セットをリベースできません」
コード レビュー リポジトリがあり、hg push -f
あらゆる種類のものがあります。レビューが完了したら、プロジェクトの中央リポジトリからプルし、リベースし、プッシュします。最近、mercurial 2.1 にアップグレードしたところ、次のメッセージが表示されました。
hg pull --rebase
中央リポジトリから行おうとすると。どうすれば修正できますか?
mercurial - シークレットチェンジセットをプッシュする
それは逆説的に見えるかもしれません、私は秘密のチェンジセットがプライベートであることを意図していることを知っています、しかし私がそれらの秘密のチェンジセットをバックアップしたい場合はどうなりますか?
私はいくつかのブランチを並行して使用しており、1つをプッシュしたいが、他のブランチはプッシュしたくない場合があります。それを達成するために、私は別々のクローンで作業しますが、それは嫌いです。
これでMercurialにフェーズができたので、秘密のブランチを作成して、すべてを同じリポジトリに入れることができます。問題は、シークレットブランチの開始から公開までの間に、それらのシークレットチェンジセットをバックアップしたいということです(ローカルリポジトリまたはマシンで何かが発生した場合に備えて、バックアップを保持するためだけに別のマシンにクローンがあります)。
それを行う方法はありますか、それとも私のワークフローは完全に間違っていますか?
mercurial - サーバーが非公開であることを (ローカルで) mercurial に伝えるにはどうすればよいですか?
リモートファイルへのアクセス権がない場合、リモート サーバー (たとえば、 bitbucket上) が公開されていないことを mercurial に伝えるにはどうすればよいですか?.hg/hgrc
バックグラウンド
最近のバージョンの mercurial にはフェーズpublic
の概念があり、どの変更セットが共有されており ( )、どの変更セットが共有されていないか ( )を追跡できdraft
ます。のようなリポジトリ変更操作は変更セットでrebase
許可されますが、変更セットは変更セットに依存する可能性があるため許可されません。draft
public
変更セットを公開サーバーにプッシュするとpublic
、デフォルトでフェーズが変更されますが、サーバーが非公開またはコード レビュー専用の場合 (つまり、人々がプルできないようにする必要があります)、その「非公開」サーバーにプッシュしても、段階。
サーバーが非公開であることをmercurialに伝える文書化された方法は、サーバー上のファイルに[phases]
セクションを追加することです:.hg/hgrc
特定のサーバーが非公開であることを示す行をローカル ファイルの 1 つに含める方法があるように思えますが、そのhgrc
方法を示唆するドキュメントが見つかりません。おそらく、この動作はフックでカスタマイズできますか?
参考文献
mercurial - Mercurial: パブリック フェーズなしでリモート リポジトリから変更をプルします (非公開サーバー、「中止: 不変の変更セットをリベースできません」)
バックグラウンド
Mercurial には現在、改ざんされるべきではない歴史を人々が改ざんするのを防ぐ優れたメカニズムであるフェーズがあります。変更セットがリモート リポジトリにプッシュされると、変更セットが作成され、それ以上作成public
できなくなりますrebased
。これは通常、リポジトリが公開されていて、変更セットを他の人に変更されたくない場合に適しています。
draft
ただし、変更セットを自分だけと共有するための独自の一時リポジトリがある場合は、非常に面倒になる可能性があります。Mercurial には、これをオフにするオプションがあります。これをリモートリポジトリ.hg/hgrc
のファイルに追加します。
draft
これにより、リモート リポジトリにプッシュされたチェンジセットがフェーズからフェーズへ移動するのを防ぎますpublic
(ローカルのチェンジセットとリモート リポジトリにプッシュされたばかりのチェンジセットの両方)。ただし、このチェンジセットをプルすると、public
フェーズ内で常にプルダウンされます。
質問
draft
フェーズで変更セットをプルダウンしたいと考えています。個人用サーバーに変更セットをプッシュしてから、自宅でプルダウンしたいだけです。プルした後rebase
、真のパブリッシング サーバーからプルしたコミットの上に一時的なコミットを行います。
プルされた変更セットの自動移動を回避する方法はpublic
素晴らしいでしょう。このリモート リポジトリは、私にとって完全かつ完全なドラフト サーバーです。draft
試みが失敗した後に変更セットを手動で元に戻すことを余儀なくされることは、rebase
本当に神経質になり始めています。
参考文献
git - Git は Mercurial フェーズに相当しますか?
Mercurial では、まだプッシュする準備ができていない作業を追跡するために、秘密のチェンジセットを定期的に使用しています。次に、一部のファイルに緊急の変更を加える必要がある場合は、公開リビジョンに更新し、その変更を行ってプッシュすることができます。未完成の変更セットがプッシュされることを心配する必要はありません。
いいえ:
gitでこれをどのように行いますか?