web-dev-qa-db-ja.com

Mercurialでバージョン管理を必要としないファイルを処理する方法

私はMercurialを初めて使用し、ほとんどの場合、.csvファイルや.sqliteファイルを使用してRでLaTeXレポートと統計計算を行います。 LaTeXに関して、私が本当に気にかけているのは.texファイルだけです。 Rに関しては、.csvファイルまたは.sqliteファイルは静的であるため、バージョン管理は必要ありません。

.csvファイルや.sqliteファイルを含むリポジトリに対して「hgadd」を実行すると、次のような警告が表示されます。

rev2.sqlite: up to 3070 MB of RAM may be required to manage this file
(use 'hg revert rev2.sqlite' to cancel pending addition)

だから私は元に戻し、その後hg add -X *.sqliteのような追加を使用します。私は本当に2つの質問があると思います:

(1)これらの警告を無視する必要がありますか?これらの大きなファイルは静的であるため、diffファイルは常に空であり、リソースの浪費を心配しないことを知って、リポジトリに追加できますか?

(2)これらのファイルをリポジトリから除外し続ける必要がある場合、このオプションを修正できる場所はありますか?つまり、「hg add」コマンドに-I *.tex -I *.Rのようなオプションを常に追加するものを.hgrcファイルに追加しますか?

ありがとう!

3
Richard Herron

〜/ .hgrc:

[ui]
ignore = ~/.hgignore

〜/ .hgignore:

syntax: glob
*.tex
*.R

(各プロジェクトに.hgignoreファイルを配置することもできます。上記はグローバルに実行します。hgrcで参照される.hgignorefileは任意に呼び出すことができます。プロジェクト内では、常に.hgignoreと呼ばれる必要があります)

6
Wooble

.hgignoreファイルを作成して、常に一部のファイルを無視することができます。 this SO question を参照してください。 Mercurial wikiページのドキュメントを読むことができます。詳細については、hgignore または manページ を参照してください。

このような.hgignoreで、.sqliteまたは.csvファイルを無視することができます。

\.sqlite$
\.csv
3
Mad Scientist

大きなsqliteファイルをリポジトリのすべてのインスタンスに手動でコピーする必要がない場合は、 Hg largefiles extension を使用することをお勧めします。

ファイルを個別に保存し、チェックサムの比較に基づいて、非常に大雑把な(ただしリソース効率の高い)バージョン管理を行います。その他のHgでサポートされていない拡張機能 BigFiles および Snap も利用できます。

BigFilesでは、大きなファイルの代替リポジトリを手動で指定する必要があり、Snapは一部のバージョンのhgでのみ使用できます。これは、hgバージョン2.0以降でのみ使用可能なラージファイルに当てはまります。複数の異なるバージョンを使用している場合は、 Bfiles 拡張子を使用する必要がある場合があります

1
Benoit Meister