4

私は約 10 年間、ソース管理システムを使用してきました。

私は現在 .NET 開発に Mercurial を使用していますが、私の目標を最もよく達成するには、あなたの意見がどのようなものか知りたいという特別な要件があります。

ローリングリリースの一種であるベースライン製品を開発します。一部の顧客は、製品のスリム化 (より安価なライセンスを取得するため) またはオーダーメイドの作業を行う必要があります。私は「トランク」(Mercurial のデフォルトのブランチ) を分岐し、オーダーメイドの作業を行い、ビルドを作成する傾向があります。

新しい作業が「トランク」で行われ、別注のブランチから新しいビルドが必要になった場合、変更をマージしてからhg merge -r CHANGESET_NUM_FROM_DEFAULT_HEREビルドを行います。

これは問題なく機能しますが、特注のブランチは、実際には特注の機能ではない「トランク」に関連するコミットですぐにいっぱいになります。これは、このブランチの変更セットを調べる必要があるときに、それらが雑然としていることを意味します。

ブランチの「ジャンクションポイント」が始まる場所に本当にシフトしたいので、特注のチェンジリストには特注のチェックインのみが含まれますが、特注のブランチの親は変更されます。

これを行う必要があるように見えるため、リベース拡張機能を使用しようとしましたが、代わりに多くのマージが行われ、特注のブランチが散らかっています。

特注のブランチをきれいに保つ方法はありますか? それとも、私は間違った方法で物事を進めていますか?

4

1 に答える 1

1

オーダーメイドのブランチきれいになりました。ただし、ブランチ ログにマージセットを表示したくない場合は、ログをスキップしてください。

hg help log

オプション:

...

-M --no-merges はマージを表示しません

hg log -r 55:tip --template "{branch}:{rev}\n" -b default

デフォルト:55

デフォルト:56

デフォルト:57

デフォルト:60

デフォルト:61

デフォルト:63

デフォルト:65

デフォルト:66

hg log -r 55:tip --template "{branch}:{rev}\n" -b default -M

デフォルト:55

デフォルト:56

デフォルト:57

デフォルト:61

デフォルト:65

デフォルト:66

THGからのグラフのスクリーンショット

マージ

于 2012-10-10T18:47:43.620 に答える