1

私はインターネットからプロジェクトをフォークしました。いくつかの新しい機能を書きたいと思っています。いくつかの直交する機能 (例: デバッグ ヘルパー、新機能 X、新機能 Y) を同時に作成し、それらすべてのコードを現在のディレクトリに配置したいのですが、コミットするときにできるようにしたいです。 「これらのファイルはブランチ 'debug' に移動します」、「これらのファイルはブランチ 'feature X' に移動します」など。これらは「hg ブランチ」の意味でのブランチです。

この理由は、プロジェクトのアップストリームが私のデバッグ ヘルパーやハッキングされたバグ修正をマージしたくない可能性があるためです。

事実上、これらのファイルの変更をブランチに適用したいだけですが、いくつかのブランチをチェックアウトして現在の作業ディレクトリにマージしたままにします。

これは可能ですか?おそらく、これを行うためのいくつかの hg 拡張機能がありますか?

ありがとう!

4

2 に答える 2

1

デバッグ ヘルパーやローカル ハックなどについては、マーキュリアル キュー (MQ)を参照してください。ローカルでのみ必要で、任意のリビジョン/ブランチに適用する可能性があるパッチに非常に役立ちます。

ブランチで同じことを行うのは面倒です。異なるブランチでデバッグと機能の変更を行うには細心の注意を払う必要があり、何かを実行するためにそれらをローカルの使い捨てブランチにマージする必要があるからです。コミット後にしかテストできないため、機能ブランチに多くの変更セットがあり、ツリーが壊れた状態のままになる可能性があります。

于 2012-07-30T13:31:09.483 に答える
0

なぜそんな風にやりたいのかよくわかりません。機能が直交している場合は、マージする準備ができるまで、機能を個別に操作できます。結局のところ、それがまさにブランチの目的です!

しかし、あなたの質問に答えるために:あなたはcommitブランチにいて、ワークフローの問題として、常にupデフォルトにしmergeてそれを入れることができます。それは他の機能の合計としてデフォルトのブランチを維持します。updateただし、コミットする前に機能ブランチに移動する必要があり、それは面倒になる可能性があります。

コミットするブランチを事後的に決定するためのもう1つのオプションは、rebase拡張機能を使用することです。この場合、変更をコミットしてから実行しますhg rebase -d targetBranch

ただし、標準ワークフローの一部として履歴リビジョンを使用することはお勧めしません。それは私にはにおいがします。

于 2012-07-27T16:38:10.553 に答える