| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| |
| |
| | |
* Fix build deps. Closes: #731179
# imported from the archive
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Added test mode, which can be used to randomly corrupt test
repositories, in reproducible ways, which allows easy
corruption-driven-development.
* Improve repair code in the case where the index file is corrupt,
and this hides other problems.
* Write a dummy .git/HEAD if the file is missing or corrupt, as
git otherwise will not treat the repository as a git repo.
* Improve fsck code to find badly corrupted objects that crash git fsck
before it can complain about them.
* Fixed crashes on bad file encodings.
* Can now run 10000 tests (git-repair --test -n 10000 --force)
with 0 failures.
# imported from the archive
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Note that the batchCommand stuff is not used in git-repair, so
configure does not need to check for nice, ionice, and nocache,
nor are they dependend on.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
My hashing was ill-thought, git loose objects can't be easily checked that
way. Use git show instead.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 ensures any file in the repo is chosen, not only one of the first 20.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Some corrupt objects can cause it to say the object is several TB, which
led to OOM.
Added some fork overhead, but it shouldn't be too bad; this is only run
against objects fsck outputs, and most of the time that is only corrupt
objects, and objects that refer to them.
|
|
|
|
|
|
|
| |
Apparently some corruption to an object can cause cat-file to say it's N
bytes long, but only output N-M bytes of data. This causes Git.CatFile
to stall waiting for the rest. To fix, add a 1 minute timeout to the
cat-file, which should be enough time to read any reasonable object.
|
|
|
|
| |
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.
|
|
|
|
|
| |
Aguably, I should make cat-file only throw IO exceptions, but currently it
throws some errors too.
|
| |
|
| |
|
|
|
|
|
|
|
| |
unpack-objects does nothing unless the pack is moved out of the packs
directory.
Also, unpack any packs recevied when fetching.
|