7

Mercurialを使い始めたばかりです。うわー、いいアプリケーションだ。コード ディレクトリからデータベース ファイルを移動しましたが、ファイルについて疑問に思っていました.pyc。最初のコミットにはそれらを含めませんでした。ファイルに関するドキュメントに.hgignoreは、除外する例が含まれている*.pycため、正しい軌道に乗っていると思います。

古いファイルセットにロールバックするとどうなるか疑問に思っています。その場合、すべての.pycファイルを削除する必要がありますか? .pyc古いファイルが使用されていることを発見したある紳士を含む、この問題に関するいくつかの質問が Stack Overflow で見られました。これを回避する標準的な方法は何ですか?

4

4 に答える 4

5

*.pyc対応*.pyするコンテンツが変更された場合に再生成されるため、通常は安全です。

ファイルを削除し、その*.pyファイルから別のファイルにインポートしている場合は問題があります。この場合、*.pycファイルが存在する場合は、そのファイルからインポートします。しかし、これはコードのバグであり、Mercurial ワークフローとは関係ありません。

結論: 有名な Python ライブラリはすべてファイルを無視して*.pycいます。

于 2012-06-06T19:31:48.990 に答える
3

より一般的な解決策として、どのファイルを無視するかについてMercurial 自体に問い合わせます。

$ hg status --ignored

出力を安全にxargs使用できるようにすることができます。

$ hg status --ignored --no-status -0 | xargs -0 -delete

(-0名前にスペースが含まれるファイルを処理するには、 が重要です。) これを更新後のフックとしてインストールできます。

[hooks]
post-update = hg status --ignored --no-status -0 | xargs -0 -delete

最後に、Mercurial には同様のことを行うパージ拡張機能が付属しています。

$ hg purge --all

追跡されていないファイルと無視されたファイルの両方を削除します。追跡されていないファイルが失われても構わない場合は、そのコマンドがおそらく最も簡単です。特に、xargs入手が難しい Windows でも機能するためです。

于 2012-06-07T21:50:02.027 に答える