-2

私はここで何かを理解していませんか?私はこれらのファイルをコミットしていません。それらは変更セットのどこにも存在してはなりません。私が行った作業を保存するためのMercurialの努力に感謝しますが、Mercurialの側で賢明な設計の選択が行われない理由を保持したいと思うかもしれません。

a)他のファイルに変更をコミットする前にプル/更新することを忘れない場合は、一般的なプロセスに従ってそれらを無視してください。

また

b)上書きするかどうかをユーザーに尋ねます。上書きしない場合は、コミットされていない変更が含まれているファイルを無視するようにMercurialに指示する適切な引数とマージする方法を説明します。

どうやって到達したのですか:

c)コミット前にプル/更新を忘れることがあり、ほとんどの人が(残念ながら)大量のファイルを持っていることを考慮に入れて、人気のあるバージョン管理システムが完全に機能しないことを回避するために、ユーザーにGoogleを強制するようなハックのような解決策を行うことを拒否しますコミットしたくない構成ファイルの数。

ここに来ていないのは何ですか?なんでこんな感じなの?そして、それには理由があるのに、そもそもこれらのファイルを立ち入り禁止として確立する「当たり前の」方法がないのはなぜですか?私はここで半ば怒りを覚えていますが、私は合法的に理解しようとしています。まだ沈んでいない、そのような厄介さを必要とするここでの勝利は何ですか?

4

1 に答える 1

2

Mercurialをどのように使用しているかを詳しく知ることなく、何が起こっているかを推測することしかできません。あなたの主な質問は、なぜMercurialにコミットされていない変更を無視させる簡単な方法がないのか、そして次に、マージの前に変更をコミットしなければならないのかということです。

最初に2番目の質問に答えて、2つのチェンジセット間でマージを実行すると、それらのチェンジセットが新しいマージされたチェンジセットの親になります。このため、作業ディレクトリに既存の(コミットされていない)変更がないようにする必要があります(「クリーン」である必要があります)。別のチェンジセットを「ダーティ」な作業ディレクトリにマージしようとした後、コミットするのではなくそのマージを元に戻すことにした場合、Mercurialは作業ディレクトリをどの状態に戻すかを知りません。変更が加えられたファイルのマージを無視するようにMercurialに指示できないのはなぜですか?Mercurialはファイルごとに機能しないため、「チェンジセット」ベースで機能します。この場合、単一のチェンジセットがその時点で追跡されているすべてのファイルの状態を保持します(Subversionのようなものとは異なります。

マージ時にローカルの変更を失う予定の場合は、最初にローカルの変更を削除する必要があります。これは、Mercurialのヘルプに従って、クリーンな更新を実行することで実行できます。hg update --clean .

最初の質問として、リポジトリに保存したくないものを無視する非常に簡単な方法があります。それは、ファイルを使用して.hgignoreそれらのファイルを指定することです。あなたは、ほとんどの人が「コミットしたくない設定ファイルをたくさん持っている」と言っています。これはまさに.hgignoreファイルの目的です。Mercurialはこれらのファイルを無視し、(明示的に追加しない限り)コミットされることはありません。したがって、それらを変更した場合でも、Mercurialによって無視され、すべてが見事に機能します。これに対する注意点は、ファイルがリポジトリによってすでに追跡されている場合、それを無視するには遅すぎるということです。

行った変更をコミットする前に本当にマージする必要があると判断した場合(MQおよびShelve拡張機能が頭に浮かぶ)、解決策はありますが、それでも、行った変更にマージするという潜在的な問題があります。新しい作業ディレクトリに移動します。つまり、1つだけではなく、2つのマージを実行する必要があります。

あなたの最後の質問は「私がここに来ていないのは何ですか?」です。厳しく聞こえたくはありませんが、あなたの質問は、Mercurialをどのように構成して使用するかを「理解していない」ことを示唆しています。などの機能を読むのに時間を費やす必要があります.hgignore。おそらく、他の人がMercurialをどのように使用しているか、およびそのワークフローを(ここでもSOで)見て回る必要があります。決定的なガイドは見るのに良い場所であり、マージ(Ch2)、ファイル無視(Ch7)などのことをカバーしています。ベテランのMercurialユーザーにとっても良い読み物です。

それがお役に立てば幸いです。

于 2013-02-05T10:33:40.197 に答える