16

画像を分析するプロジェクトがあります。このプロジェクトのテストデータ-約15GBの画像。質問:複数のバージョンを保存する必要があり、開発者の大部分がこのデータを必要としていることを考えると、そのようなテストデータをどこに保存するのですか?

コードと同じリポジトリにありますか?外部参照のある別のリポジトリにありますか?

4

4 に答える 4

11

これだけ多くのテストデータをリポジトリに保持するのは悪い考えであるという他の回答に同意します。ただし、gitリポジトリの外部から大きなデータを便利に参照(およびダウンロード)できるシステムがいくつかあります。

私自身も深刻な目的で使用したことはないのではないかと思いますが、それらはあなたが望むものに対するもっともらしい解決策のように聞こえます。

于 2012-04-23T11:41:43.167 に答える
3

それらを別の参照に保存し、それらの種類のファイルにより適合させる必要があります。

ここで提案されているように、 Nexusのようなアーティファクトリポジトリを使用します。 Nexusから適切なバージョンを取得するために必要なスクリプトをDVCSリポジトリに追加します。

このようにして、ソースのクローンをすばやく簡単に作成し、必要に応じて2番目の参照からバイナリをダウンロードします。

于 2012-04-23T09:07:55.890 に答える
3

これらのイメージが開発者またはテストを実行したい人々によってのみ必要とされる場合、それらはかなり大きいように見えるので、私はおそらくそれらをサブモジュールに入れるでしょう...

于 2012-04-23T08:31:39.797 に答える
2

多くのオプションがありますが、ソリューションをgitリポジトリに適切に統合するように注意する必要があります。

Gitはリビジョン管理システムであり、より正確には、プロジェクトのスナップショットのリストを保存します。各スナップショットは、特定の時点でのプロジェクトを表します。

どのソリューションを選択しても、プロジェクトは、プロジェクト履歴の任意のスナップショットに存在していたテストデータを抽出できるはずです。

たとえば、各画像が固定URLに永続的に存在する場合、gitプロジェクトはすべてのURLを含むテキストファイルを保存するだけです。実行時に、スクリプトに各画像をフェッチさせます。プロジェクトが進化し、画像がテストセットに追加または削除されても、既存のURLスキームを変更しないでください。ポインタファイルを更新してコミットします。

もう1つの良いアイデアは、各URLで画像のmd5またはsha1ハッシュを記録することです。ダウンロードスクリプトは、実行時にチェックするために比較を行う必要があります。これにより、不整合があればアラートを受け取ることができます。

于 2012-04-23T09:22:54.167 に答える