1

概要

私は、他の場所から供給された多くの構成のアーカイブとして機能する Git リポジトリを持っています。

  • 200ディレクトリ
  • ディレクトリあたり 100 ファイル
  • ファイルごとに 10K のプレーン テキスト
  • 1 日あたり最大 1000 件のコミット、通常は 10 行未満の編集
  • 1支店
  • 1 人のユーザーがすべてのコミットを処理します
  • 読み取り専用ベースの他のすべてのビューリポジトリ

誰かがこのレポを小さなレポに分割しようと提案する前に、それは顧客のためのオプションではありません。

レポには最大 2 年分のデータが含まれていますが、お客様は過去 90 日間しか必要としません。

プロセス

ここで説明する方法を使用して、90 日前にルートをコミットに正常に移植しました。

  • git checkout -b newroot xyz_90_days_old_rev
  • git リセット abc_original_root_rev
  • git add .
  • git commit --amend -m '履歴を消去'
  • git チェックアウト マスター
  • git rebase --onto newroot xyz_90_days_old_rev

問題は、後で git-filter-branch クリーンアップを使用することです。24 時間以上かかるため、ユーザーにとって許容できないダウンタイムです。

代わりに bfg-repo-cleaner を試してみたいのですが、よくわかりません:

  • このユースケースをサポートしていますか?
  • 裸でないレポで動作しますか?

PSgit checkout --orphan :もう少しエレガントだったことに気づきましたBFGが、レポがむき出しであるcheckout必要があるのに、むき出しではない必要があるという問題は実際には変わりません

4

1 に答える 1