2017-06-23 3 views
2

the FreeBSD repositoryのサブセットでいくつかの作業をしたい。問題:このリポジトリは非常に大きいです。 git cloneは2 GB近くまでプルダウンします。私は自分がしたいことに対して、ほんのわずかしか必要ありません。現在、約140KBです。大きなGitプロジェクトのサブツリーに取り組む

アップストリームから変更を取り入れることができるようにしたいのですが(実際にはパッチを適用する必要はありません)、私は0%にプッシュバックする必要があります。

私は断るすべてのパスが行き止まりであるように思える:

  • 私は--depth 1上流レポのクローンを作成する場合は、私はGitHubのにそれをプッシュすることはできません。 (Ubuntu 16.04のGit 2.7.4)
  • 私が欲しくないもの(作業ディレクトリに140KBを残す)とそれからclone --single-branchを残しても、それは1.5GBを引き下げます。多分ちょうどパックがひどくて、 "間違った共有"がたくさんあるのだろうかと思ったが、私は再パックしようとした(-a -d -f --depth=250 --window=250、私が見たランダムなコマンドごとに)。もし私が再びそれを複製しても同じです。
  • 私はgit gcを試しましたが、これまでに行ったことがずっとずっと悪くなっています(6.6GB)。
  • 私はfilter-branchを手放すことができましたが、私がそれをしたら後で引っ張ることができないようです。

ここではうまくいくワークフローがありますか?つまり、アップストリームへの接続を切断するだけですか?filter-branchはすべて離れていて、上流に新しいコミットがあるのでパッチをプルするだけですか?私はFreeBSD Githubミラーを忘れて、何とかrepoを作るのにgit-svnを使うべきですか? (結局、私が望むすべてのものが1つのディレクトリに含まれません。つまり、私はfoo/barfoo/bazではなくfoo/quxをお勧めします。)

(そしてwhat'd取得し、それらのパッチを適用するための最良の方法は? )

答えて

1

私は作業ディレクトリにちょうどその140キロバイトを残す(たい)して、--single-ブランチのクローンを作成していないすべてのものをRM gitの場合であっても、それは、はいGB

ダウン1.5

を引っ張りますGitは、とにかくすべてのレポをダウンロード(フェッチ)しますが、最初のプッシュでのみ行います。
しかし、それはあなたのコミットは、範囲が限定されている場合は、プッシュバックすることは問題ありません(いくつかのファイルを変更し、そのプッシュは問題なく進めるべき)ローカルで作業ツリーを制限するために何ができるか

がありますスパースチェックアウト(最初は完全なフェッチが必要ですが、すべてをチェックアウトしません)。
git clone is not cloning recent version of a certain repository?

+0

確かに、プッシュバックはうまく動作しますが、疎なチェックアウトで作業コピーのサイズを避けることができます。しかし、私は最初にマルチGBダウンロードを避けたいと思っています。 (より具体的には:疎な*チェックアウト*私はまったく役に立たないと思う、私はブランチか、まったく興味があるサブセットしか持っていないレポフォークのいずれかを持つだろう。私がその支店にいる間、私はいつも私がそれに積極的に取り組んでいる間、私は疎でないチェックアウトをすることができます。) – EvanED

+0

@EvanEDはい、それは私の主張です。マルチGB *を一度*サポートすることができれば(最初のフェッチ)、理想的です。部分的なフェッチ(浅いクローンの横にある)を行う方法はわかりません。私はまだsparse-checkoutを使用しています(例:https://stackoverflow.com/a/2467629/6309)。 – VonC

+0

@EvanED「興味のあるサブセットのみを持つブランチまたはリポフォークのいずれかを持つつもりですin at al ":次に、そのレポをトポレポ(別のモジュールのサブモジュール)に分割する必要があります。https://stackoverflow.com/a/16728814/6309 – VonC

1

の疎なクローンの例が表示されます。gitの将来のバージョンでサポートされるという兆候があります。パッチはすでに受け入れられています。 OPT_PARSE_LIST_OBJECTS_FILTERまたはadd object filtering for partial fetch

関連する問題