maks / MGit

A Git client for Android.
https://manichord.com/projects/mgit.html
GNU General Public License v3.0
1.18k stars 164 forks source link

Inflater has been closed #697

Closed af4jm closed 1 year ago

af4jm commented 1 year ago

Describe the bug git pull errors...

Pull failed

Error occurred
Inflater has been closed

Tried to Fetch & hard reset, but the reset didn't actually do anything, the list of commits is still missing the initial population of the repo & the status window shows hundreds of new files (that were downloaded as part of the next commit that triggered the error)

Smartphone (please complete the following information):

Additional context happens repeatedly on both devices, same error each time... I'm assuming it's a timeout, although it makes no sense for git to timeout

I can't find any work-around that involves using mgit... I haven't tried blowing away the repo & reinitializing it in chunks, but that seems like something that should be unnecessary

maks commented 1 year ago

If the repository is publicly available providing a link to it would be helpful. If it's not, then could you provide its size in terms of the size of a fully cloned copy of the repo. From the initial information you have provided it sounds like a duplicate of #54

af4jm commented 1 year ago

it seems to be a dupe, although in theory the streaming that came with dropping support for old Android versions should've fixed that... the total size on disk is ~0.5GB, a bit of a monster, so I guess I can try to blow away the repo & recreate it with the commits in 50MB (or smaller) chunks, then I just need to remember that if I dump a dozen PowerPoint files in there (e.g. class slides that I haven't converted to Markdown yet) to not put them all in the same commit

maks commented 1 year ago

Unfortunately I haven't been able to move to newer versions of JGit so streaming is not available in the version of JGit used by MGit at the moment.

Also please be aware that its not as simple as large commits. Git will optimise stored history by internally compressing commit deltas in packfiles (eg see this explanation) so thats another (more common) way that git can run into memory limits when streaming is unavailable.

maks commented 1 year ago

duplicate of #54

af4jm commented 1 year ago

yeah, making a bunch of smaller commits didn't help, and I'm not going to get pedantic about it, because it would've been fragile anyway... guess I'm stuck paying for Obsidian Sync for a bit :( (sadly none of the file shares (Sync, Dropbox, etc.) have the ability on mobile to automatically pick up changes & push them back to the cloud, otherwise this would be a non issue)