0

以前は、使用hg forget <files>するようにファイル システムから削除されることなく、一部のファイルを追跡解除してhg rm <files>いました。変更をコミットし、実行すると、hg statusこれらのファイルが? <files>期待どおりに追跡されていないものとしてリストされました。次に、変更セットをリモート リポジトリにプッシュし、他の誰かがプルして更新し、Mercurial がファイル システムからこれらのファイルを削除しました。

Mercurial がこれらのファイルをhg forget、変更元のコピーと同じように、他の誰かのリポジトリのコピーで追跡されていないと認識しないのはなぜですか?

ファイルを誰かのファイル システムから削除せずに追跡を解除する別の方法はありますか?

4

1 に答える 1

0

ここでは、Git と Mercurial の両方に同じ問題があります。ファイルFがあるコミットO (古いもの) があります。Oから新しいコミットNに更新すると、「ファイルFはありません」と表示されます。

バージョン管理システムは何をすべきですか? それは、なぜFが削除されたかによりますね。Fが以前使用されていたために削除されたが、現在は役に立たない混乱になっている場合は、削除する必要があります。

では、なぜ削除はno-longer-used正しいのに、維持accidentally-committedも正しいのでしょうか? また、VCS は、コミットOには と の両方がno-longer-used あり accidentally-committed、コミットNにはどちらのファイルも含まれていないことしかわからないことを考えると、これら 2 つのどちらが意図されているかをどのように認識すればよいでしょうか?

(私の知る限り、Git も Mercurial もこれに対する適切な答えを持っていません。)

于 2016-08-20T02:08:39.087 に答える