summaryrefslogtreecommitdiff
path: root/Command/Repair.hs
Commit message (Collapse)AuthorAge
* remove Read instance for RefGravatar Joey Hess2014-02-19
| | | | | | | | Removed instance, got it all to build using fromRef. (With a few things that really need to show something using a ref for debugging stubbed out.) Then added back Read instance, and made Logs.View use it for serialization. This changes the view log format.
* fix inversion of control in CommandSeek (no behavior changes)Gravatar Joey Hess2014-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've been disliking how the command seek actions were written for some time, with their inversion of control and ugly workarounds. The last straw to fix it was sync --content, which didn't fit the Annex [CommandStart] interface well at all. I have not yet made it take advantage of the changed interface though. The crucial change, and probably why I didn't do it this way from the beginning, is to make each CommandStart action be run with exceptions caught, and if it fails, increment a failure counter in annex state. So I finally remove the very first code I wrote for git-annex, which was before I had exception handling in the Annex monad, and so ran outside that monad, passing state explicitly as it ran each CommandStart action. This was a real slog from 1 to 5 am. Test suite passes. Memory usage is lower than before, sometimes by a couple of megabytes, and remains constant, even when running in a large repo, and even when repeatedly failing and incrementing the error counter. So no accidental laziness space leaks. Wall clock speed is identical, even in large repos. This commit was sponsored by an anonymous bitcoiner.
* repair: better messages when nuking .git/annex/indexGravatar Joey Hess2014-01-13
|
* repair: Remove damaged git-annex sync branches.Gravatar Joey Hess2013-12-10
|
* Improve repair of git-annex index file.Gravatar Joey Hess2013-12-10
| | | | | | | | | | Fixes a test case I received where a corrupted repo was repaired, but the git-annex branch was not. The root of the problem was that the MissingObject returned by the repair code was not necessarily a complete set of all objects that might have been deleted during the repair. So, stop trying to return that at all, and instead make the index file checking code explicitly verify that each object the index uses is present.
* make repair command deal with non-git-annex reposGravatar Joey Hess2013-10-23
|
* wire git repair into webappGravatar Joey Hess2013-10-23
|
* minorGravatar Joey Hess2013-10-23
|
* repair command: add handling of git-annex branch and indexGravatar Joey Hess2013-10-23
|
* add repair commandGravatar Joey Hess2013-10-23