| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
|
|
|
| |
Includes changing to new exceptions library, and some whitespace fixes.
|
|
|
|
| |
but some branches no longer accessible. Fix this, including support for fixing up repositories that were incompletely repaired before.
|
| |
|
|
|
|
|
| |
A repo with a lot of objects will now stream them through, rather than
buffering a list of them all in memory.
|
| |
|
|
|
|
| |
directory to be created instead of .git/refs
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Avoid deleting them if that's the only problem.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Featuring a better way of really finding and cleaning all corrupt objects.
And a lot less repeated fscking!
Passed 1800 tests so far.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
git cat-file -p cannot be relied on to tell when an object is corrupt.
If it fails, the fsck may not find all bad objects -- but as long as fsck
exits nonzero, it will return a failing fsckresult, and so recovery will
run.
In recovery, the objects get unpacked. This allows the improved findMissing
to find all corrupt loose objects when fsck is run again as part of the
recovery.
Removed the repack / prune-packed workaround that I added earlier to find
corrupt loose objects that fsck wasn't finding. That was slow, and we want
to keep all loose objects, so that findMissing will work. And, it's
unncessary, now that findMissing is fixed.
Also, fixed some places where unreadable files would crash recovery.
|
|
|
|
| |
This code needs to be refactored..
|
|
|
|
|
|
|
|
| |
In this case, fsck failed once for some reason that was corrected by
fetching.
But then it failed again due to an object with a bad type, which remained
in tree after fetching from origin. So, let cleanCorruptObjects run again
after fetching.
|
| |
|
|
|
|
|
|
|
| |
unpack-objects does nothing unless the pack is moved out of the packs
directory.
Also, unpack any packs recevied when fetching.
|
|
|
|
|
|
| |
It turned out to be broken, and led to failures.
6d67245728bbbc07ad1eeaf5b3c49f64c6bbcd11 was a better fix for the problem
that code tried to fix.
|
|
|
|
| |
Must contains "ref: refs/" or git rejects it
|
| |
|
| |
|
|
|
|
|
|
|
| |
Sometimes git fsck outputs no shas even with --verbose, but fails, due to
badly corrupt objects. The best thing to do in this situation is to try to
pull and rsync from remotes, hoping that the bad objects will be
overwritten.
|
| |
|
|
|
|
| |
treat the repository as a git repo.
|
|
|
|
|
| |
In this case, the index problem prevented fsck from finding the other
problems.
|
|
|
|
|
| |
I suspect this might sometimes corrupt the **source** repo, so use with
caution!
|
| |
|
|
|