2

ある種のエイリアスを作成して、、、、およびをhg push自動的に実行するようにしています。hg pullhg mergehg commithg push

明らかに、マージ時の競合など、何か問題が発生した場合は停止します。

これまで私はこれを書きましたが、引っ張るものがない場合は機能しません:

hg pull -u && hg merge && hg ci -m "merge" && hg push

マージするものがない場合、次のように失敗します。

abort: there is nothing to merge

4

1 に答える 1

2

fetchという名前の組み込み拡張機能は、プッシュ以外のすべてを行います。

最も単純なケースでは、hg fetch は次のように動作hg pull -uします — リモート リポジトリからローカル リポジトリに変更をプルし、作業ディレクトリを更新します。(これは、Subversion や CVS に見られる "update" コマンドに似ています。)

プルされた変更にマージが必要な場合、フェッチ拡張機能は のhg merge後にhg commit.

拡張機能を有効にしてから、次のようにします。

$ hg fetch && hg push

ただし、通常のマージの代わりにリベース (早送りマージ) を行うことを検討してください。--keepこれにより、無限の「マージ」コミットからリネージュをクリーンに保つことができます。元のチェンジセットを使用している場合は、通常のマージと同じくらい安全です。

実際のところ、単一のタスクに取り組むときの私の通常のワークフローは次のようなものです。

# edit some files, test
$ hg commit
# edit some more files, test
$ hg commit
$ hg pull --rebase
$ hg push
于 2012-05-21T14:46:29.733 に答える