summaryrefslogtreecommitdiff
path: root/Command
Commit message (Collapse)AuthorAge
* use unabbreviated size units in statusGravatar Joey Hess2012-04-06
|
* Rewrote free disk space checking codeGravatar Joey Hess2012-03-22
| | | | | Moving the portability handling into a small C library cleans up things a lot, avoiding the pain of unpacking structs from inside haskell code.
* use new getConfigGravatar Joey Hess2012-03-22
|
* rationalize getConfigGravatar Joey Hess2012-03-22
| | | | | | | | | | getConfig got a remote-specific config, and this confusing name caused it to be used a couple of places that only were interested in global configs. Rename to getRemoteConfig and make getConfig only get global configs. There are no behavior changes here, but remote.<name>.annex-web-options never actually worked (and per-remote web options is a very unlikely to be useful case so I didn't make it work), so fix the documentation for it.
* tweakGravatar Joey Hess2012-03-22
|
* status: Prints available local disk space, or shows if git-annex doesn't know.Gravatar Joey Hess2012-03-21
|
* fun with symbolsGravatar Joey Hess2012-03-17
| | | | | | Nothing at all on hackage is using <&&> or <||>. (Also, <&&> should short-circuit on failure.)
* optimize monadic ||Gravatar Joey Hess2012-03-16
| | | | | (||) used applicative style runs both conditions rather than short circuiting. Add an orM that properly short-circuits.
* added ifM and nuked 11 lines of codeGravatar Joey Hess2012-03-14
| | | | no behavior changes
* Merge branch 'master' into bloomGravatar Joey Hess2012-03-14
|\ | | | | | | | | | | Conflicts: Command/Commit.hs debian/changelog
| * ignore hook exit statusGravatar Joey Hess2012-03-14
| |
| * git-annex-shell: Runs hooks/annex-content after content is received or dropped.Gravatar Joey Hess2012-03-14
| |
* | git-annex-shell: Runs hooks/annex-content after content is received or dropped.Gravatar Joey Hess2012-03-14
| |
* | Merge branch 'master' into bloomGravatar Joey Hess2012-03-12
|\| | | | | | | | | Conflicts: debian/changelog
* | finish bloom filtersGravatar Joey Hess2012-03-12
| | | | | | | | | | | | | | | | Add tuning, docs, etc. Not sure if status is the right place to remote size.. perhaps unused should report the size and also warn if it sees more keys than the bloom filter allows?
* | added second stage bloom filterGravatar Joey Hess2012-03-12
| |
* | fixed bloom filter creation space leakGravatar Joey Hess2012-03-12
| | | | | | | | it works!
* | try at using bloom filtersGravatar Joey Hess2012-03-12
| | | | | | | | leaks memory
| * status: More accurate display of sizes of tmp and bad keys.Gravatar Joey Hess2012-03-12
|/ | | | | | | | | Can't trust the key size to be accurate for tmp and bad keys, so check actual file size. In the wild I saw the old code be wrong by a factor of about 100! If all tmp/bad keys are empty, they're not shown in status at all. Showing 0 bytes and suggesting to clean it up seemed weird..
* prettifyGravatar Joey Hess2012-03-11
|
* avoid needing to keep list of present keysGravatar Joey Hess2012-03-11
| | | | | | Stale and bad files are rare, so it's more efficient to use inAnnex to see if they can be deleted, rather than keeping the list of all present keys around for them.
* status: Fixed to run in nearly constant space.Gravatar Joey Hess2012-03-11
| | | | | | | | Before, it leaked space due to caching lists of keys. Now all necessary data about keys is calculated as they stream in. The "nearly constant" is due to getKeysPresent, which builds up a lot of [] thunks as it traverses .git/annex/objects/. Will deal with it later.
* unused: Reduce memory usage significantly.Gravatar Joey Hess2012-03-11
| | | | | | | | | | | | | | | | | Much of the memory bloat turned out to be due to getKeysReferenced containing a mapM, which is strict and buffered the whole list rather than streaming it. The other half of the bloat was due to building a temporary Set in order to call S.difference. While that is more cpu efficient, I switched to successive S.delete, since with it, I can run a whole git annex unused in less than 8 mb of memory. The whole Set of keys with content available is still stored in memory, so running unused in a repo with a whole lot of file content will still use more memory. In a repo containing 6000 files, it needed 40 mb. Note that the status command still uses the bloatful getKeysReferenced.
* sync: Sync to lower cost remotes first.Gravatar Joey Hess2012-03-10
| | | | | | | | | This has two benefits. 1. When a lot of refs are going to be received, get them via lower cost connection when possible. 2. Allows ctrl-c of sync after the cheaper remotes have been pulled from (or pushed to).
* fsck: Fix up any broken links and misplaced content caused by the directory ↵Gravatar Joey Hess2012-03-10
| | | | hash calculation bug fixed in the last release.
* cleanupGravatar Joey Hess2012-03-06
|
* "here" can be used to refer to the current repository, which can read better ↵Gravatar Joey Hess2012-03-01
| | | | than the old "." (which still works too).
* move --from, copy --from: 10 times faster scanning remote on local diskGravatar Joey Hess2012-02-26
| | | | | | | | | | | | | | | | | | | Rather than go through the location log to see which files are present on the remote, it simply looks at the disk contents directly. I benchmarked this speeding up scanning 834 files, from an annex on my phone's SSD, from 11.39 seconds to 1.31 seconds. (No files actually moved.) Also benchmarked 8139 files, from an annex on spinning storage, speeding up from 103.17 to 13.39 seconds. Note that benchmarking with an encrypted annex on flash actually showed a minor slowdown with this optimisation -- from 13.93 to 14.50 seconds. Seems the overhead of doing the crypto needed to get the filenames to directly check can be higher than the overhead of looking up data in the location log. (Which says good things about how well the location log and git have been optimised!) It *may* make sense to make encrypted local remotes not have hasKeyCheap set; further benchmarking is called for.
* add git-annex-shell commitGravatar Joey Hess2012-02-25
| | | | | | | | | Eventually, git-annex might try running this after making changes to a remote. I have not yet thought of a good way for it to tell which remotes it needs to run it on though. It can't just do it when shutting down a cached ssh connection, because ssh connection caching is optional, and that would not handle local remotes not accessed over ssh either.
* improve alwayscommit=false modeGravatar Joey Hess2012-02-25
| | | | | | | | | | | | | | Now changes are staged into the branch's index, but not committed, which avoids growing a large journal. And sync and merge always explicitly commit, ensuring that even when they do nothing else, they commit the staged changes. Added a flag file to indicate that the branch's journal contains uncommitted changes. (Could use git ls-files, but don't want to run that every time.) In the future, this ability to have uncommitted changes staged in the journal might be used on remotes after a series of oneshot commands.
* more robustness fixesGravatar Joey Hess2012-02-18
|
* don't fail with --pathdepth when file already existsGravatar Joey Hess2012-02-18
|
* don't error out entirely if an url cannot be downloadedGravatar Joey Hess2012-02-18
|
* variable nameGravatar Joey Hess2012-02-17
|
* reorgGravatar Joey Hess2012-02-17
|
* reorder for clarityGravatar Joey Hess2012-02-16
|
* make Migrate use ReKey rather than the other way aroundGravatar Joey Hess2012-02-16
| | | | as ReKey is plumbing, this makes sense
* fix filename limit when using --pathdepthGravatar Joey Hess2012-02-16
|
* rekey: New plumbing level command, can be used to change the keys used for ↵Gravatar Joey Hess2012-02-16
| | | | files en masse.
* zero still badGravatar Joey Hess2012-02-16
|
* allow pathdepth to drop from the front or take from the end (negative)Gravatar Joey Hess2012-02-16
|
* improve usageGravatar Joey Hess2012-02-16
|
* addurl: Add --pathdepth option.Gravatar Joey Hess2012-02-16
|
* avoid too long filename when making up a filename for addurl tooGravatar Joey Hess2012-02-16
|
* hlintGravatar Joey Hess2012-02-16
|
* create parent directories as needed for addurl --fileGravatar Joey Hess2012-02-16
|
* set oneshot mode on a per-command basisGravatar Joey Hess2012-02-14
| | | | Avoids ugly (and test suite failing) hack in Command.Version
* avoid version saving stateGravatar Joey Hess2012-02-14
| | | | This is not the place to commit journal files.
* whereis: Prints the urls of files that the web special remote knows about.Gravatar Joey Hess2012-02-14
|
* rework git check-attr interfaceGravatar Joey Hess2012-02-13
| | | | | | | | | | | | | | | Now gitattributes are looked up, efficiently, in only the places that really need them, using the same approach used for cat-file. The old CheckAttr code seemed very fragile, in the way it streamed files through git check-attr. I actually found that cad8824852aa0623dc41eac02a9e2bae47d88ec4 was still deadlocking with ghc 7.4, at the end of adding a lot of files. This should fix that problem, and avoid future ones. The best part is that this removes withAttrFilesInGit and withNumCopies, which were complicated Seek methods, as well as simplfying the types for several other Seek methods that had a Backend tupled in.