TLDR :
さまざまな進行中のバージョンの多くのブランチを持つアプリケーション用の単一の git リポジトリがあります。このレポの複数のコピーが必要です。これは、異なるブランチまたはコミットでチェックアウトできますが (用語が間違っていますか?)、冗長なファイルの可能性がある複数のコピーを実際に保持する必要はありません。
ロングバージョン:
私はパフォーマンスを改善しようとしているチームと一緒にアプリケーションに取り組んでいます。これは非常に経験的なプロセスであり、さまざまなアプローチがそれぞれ独自のブランチに実装されており、うまく機能するものを選択するために多くのテストが行われます。
私は独自のブランチでいくつかのアプローチを開発しており、アプリケーションの複数のバージョンのパフォーマンスと正確性のテストも行っています。複数のビルドを維持するために、各バージョンのコピーを用意し、そのバージョンを使用してビルドします。このバージョンは、現在の環境で使用するバージョンを選択できるスクリプトを使用して、バージョン固有の場所にインストールされます。
正確性テスト システムでは、同じソース ツリーでの同時テストは許可されません。そのため、バージョン自体に複数の構成がある場合、それらを同時にテストすることはできません。このテストを完了するのに 1 時間かかる場合があるため、各構成のソース ツリーを簡略化し、上記のようにビルドして別の場所にインストールします。これにより、複数のテストを同時に実行できます。
これは私の理想的な設定ではありませんが、私の問題は、これがすべて大学の HPC クラスターで行われていることです。このクラスターにはかなり厳しいディスク クォータが設定されています。ユーザーの /home ディレクトリには 15Gb のデータしか含めることができませんが、ファイルの数に制限はありません。ユーザーの /extra ディレクトリ (システム固有のストレージ システム) は 200Gb のデータを持つことができますが、ディスク ストレージのギガバイト (この場合は 200*600、つまり 120000) あたり 600 個のファイル (ディレクトリを含む) しか持つことができません。残念ながら、私の設定では /home のディスク クォータと /extra のファイル カウント クォータを超えています。
友人が、必要に応じてディレクトリを tar/untar するという彼のプロセスを提案しました。この追加のプロセスは、すでに退屈なセットアップのもう 1 つの問題点のように思えます。
中心的な問題は、git リポジトリがやや大きいことです: ディスク上で ~650Mb、+7500 ファイルです。私は、これらのリポジトリを約 17 個、さまざまなライブラリと一緒に持っており、多くのパフォーマンス テスト用のもの (かなり重量があります) を持っているため、クォータの制限を超えてしまいます。もし魔人がいたら、物理的に一度だけ存在した魔法の git リポジトリをくれるように頼むでしょう。各「コピー」は、他のブランチをいじることなく編集およびコミットできるブランチを持つ git リポジトリの通常のコピーのように見え、そのように動作します。しかし実際には、そのコピーはシステムによって維持される「ビュー」でした。
質問:
私の魔法の願いのようなものはありますか?
時間とリソースが限られている人々は、この問題を効果的に管理するにはどうすればよいでしょうか? (このすべての作業は、ビルド ファーム/CI テストのようなものです。)
主な答えは「いくつかのリポジトリを削除するだけ」になることはわかっていますが、私は実際にこれらのかなりの数を週のさまざまな時間に使用しており、「ワックア-」をプレイする必要があります。レポ」は苦痛になるでしょう。