2016-11-13 32 views
4

TFSVCからgitに移行しようとしています。現在のリポジトリは5年以上経過しており、78000件のコミットを含んでいます。これまでのところ私は巨大なクローン(〜10GB)を手に入れることができました。このリポジトリは、新しいgitリポジトリのベースとして、古いソースのリサーチのための読み取り専用のコピーとして保管されます。TFSVCからGITへの移行 - 部分履歴付きリポジトリ?

サイズのため、私たちはBFGでそのレポをきれいにして~1GBにまで落としますが、まだ大きすぎます。 現在、リリースブランチを使用しており、devブランクとリリースブランチの最後のカップルを使用して、新しいシステムに移行する必要があります。古いブランチとそのコミットは10GBのリポジトリで調べることができます。

日付スタンプで新しいリポジトリのコミット(別名履歴)を切断することはできますか?私たちはコミットの最後の6ヶ月と最新のリリースブランチだけを大雑把に保存したいと考えています。

基本的に、それは本当に栽培されてから数年後にあなたのgit repoを管理していますか?何年にもわたって、私は昨年だけを維持したいと言います。どのようにこれを達成するのですか?

私はすでに浅いクローンを試みましたが、それはブランチを保持しません。

+1

バイナリファイルが含まれていますか? 1Gbは本当に巨大です(ソースだけではありません) – Ivan

+0

はい、いくつかのバイナリが含まれています。それらの多くはクローニング後に削除することができます。そこに私も小さなコミットの履歴が必要BFGとgitのフィルタブランチは永遠にかかるでしょう –

答えて

0

私は "Is it possible to do a shallow git clone based on datetime?" で述べたように、それはGitの2.11(which will be released soon: 22 Nov. 2016、および用there are previews already

git clone --shallow-since=<date> 

で可能である(git clone man page、およびits testを参照してください。commit 994c2aaで実装機能)

について"git shallow clone (clone --depth) misses remote branches"を参照してください。しかし、リモートブランチがより前にの要求された日付から開始された場合、そのブランチはシャロークローンになりません。


は、基本的には、質問にダウンしています:それは本当に成長させたとき、どのようにあなたは何年か後にgitのレポをhousekeepのですか?

keep an bundle(アーカイブ用)fetch --depthブランチ私は新しい浅いクローンのレポにしたいです。

+0

私はそれをやった。私が使っている日付によっては、リポジトリに多かれ少なかれオブジェクトがあることがわかります。しかし、私はまだ全体の歴史を見る。 どのようにしてコミットもカットできますか? –

+0

@MichaelWagnerあなたはそれをしましたか?これはまだリリースされていないGit 2.11でのみ利用可能です。私が言及したGitプレビューを使用しましたか?あなたはWindowsにいますか? – VonC

+0

はい、プレビュー版をダウンロードして使用しました –

関連する問題