2016-03-23 17 views
11

私はしばらくgitを使っていましたが、最近はpackratを使い始めました。私は自分のリポジトリが自己完結型であることを望みますが、同時にCRANパッケージを利用できるようにすることは望ましくありません。 Rがpackratのプロジェクトで開かれたら、プロジェクトライブラリからパッケージを使用しようとします。それらが利用できない場合、プロジェクトライブラリにsrcからインストールしようとします。利用できない場合は、そのコンピュータにインストールされているライブラリが表示されます。コンピュータでライブラリが利用できない場合。次はCRANを見ますか?gitとpackratでRを使う

git repoに最低限必要なファイルは何ですか(例:packrat.lock)?

+0

メールリストのこのQへの回答:https://groups.google.com/d/msg/packrat-discuss/BDPQoHQOqcw/WASTdOEJZrYJ – Ben

答えて

24

外部のCRANライクなリポジトリを、プロジェクトの利用可能なパッケージとそのバージョンのソースtarballで設定することができます。しかし、デフォルトの振る舞いは、あなたの質問で特定したように、CRANを次に見ていくことです。 packrat.lockファイルを調べると、packratで使用するパッケージごとに、source: CRANというオプションがあります(CRANからファイルをダウンロードした場合)。

ローカルに保存されたパッケージソースファイルを持っている場合は、次のように述べたパッケージの変更のためのロックアウトの内容:

Package: FooPackage Source: source Version: 0.4-4 Hash: 44foo4036fb68e9foo9027048d28 SourcePath: /Users/MyName/Documents/code/myrepo/RNetica

は、私はあなたの最後の質問に少しは不明だ:What files should I include in my git repo as a minimum (e.g., packrat.lock)?しかし、私a)これをa)packratの実行に必要なファイルの組み合わせと、b)それらのファイルのうちのどれをgit-repoにコミットするかを選択します。最初の質問に答えるために、私はpackatを既存のRプロジェクトに初期化する方法を説明します。

あなたがpackrat::init()を実行

、二つの重要な事柄は、(特に)が起こる: PackageName/packrat/:などのソースのtarballを含む 1.すべてのpackrat足場は、下に作成されます。 2. packrat/lib*/が.gitignoreファイルに追加されます。

したがって、packrat/lib*/以下のものはgit-repoにコミットする必要はありません。これは、次の3つのファイルがコミットされるように葉:

  1. packrat/init.R
  2. packrat/packrat.lock
  3. packrat/packrat.opts

packrat.lockは、バージョン管理システムを通じて他の人と協力のために必要とされています。プライベートライブラリを同期させるのに役立ちます。 packrat.optsでは、packratに異なるプロジェクト固有のオプションを指定できます。ファイルはget_optsset_optsを使用して自動的に生成されます。このファイルをgit-repoにコミットすると、指定したオプションがすべての共同編集者に対して確実に維持されます。レポにコミットされる最後のファイルは.Rprofileです。このファイルは、Rにプライベートパッケージライブラリを使用するように指示します(Rがプロジェクトディレクトリから開始された場合)。

必要に応じて、ソースタールボールをリポジトリにコミットするかどうかを選択できます。あなたのgit-repoでそれらを利用できないようにするには、単に.gitignoreにpackrat/src/を追加します。しかし、git-repoにアクセスする人はパッケージソースコードにアクセスすることができず、ファイルはCRANから、またはソース行がpackrat.lockファイル内でどこからでもダウンロードされることを意味します。

あなたの質問から、あなたのレポにpackrat/src/フォルダの内容をコミットするように聞こえるかもしれません。

関連する問題