Re: Partial fetch?
- From
Jeff King <peff@peff.net>
- Date
- Nov 29, 2016, 21:55 UTC
- Message-ID
- <20161129215538.vhgmxpq4rasri4vm@sigill.intra.peff.net>
- In-Reply-To
- <CAOE4rSzTq6DVR2ch+as9Pbo35NjKP5b1+Ub1XZWEnwJTahqEfg@mail.gmail.com>
On Mon, Nov 28, 2016 at 10:34:51PM +0200, Dāvis Mosāns wrote:
Show 9 quoted lines
> I'm trying to fetch a remote repository over https but sadly it > timeouts too soon. > > $ git fetch -v upstream > POST git-upload-pack (gzip 1148 to 641 bytes) > POST git-upload-pack (gzip 1148 to 644 bytes) > [...] > Is there some way to fetch partially by smaller chunks and then repeat > that again till everything is fetched?
Not an easy one. The series of POSTs is an indication that the fetch negotiation is going on for a long time, which probably means you have a lot of commits in your local repository that aren't in the remote, or vice versa.
Here are the things I might try:
- git v2.10.2 has commit 06b3d386e (fetch-pack: do not reset in_vain
on non-novel acks, 2016-09-23), which may help with this. - HTTP, because the server is stateless, performs less well than other
protocols. If you can fetch over ssh or git://, it will probably
just work. - If this is a one-time thing to fetch unrelated history from another
repository, you can "clone --mirror" instead of fetching,
then fetch from the mirror locally. Subsequent fetches should be
fast.If you do try v2.10.2 and it improves things, I'd be interested to hear about it as a data point.
-Peff