summaryrefslogtreecommitdiff
path: root/Git/Repair.hs
Commit message (Collapse)AuthorAge
* merge from git-annexJoey Hess2015-12-15
|
* Merge from git-annex.Joey Hess2015-04-29
|
* Merge from git-annex.Joey Hess2015-01-06
|
* Merge from git-annex.Joey Hess2014-10-12
| | | | Includes changing to new exceptions library, and some whitespace fixes.
* Removing bad objects could leave fsck finding no more unreachable objects, ↵Joey Hess2014-07-21
| | | | but some branches no longer accessible. Fix this, including support for fixing up repositories that were incompletely repaired before.
* merge from git-annexJoey Hess2014-03-12
|
* better streaming when cleaning up corrupt objectsJoey Hess2014-03-10
| | | | | A repo with a lot of objects will now stream them through, rather than buffering a list of them all in memory.
* merge from git-annexJoey Hess2014-02-24
|
* repair: Fix bug in packed refs file exploding code that caused a .gitrefs ↵Joey Hess2014-01-15
| | | | directory to be created instead of .git/refs
* merge from git-annexJoey Hess2013-12-10
|
* merge from git-annexJoey Hess2013-12-10
|
* merge from git-annexJoey Hess2013-11-30
|
* better data typeJoey Hess2013-11-30
|
* try turning on write bit on loose objectsJoey Hess2013-11-21
| | | | Avoid deleting them if that's the only problem.
* make sure index file is writable in pre-repairJoey Hess2013-11-21
|
* merge from git-annexJoey Hess2013-11-21
|
* new cleanCorruptObjectsJoey Hess2013-11-21
| | | | | | | Featuring a better way of really finding and cleaning all corrupt objects. And a lot less repeated fscking! Passed 1800 tests so far.
* formatJoey Hess2013-11-21
|
* deal with illegal refs in packed-refs fileJoey Hess2013-11-21
|
* minor optJoey Hess2013-11-21
|
* remove warningJoey Hess2013-11-21
|
* improve findMissingJoey Hess2013-11-21
| | | | | | | | | | | | | | | | | | | 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.
* missed checking the index in this caseJoey Hess2013-11-20
| | | | This code needs to be refactored..
* fix another failureJoey Hess2013-11-20
| | | | | | | | 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.
* more fixesJoey Hess2013-11-20
|
* fix pack explodingJoey Hess2013-11-20
| | | | | | | unpack-objects does nothing unless the pack is moved out of the packs directory. Also, unpack any packs recevied when fetching.
* remove fsck tryharder codeJoey Hess2013-11-20
| | | | | | It turned out to be broken, and led to failures. 6d67245728bbbc07ad1eeaf5b3c49f64c6bbcd11 was a better fix for the problem that code tried to fix.
* tighten up invalid HEAD detectionJoey Hess2013-11-20
| | | | Must contains "ref: refs/" or git rejects it
* deal with corrupted index againJoey Hess2013-11-20
|
* reorgJoey Hess2013-11-20
|
* try to recover even if git fsck cannot be coaxed to tell us any bad objectsJoey Hess2013-11-20
| | | | | | | 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.
* avoid crash on bad file encodingJoey Hess2013-11-20
|
* Write a dummy .git/HEAD if the file is missing, as git otherwise will not ↵Joey Hess2013-11-20
| | | | treat the repository as a git repo.
* fix repair failure that occurred when index was corrupted, and other objects tooJoey Hess2013-11-19
| | | | | In this case, the index problem prevented fsck from finding the other problems.
* initial work on git repository destroyerJoey Hess2013-11-19
| | | | | I suspect this might sometimes corrupt the **source** repo, so use with caution!
* updateJoey Hess2013-11-18
|
* copied from git-annexJoey Hess2013-11-18