summaryrefslogtreecommitdiff
path: root/Git/Repair.hs
Commit message (Collapse)AuthorAge
* adeiu, MissingHGravatar Joey Hess2017-05-16
| | | | | | | | | | | | | | | | Removed dependency on MissingH, instead depending on the split library. After laying groundwork for this since 2015, it was mostly straightforward. Added Utility.Tuple and Utility.Split. Eyeballed System.Path.WildMatch while implementing the same thing. Since MissingH's progress meter display was being used, I re-implemented my own. Bonus: Now progress is displayed for transfers of files of unknown size. This commit was sponsored by Shane-o on Patreon.
* Always use filesystem encoding for all file and handle reads and writes.Gravatar Joey Hess2016-12-24
| | | | | This is a big scary change. I have convinced myself it should be safe. I hope!
* improve data typeGravatar Joey Hess2016-01-01
|
* refactor ls-tree paramsGravatar Joey Hess2015-07-06
| | | | All in one place to avoid bugs like 2ea34c47dd9819111f3cbaa2ce848581d286c05c
* remove Params constructor from Utility.SafeCommandGravatar Joey Hess2015-06-01
| | | | | | | | | | | | | | | | | | This removes a bit of complexity, and should make things faster (avoids tokenizing Params string), and probably involve less garbage collection. In a few places, it was useful to use Params to avoid needing a list, but that is easily avoided. Problems noticed while doing this conversion: * Some uses of Params "oneword" which was entirely unnecessary overhead. * A few places that built up a list of parameters with ++ and then used Params to split it! Test suite passes.
* update my email address and homepage urlGravatar Joey Hess2015-01-21
|
* revert parentDir changeGravatar Joey Hess2015-01-09
| | | | | | | | Reverts 2bba5bc22d049272d3328bfa6c452d3e2e50e86c Unfortunately, this caused breakage on Windows, and possibly elsewhere, because parentDir and takeDirectory do not behave the same when there is a trailing directory separator.
* Merge branch 'master' into relativepathsGravatar Joey Hess2015-01-06
|\ | | | | | | | | | | Conflicts: Locations.hs debian/changelog
| * made parentDir return a Maybe FilePath; removed most uses of itGravatar Joey Hess2015-01-06
| | | | | | | | | | | | | | | | parentDir is less safe than takeDirectory, especially when working with relative FilePaths. It's really only useful in loops that want to terminate at / This commit was sponsored by Audric SCHILTKNECHT.
* | Switch to using relative paths to the git repository.Gravatar Joey Hess2015-01-06
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | This allows the git repository to be moved while git-annex is running in it, with fewer problems. On Windows, this avoids some of the problems with the absurdly small MAX_PATH of 260 bytes. In particular, git-annex repositories should work in deeper/longer directory structures than before. See http://git-annex.branchable.com/bugs/__34__git-annex:_direct:_1_failed__34___on_Windows/ There are several possible ways this change could break git-annex: 1. If it changes its working directory while it's running, that would be Bad News. Good news everyone! git-annex never does so. It would also break thread safety, so all such things were stomped out long ago. 2. parentDir "." -> "" which is not a valid path. I had to fix one instace of this, and I should probably wipe all calls to parentDir out of the git-annex code base; it was never a good idea. 3. Things like relPathDirToFile require absolute input paths, and code assumes that the git repo path is absolute and passes it to it as-is. In the case of relPathDirToFile, I converted it to not make this assumption. Currently, the test suite has 16 failures.
* repair: Prevent auto gc from happening when fetching from a remote.Gravatar Joey Hess2014-10-12
|
* fix some mixed space+tab indentationGravatar Joey Hess2014-10-09
| | | | | | | | | This fixes all instances of " \t" in the code base. Most common case seems to be after a "where" line; probably vim copied the two space layout of that line. Done as a background task while listening to episode 2 of the Type Theory podcast.
* improve repair of bad branchesGravatar Joey Hess2014-07-21
| | | | | | | | | | | | | | | The repair code assumed that if fsck found no broken objects, after removing bad objects and possibly pulling replacements from remote, all was well.. but this is not really true. Removing bad objects could leave some branches broken. fsck doesn't report any missing objects in this case, and its messages about broken branches are ignored by the fsck output parser. To deal with this, added a separate scan of all refs to find broken ones and remove them when --forced. This will also let anyone who ran into this bug run repair again to fix up the incomplete repair done before. This commit was sponsored by Aaron Whitehouse.
* fully fix fsck memory use by iterative fsckingGravatar Joey Hess2014-03-12
| | | | Not very well tested, but I'm sure it doesn't eg, loop forever.
* better streaming when cleaning up corrupt objectsGravatar Joey 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.
* repair: Optimise unpacking of pack files, and avoid repeated error messages ↵Gravatar Joey Hess2014-02-24
| | | | about corrupt pack files.
* 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.
* repair: Fix bug in packed refs file exploding code that caused a .gitrefs ↵Gravatar Joey Hess2014-01-15
| | | | directory to be created instead of .git/refs
* repair: Remove damaged git-annex sync branches.Gravatar Joey Hess2013-12-10
|
* updateGravatar Joey Hess2013-12-10
|
* accidentially committed wrong version of fileGravatar 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.
* merge improved fsck types from git-repair and some associated changesGravatar Joey Hess2013-11-30
|
* make runRepairOf run preRepairGravatar Joey Hess2013-11-21
| | | | | This may be a little late, since a fsck has already been done, but it can't hurt.
* merge from git-repairGravatar Joey Hess2013-11-21
|
* merge from git-repairGravatar Joey Hess2013-11-20
|
* merge from git-repairGravatar Joey Hess2013-11-20
|
* merge from git-repairGravatar Joey Hess2013-11-20
|
* fix repair failure that occurred when index was corrupted, and other objects tooGravatar Joey Hess2013-11-19
| | | | | In this case, the index problem prevented fsck from finding the other problems.
* merge with git-repairGravatar Joey Hess2013-11-19
|
* moving git-repair to its own packageGravatar Joey Hess2013-11-18
|
* better handling of missing index fileGravatar Joey Hess2013-11-13
|
* assistant: Notice on startup when the index file is corrupt, and auto-repair.Gravatar Joey Hess2013-11-13
|
* repair: Handle case where index file is corrupt, but all objects are ok.Gravatar Joey Hess2013-11-13
|
* assistant: Support repairing git remotes that are locally accessibleGravatar Joey Hess2013-10-27
| | | | | | | | (eg, on removable drives) gcrypt remotes are not yet handled. This commit was sponsored by Sören Brunk.
* 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