Thread (7 messages) flat view 7 messages, 2 authors, 2016-06-15

Re: Large pack causes git clone failures ... what to do?

From: Shawn O. Pearce <hidden>
Date: 2016-06-15 22:49:25

Geoff Russell [off-list ref] wrote:
I did a "git gc" on a repository and ended up with a 4GB pack ... now I
can't clone the repository and get the following:

remote: fatal: Out of memory? mmap failed: Cannot allocate memory
remote: aborting due to possible repository corruption on the remote side.
fatal: early EOF
error: git upload-pack: git-pack-objects died with error.
fatal: git upload-pack: aborting due to possible repository corruption
on the remote side.
fatal: index-pack failed

How do I deal with this?   I'm running git version 1.6.2.3
Are you on a 32 bit Linux system?  Or 64 bit?  Git should be auto
selecting a unit that would allow it to mmap slices of that 4GB pack.
I've looked at "git repack --max-pack-size", but which that
created new packs it didn't delete the old monster.
You really needed to run:

  git repack --max-pack-size=.. -a -d

The -d flag tells it to remove the old packs once the new packs
are ready, and the -a flag tells it to reconsider every object
in the repository, rather than just those that are loose.

But if you can't clone it, you probably can't repack it.  Clone works
by creating a pack file on the server, just like repack does.
Except it sends the pack out to the network stream instead of to
local disk.

-- 
Shawn.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help