2

hgsubversion 拡張機能を使用して、SVN リポジトリで TortoiseHg を使用しています。

hg pull --rebaseプルするときに、SVN が行うことを反映するために使用するのが好きsvn updateです。私は hgsubversion を使用しているので、プッシュする前にとにかくリベースする必要があります。

さらに、内部で自動的にリベースを行いますが、それを回避する方法はありませんhg push

私の難点は、hg rebaseコミットされていない変更がある場合、動作を拒否することです。したがって、SVN からプッシュまたはプルするには、常にhg shelve最初に行う必要があり、その後に行うことを忘れないhg unshelveでください。これは本当に面倒で、いつも忘れてしまいます。

理想的には、これを自動的に行うように TortoiseHg に指示したいのですが、コマンドライン エイリアスで解決したいと思います。ここで提案されsvnpull = !hg shelve && hg pull --rebase && hg unshelveているように、構成にエイリアスを配置しようとしましたが、パスワードの入力を求められる代わりに、「user: abort: response expected」というエラーが表示されます。中央リポジトリと対話するたびに手動で保留/保留解除の手順を実行しないようにするにはどうすればよいですか?

hgsubversion はシークレットフェーズ尊重せず、hgsubversion は push するリビジョンの指定をサポートしていないため、変更をローカルに実際にコミットすることはできず、ローカルの変更をプッシュすることを避けるだけです。残念ながら、この同様の質問に対する答えはどれも私には役に立ちません。とにかく、「ローカルのみ」の変更セットが常にヒントになるように手動で調整する必要があります。

4

2 に答える 2

2

解決策は、リポジトリ フックを使用することでした。これを .hg/hgrc 設定ファイルに追加しました:

[hooks]
pre-pull = hg shelve
post-pull = hg unshelve
pre-push = hg shelve
post-push = hg unshelve
于 2016-01-25T18:18:58.393 に答える