3

新しいアプリケーションに CakePHP を使用しており、ソース管理ツールとして Mercurial を使用しています。(Mercurial は.hgignore、(たとえば) CVS が.cvsignore任意のディレクトリで使用するのとは異なり、ルート ディレクトリで 1 つのファイルを使用します。)

ディレクトリのコンテンツをソース管理から除外したいのですが(それらは常に変更され、app/tmp/再生成できるため)、 に追加することapp/tmp/*はできません。、、...) が によって作成された新しいクローンから欠落し、エラーが発生します。.hgignoretmpcachelogssessionstestscache/modelscache/persistenthg clone

現在、私は私の中に持っていますhgignore

app/tmp/logs/*.log
app/tmp/cache/persistent/cake_*
app/tmp/cache/models/cake_*

すべてのプロジェクトで使用できる「標準」のものがあるとよいでしょう。誰かが完全な解決策を提案できますか?

4

3 に答える 3

4

あなたは付け加えられます

syntax: glob
app/tmp/**

あなたのファイルに、そしてMercurialはその時点からMercurialによって追跡されたファイルを除いて下のすべて.hgignoreのファイルを無視します。ファイル名パターンの詳細については、を参照してください。app/tmp/hg help patterns

だからあなたがするなら

% touch app/tmp/cache/.empty
% touch app/tmp/logs/.empty
% hg add app/tmp/cache/.empty
% hg add app/tmp/logs/.empty

クローンを作成すると、app/tmp/cacheandapp/tmp/logsディレクトリ作成され、それらのディレクトリ内の新しいファイルは無視されます。それがあなたが望むものだと思いますか?

これは、デフォルトでほとんどのファイルを無視し、明示的に追加されたファイルのみを追跡するため、のようなものを追跡する場合にも役立ち$HOMEます。

于 2009-05-22T08:55:34.090 に答える
0

私が質問を正しく理解していれば、tmp 内のファイルを無視したいのですが、tmp 内の特定のディレクトリ内のファイルは無視したくありません。それが正しければ、これを使ってできると思います:

syntax: regexp
^tmp/(?!(cache|logs|sessions|test))

つまり、次の部分がキャッシュ、ログ、セッション、テストでない限り、tmp で始まるものはすべて無視します。これらのファイルの場合:

.
`-- tmp
    |-- cache
    |   `-- afile
    `-- tmpfile

hg stat結果は次のとおりです。

$ hg stat
? .hgignore
? tmp/cache/afile

ただし、Cake はおそらく、これらのファイルが tmp ディレクトリにあることに基づいて、これらのファイルをソース管理に入れないように指示していることに注意してください。あなたのビルドシステムが作成するはずのものではないのですか?特にセッションはかなり儚く聞こえます。

于 2009-04-11T18:29:52.560 に答える
0

私自身のチェックアウト (SVN から) では、サイトが展開されたときに、./tmp/ ディレクトリに特定の権限が必要でした。

バージョン管理から完全に削除し、デプロイ スクリプトで必要に応じてディレクトリを作成しました。

于 2009-06-02T17:13:40.473 に答える