私は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ファイルに追加しますか?
ありがとう!
〜/ .hgrc:
[ui]
ignore = ~/.hgignore
〜/ .hgignore:
syntax: glob
*.tex
*.R
(各プロジェクトに.hgignoreファイルを配置することもできます。上記はグローバルに実行します。hgrcで参照される.hgignorefileは任意に呼び出すことができます。プロジェクト内では、常に.hgignoreと呼ばれる必要があります)
.hgignoreファイルを作成して、常に一部のファイルを無視することができます。 this SO question を参照してください。 Mercurial wikiページのドキュメントを読むことができます。詳細については、hgignore または manページ を参照してください。
このような.hgignoreで、.sqlite
または.csv
ファイルを無視することができます。
\.sqlite$
\.csv
大きなsqliteファイルをリポジトリのすべてのインスタンスに手動でコピーする必要がない場合は、 Hg largefiles extension を使用することをお勧めします。
ファイルを個別に保存し、チェックサムの比較に基づいて、非常に大雑把な(ただしリソース効率の高い)バージョン管理を行います。その他のHgでサポートされていない拡張機能 BigFiles および Snap も利用できます。
BigFilesでは、大きなファイルの代替リポジトリを手動で指定する必要があり、Snapは一部のバージョンのhgでのみ使用できます。これは、hgバージョン2.0以降でのみ使用可能なラージファイルに当てはまります。複数の異なるバージョンを使用している場合は、 Bfiles 拡張子を使用する必要がある場合があります