2011-08-04 5 views
1

最近、私はMercurialSubversionから変更し、local commitsについて学ぶことに興奮しました。プッシュで頻繁なローカルコミットを抽象化しますか?

しかし、現在のワークフローとは異なるワークフローがありました。

非常にのコミットを実行します。私の単一のpushは中央のリポジトリに5-37ローカルのcommit changesetsにそれぞれcommit logが含まれています。しかし、私は後でこれらの個体commitsを見た/戻すことに気をつけませんでしたが、私の単一のpushに戻って戻ってきました。私はこのpushの操作を複数ローカルのcommitsの抽象として1つのpush logとすべてのチェンジセットを1つのchangesetにマージして見ることを望んでいました。

+3

[この質問](http://stackoverflow.com/q/1200691/218597)をご覧ください。それはあなたが望むかもしれないし、そうでないかもしれないチェンジセットをローカルで崩壊させることを意味するでしょう。答えとコメントはまた、**それをしていない**の方向にあなたを指します - Mercurialはすべて変更履歴に関するものであり、変更はすべてその一部です。 – icabod

答えて

1

これは達成したいことに大きく依存しますが、MQ拡張機能を使用して、最初に行うローカルコミット(MQがパッチに変換)を変更できます。

2つのパッチを1つに折り畳むか、既存のパッチをリフレッシュして、さらに変更を加えることができます。

理想的であるものを歴史について2つの哲学があります。

  • は、それらが作られたとしてコミットがそのまま、残されるべき、またはそれらがによって、理想的な世界で作られたかのよう
  • 歴史がコミットを含まなければなりません全面的な開発者。

MQは、後者のアプローチが好きな人には最適です。

2

すべてのコミットは同じですが、格納されているコンピュータではなく、「ローカル」コミットと「リモート」コミットの区別はありません。

また、大きなコミット(あなたがしたいこと)は、通常は悪い考えであり、変更を理解しにくくします。したがって、早期にコミットしたり、頻繁にコミットしたり、他の開発者にプッシュしたり(マージを意味するものではありません)、コードを使用して結合する必要があるときにマージする方がよいでしょう。より大きな機能を開発している場合は、ブランチを作成したり、ブランチをマージしたりすることもできます。

関連する問題