1

プロジェクトの公式 SCM は Subversion ですが、現在、プロジェクトで hgsubversion を使用してローカル コミットの利点を享受しています。ローカル コミットを SVN リポジトリにプッシュするために、これまでのところ、成功した結果が得hg rebase --svnられた単純なものを使用してきました。hg push

私が遭遇した小さな問題の 1 つは、プッシュしたい特定の修正がある場合、他のすべてをプッシュするのではなく、その修正をコミットしてからプッシュすることができると思ったことです。しかし、これにより次のメッセージが表示されます。

中止: コミットされていない未解決の変更

いいよ。そのため、コミットされていない変更を棚上げします。しかし、何らかの理由で、特定の変更 (新しいファイルの追加) を棚上げすることができません。なんというか、実際に害を及ぼすことはないので、これをコミットするだけでよいと思います。

それが私がすることです。しかし、ヘルプドキュメントによると、この効果を持つフラグをhg push取ることができます:-r

-r/--rev を使用すると、指定されたリビジョンとそのすべての先祖がリモート リポジトリにプッシュされます。

すごい!それはまさに私が望むもののように聞こえます。ここで、私の最新の 2 つのローカル コミットにリビジョン番号 94 と 95 が与えられているとします。最初のコミットのみを SVN にhg push -r 94 プッシュし、2 番目のコミットは純粋なローカル コミットのままにすることができると考えました。しかし、何らかの理由で、これは 94 と 95 の両方を押し上げました。

私は何を間違えましたか?

4

2 に答える 2

2

mq 拡張機能が有効になっていると仮定します。

hg qimport -r95:
hg qpop -a
hg push
hg qpush -a
于 2011-04-21T16:22:41.037 に答える
1

私は Hg にあまり詳しくありませんが、これはあなたができることです:

hg up -r 94
hg rebase --svn
hg push --svn
于 2011-04-20T18:27:52.673 に答える