summaryrefslogtreecommitdiff
path: root/Command/Unused.hs
Commit message (Collapse)AuthorAge
* Command/Unused.hs: Change --unused-refspec back to --used-refspecGravatar Øyvind A. Holm2015-09-09
| | | | | | Fix typo in commit aa96e9c ("convert Unused, and remove some dead code for old style option parsing", 2015-07-10), the "git-annex unused --used-refspec" option was incorrectly changed to --unused-refspec.
* convert Unused, and remove some dead code for old style option parsingGravatar Joey Hess2015-07-10
|
* convert version command, and make --raw work when not in a git repoGravatar Joey Hess2015-07-10
|
* wipGravatar Joey Hess2015-07-09
| | | | | | | Current status: * building again, but several commands are commented out * still need to implement global options, file matching options, etc
* convert all commands to work with optparse-applicativeGravatar Joey Hess2015-07-08
| | | | Still no options though.
* started converting to use optparse-applicativeGravatar Joey Hess2015-07-08
| | | | | | | | | | | | This is a work in progress. It compiles and is able to do basic command dispatch, including git autocorrection, while using optparse-applicative for the core commandline parsing. * Many commands are temporarily disabled before conversion. * Options are not wired in yet. * cmdnorepo actions don't work yet. Also, removed the [Command] list, which was only used in one place.
* Only look at reflogs for relevant branches, not for git-annex branchesGravatar Joey Hess2015-07-07
| | | | This speeds it up quite a bit.. May still be too slow in large repos.
* update commentGravatar Joey Hess2015-07-07
|
* unused: --used-refspec can now be configured to look at refs in the reflog. ↵Gravatar Joey Hess2015-07-07
| | | | | | This provides a way to not consider old versions of files to be unused after they have reached a specified age, when the old refs in the reflog expire. May be slow.
* instance Hashable Key for bloomfilterGravatar Joey Hess2015-06-16
|
* Increased the default annex.bloomaccuracy from 1000 to 10000000Gravatar Joey Hess2015-06-16
| | | | | | | | | | | | | | | | | | | This makes git annex unused use around 48 mb more memory than it did before, but the massive increase in accuracy makes this worthwhile for all but the smallest systems. Also, I want to use the bloom filter for sync --all --content, to avoid dropping files that the preferred content doesn't want, and 1/1000 false positives would be far too many in that use case, even if it were acceptable for unused. Actual memory use numbers: 1000: 21.06user 3.42system 0:26.40elapsed 92%CPU (0avgtext+0avgdata 501552maxresident)k 1000000: 21.41user 3.55system 0:26.84elapsed 93%CPU (0avgtext+0avgdata 549496maxresident)k 10000000: 21.84user 3.52system 0:27.89elapsed 90%CPU (0avgtext+0avgdata 549920maxresident)k Based on these numbers, 10 million seemed a better pick than 1 million.
* get --incomplete: New option to resume any interrupted downloads.Gravatar Joey Hess2015-06-02
|
* add annex.used-refspecGravatar Joey Hess2015-05-14
|
* unused: Add --used option, which can specify a set of refs to consider used, ↵Gravatar Joey Hess2015-05-14
| | | | rather than the default of considering all refs used.
* update my email address and homepage urlGravatar Joey Hess2015-01-21
|
* doh't use "def" for command definitions, it conflicts with Data.Default.defGravatar Joey Hess2014-10-14
|
* Rather than crashing when there's a problem with the requested bloomfilter ↵Gravatar Joey Hess2014-09-12
| | | | capacity/accuracy, fall back to a reasonable default bloom filter size.
* Support building with bloomfilter 2.0.0.Gravatar Joey Hess2014-07-07
|
* unused: Avoid checking view branches for unused files.Gravatar Joey Hess2014-06-04
| | | | | | | | | | This avoids a potential slowdown when using lots of views. I think that it makes sense for unused to ignore (local) view branches, since these are by definition supposed to be views of an existing branch, so looking at the branch should be sufficient (and if the view is out of date and has files that have since been deleted from the branch, the user's intent is not to preserve those from unused reaping).
* replace (Key, Backend) with KeyGravatar Joey Hess2014-04-17
| | | | | | | | | | Only fsck and reinject and the test suite used the Backend, and they can look it up as needed from the Key. This simplifies the code and also speeds it up. There is a small behavior change here. Before, all commands would warn when acting on an annexed file with an unknown backend. Now, only fsck and reinject show that warning.
* Windows: Fix some filename encoding bugs.Gravatar Joey Hess2014-03-19
| | | | | | http://git-annex.branchable.com/bugs/Unicode_file_names_ignored_on_Windows/ Not a complete fix yet.
* Fix direct mode getKeysPresent false positive & also sped up direct mode ↵Gravatar Joey Hess2014-03-07
| | | | | | | | | unused and unannex unused: In direct mode, files that are deleted from the work tree are no longer incorrectly detected as unused. Direct mode `git annex info` slows down a bit due to more stringent checking, but not by a lot.
* Put non-object tmp files in .git/annex/misctmp, leaving .git/annex/tmp for ↵Gravatar Joey Hess2014-02-26
| | | | | | | | | | | | | | | | | | | | only partially transferred objects. This allows eg, putting .git/annex/tmp on a ram disk, if the disk IO of temp object files is too annoying (and if you don't want to keep partially transferred objects across reboots). .git/annex/misctmp must be on the same filesystem as the git work tree, since files are moved to there in a way that will not work cross-device, as well as symlinked into there. I first wanted to put the tmp objects in .git/annex/objects/tmp, but that would pose transition problems on upgrade when partially transferred objects existed. git annex info does not currently show the size of .git/annex/misctemp, since it should stay small. It would also be ok to make something clean it out, periodically.
* 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.
* reorganize some files and importsGravatar Joey Hess2014-01-26
|
* add timestamps to unused log filesGravatar Joey Hess2014-01-22
| | | | | | | | | | This will be used in expiring old unused objects. The timestamp is when it was first noticed it was unused. Backwards compatability: It supports reading old format unused log files. The old version of git-annex will ignore lines in log files written by the new version, so the worst interop problem would be git annex dropunused not knowing some numbers that git-annex unused reported.
* 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.
* avoid trying to find minimum element of empty mapGravatar Joey Hess2014-01-18
|
* dropunused, addunused: Allow "all" instead of a range to act on all unused data.Gravatar Joey Hess2013-11-18
|
* update for DiffTree type changeGravatar Joey Hess2013-10-17
| | | | Experimentally, using the raw TopFilePath was right here.
* queue downloads of keys that fsck finds with bad contentGravatar Joey Hess2013-10-10
|
* remove *>=> and >=*> ; use <$$> insteadGravatar Joey Hess2013-09-27
| | | | | | | | I forgot I had <$$> hidden away in Utility.Applicative. It allows doing the same kind of currying as does >=*> and I found using it made the code more readable for me. (*>=> was not used)
* Unused: bugfixGravatar guilhem2013-08-26
| | | | Detect staged files that are not in the working tree.
* fix reversion in unusedGravatar Joey Hess2013-08-26
| | | | | | The reversion was that, if a file was git rm'd, but still in branches, it would not be seen as used. Looking at both the added and the removed (or changed) files from the diff-index is a cheap way to fix that.
* whitespaceGravatar Joey Hess2013-08-25
|
* unnecessary do blockGravatar Joey Hess2013-08-25
|
* Speed up the 'unused' command.Gravatar guilhem2013-08-25
| | | | | | | | | | | Instead of populating the second-level Bloom filter with every key referenced in every Git reference, consider only those which differ from what's referenced in the index. Incidentaly, unlike with its old behavior, staged modifications/deletion/... will now be detected by 'unused'. Credits to joeyh for the algorithm. :-)
* unused: Pay attention to symlinks that are not yet staged in the index.Gravatar Joey Hess2013-08-22
|
* unused: No longer shows as unused tmp files that are actively being transferred.Gravatar Joey Hess2013-07-25
|
* dropunused, addunused: Complain when asked to operate on a number that does ↵Gravatar Joey Hess2013-07-08
| | | | not correspond to any unused key.
* --unused: New switch that makes git-annex operate on all data found by the ↵Gravatar Joey Hess2013-07-03
| | | | last run of git annex unused. Supported by fsck, get, move, copy.
* add section metadata to all commandsGravatar Joey Hess2013-03-24
| | | | Not yet used .. mindless train work.
* status: Can now be run with a directory path to show only the status of that ↵Gravatar Joey Hess2013-03-11
| | | | directory, rather than the whole annex.
* two types of byNameGravatar Joey Hess2013-03-05
| | | | | | | | Clean up from 5123a1a83aa3b954fe67629508bab5ccea0e4148. In some cases, looking up a remote by name even though it has no UUID is desirable. This includes git annex sync, which can operate on remotes without an annex, and XMPP pairing, which runs addRemote (with calls byName) before the UUID of the XMPP remote has been configured in git.
* type based git config handling for remotesGravatar Joey Hess2013-01-01
| | | | | Still a couple of places that use git config ad-hoc, but this is most of it done.
* type based git config handlingGravatar Joey Hess2012-12-29
| | | | | | | | | | | Now there's a Config type, that's extracted from the git config at startup. Note that laziness means that individual config values are only looked up and parsed on demand, and so we get implicit memoization for all of them. So this is not only prettier and more type safe, it optimises several places that didn't have explicit memoization before. As well as getting rid of the ugly explicit memoization code. Not yet done for annex.<remote>.* configuration settings.
* where indentationGravatar Joey Hess2012-11-12
|
* fix last zombies in the assistantGravatar Joey Hess2012-10-04
| | | | | Made Git.LsFiles return cleanup actions, and everything waits on processes now, except of course for Seek.
* make a pipeReadStrict, that properly waits on the processGravatar Joey Hess2012-10-04
| | | | | | Nearly everything that's reading from git is operating on a small amount of output and has been switched to use that. Only pipeNullSplit stuff continues using the lazy version that yields zombies.
* fix breakage caught by test suiteGravatar Joey Hess2012-09-21
| | | | | Can't use show-ref --tags --branches, as that omits remote branches. Instead, filter out the synced refs directly.