2017-04-20 6 views
2

Rで書かれた大きなプロジェクトを後で再構築する必要があります。すべてがgitサーバー上に設定されています。いくつかのパッケージと開発者がいるBig Rプロジェクト:パッケージに基づいた簡単なバージョン管理のための最適なセットアップ

問題は次のとおりです。毎回パッケージを作成せずに、パッケージを頻繁に変更したり、開発者が新しいプルを行った後にパッケージを更新したりすることはできません。そのためのベストプラクティスまたは自動化はありますか?ビルドされていないパッケージやR.filesのソース()は望みませんが、できるだけ構造体のようなパッケージを貼りたいのです。私たちはWindows環境で作業します。

ありがとうございました。

+0

あなたのニーズに合っていますか? –

+0

継続的な統合を実践していますか? – Hugh

+0

@Hughまだ、しかし、私はそこにそれらを取得したい。しかし、私は大規模なRプロジェクトを開発する経験はありませんし、それとの継続的な統合を行うことは複雑に思えます。 – Jax

答えて

0

私はしばらく時間を空けて、さまざまな設定を試して、自分のニーズに合ったアレンジを思いついた。

基本的に2つのgitリポジトリで構成されています。最初のon(これをbase-repoと呼ぶ)には、後のすべてのパッケージが基づいているほとんどのスクリプトが含まれています。 2番目のレポは "パッケージレポ"と呼ばれます。 ほとんどの開発作業はベースレポで行う必要があります。 base-repoはビルドサーバーと単体テストを介してCI制御下にあります。

package-repoには、ビルドしたいパッケージごとにフォルダがあり、ベースリポジトリにgit-submoduleが含まれています。

各パッケージは現在、非常にシンプルなbashの/シェルスクリプトを経由して構築することができます(「スクリプトを構築」):

  • は安定 パッケージのビルドれているサブモジュールベースレポのコミット/タグをチェックしてください
  • チェックが特定のパッケージフォルダにパッケージするために必要である
  • コピーファイルに基づいており、
  • スクリプトは、パッケージ
  • の履歴ファイルを作成することができ、パッケージを構築するべきです
  • スクリプトは、手動またはビルドサーバーによって呼び出すことができます

この方法はpackratと組み合わせることもできます。非常にパッケージ特有の追加コードをパッケージリポジトリに追加することができ、ベースリポジトリから独立したバージョン管理下にある

このアプローチをさらに拡張して、package-repoベースレポにプッシュすることに基づいています。ビルドスクリプトがマスターをコミットとして指し示すパッケージは常に最新の状態になり、ビルドサーバーの制御下であれば、ベースリポジトリの変更によってパッケージが破損することはありません。また、base-repoから同じスクリプトを含むいくつかのパッケージを作成することも可能です。

他を見る:git: symlink/reference to a file in an external repository