2

ファイル A、B、および C を使用してプロジェクトに取り組んでいるとします。機能の追加、A および B の変更の途中で、何かをクリーニングする必要があることに気付きます。状況によっては、機能の作業を中断してクリーニングを行うのが最適です。これには、A、B、および C の変更が含まれます。

機能を使い終わったら、コードをチェックインしたいと思います。いわば、機能を追加するための変更とクリーンアップのための変更の 2 つの異なるセットがあります。それらは決して競合しません。クリーンなレポ履歴のために、これらの変更を個別にコミットすることは可能ですか?

あるいは、クリーンアップが完了したらすぐにチェックインすることに決めたが、A と B で途中まで完了したフィーチャをチェックインしたくない場合はどうすればよいでしょうか?

Mercurial や SVN でこれを行うことが可能かどうかはわかりませんが、どちらかについて学ぶことに興味があります。(TortoiseHgはどうですか?)

4

2 に答える 2

4

はい、Mercurial でこれを行うことができますhg record。拡張機能と見なされますが、通常のパッケージで配布されます。基本的に、そのコマンドを実行すると、各ファイルについて尋ねられます (ここから何かをコミットしますか?)。はいと答えると、各ハンク (行のグループ) をコミットするかどうかを尋ねられます。特定のファイルに対して実行することもできます。例えば:

hg record A B C

その場合、他のファイルへの変更について尋ねることはありません。

各ハンクのオプションは次のとおりです。

y - record this change
n - skip this change

s - skip remaining changes to this file
f - record remaining changes to this file

d - done, skip remaining changes and files
a - record all changes to all remaining files
q - quit, recording no changes

? - display help

編集: TortoiseHg にはChange Selectionと呼ばれる統合機能があり、基本的に GUI に相当しrecordます。

于 2010-07-12T02:28:50.633 に答える
1

crecord拡張機能は、コミットしたい保留中の変更を正確に選択できる優れた curses インターフェイスを提供します

于 2010-07-12T02:29:56.593 に答える