aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* 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.
* moveGravatar Joey Hess2012-03-11
|
* getKeysPresent is now fully lazyGravatar Joey Hess2012-03-11
| | | | | | | | | | | | .. Allowing it to be used by things in constant space! Random statistics: git annex status has gone from taking 239 mb of memory and 26 seconds in a repo, to 8 mb and 13 seconds. The trick here is the unsafeInterleaveIO, and the form of the function's recursion, which I cribbed heavily from System.IO.HVFS.Utils.recurseDirStat. The difference is, this one goes to a limited depth and avoids statting everything.
* 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.
* fix linkGravatar Joey Hess2012-03-11
|
* fix linkGravatar Joey Hess2012-03-11
|
* Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2012-03-11
|\
| * Added a commentGravatar http://joey.kitenet.net/2012-03-11
| |
| * (no commit message)Gravatar http://claimid.com/FooBarWidget2012-03-11
| |
* | remove cruftGravatar Joey Hess2012-03-10
|/
* 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.
* Setup.hs: import configureGravatar Joey Hess2012-03-10
| | | | | | | | | | Rather than running make, which runs configure, let Setup.hs just include the configure code. The standalone configure is retained for use by the Makefile. This may work better with cabal-dev, since it avoids the Makefile running ghc, and lets cabal handle all the compiler running, with whatever flags it uses to expose dependencies.
* move text dependency into same block with the other dependenciesGravatar Joey Hess2012-03-10
|
* add other-modules for hsc filesGravatar Joey Hess2012-03-10
|
* perhaps more clear typeGravatar Joey Hess2012-03-10
|
* cleanupGravatar Joey Hess2012-03-09
|
* add news item for git-annex 3.20120309Gravatar Joey Hess2012-03-09
|
* releasing version 3.201203093.20120309Gravatar Joey Hess2012-03-09
|
* fix key directory hash calculation codeGravatar Joey Hess2012-03-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix Key directory hash calculation code to behave as it did before version 3.20120227 when a key contains non-ascii. The hash directories for a given Key are based on its md5sum. Prior to ghc 7.4, Keys contained raw, undecoded bytes, so the md5sum was taken of each byte in turn. With the ghc 7.4 filename encoding change, keys contains decoded unicode characters (possibly with surrigates for undecodable bytes). This changes the result of the md5sum, since the md5sum used is pure haskell and supports unicode. And that won't do, as git-annex will start looking in a different hash directory for the content of a key. The surrigates are particularly bad, since that's essentially a ghc implementation detail, so could change again at any time. Also, changing the locale changes how the bytes are decoded, which can also change the md5sum. Symptoms would include things like: * git annex fsck would complain that no copies existed of a file, despite its symlink pointing to the content that was locally present * git annex fix would change the symlink to use the wrong hash directory. Only WORM backend is likely to have been affected, since only it tends to include much filename data (SHA1E could in theory also be affected). I have not tried to support the hash directories used by git-annex versions 3.20120227 to 3.20120308, so things added with those versions with WORM will require manual fixups. Sorry for the inconvenience!
* factor out Utility.FileSystemEncodingGravatar Joey Hess2012-03-09
|
* refactorGravatar Joey Hess2012-03-09
|
* version base dependency for ghc 7.4Gravatar Joey Hess2012-03-06
|
* cleanupGravatar Joey Hess2012-03-06
|
* syscall optimisationGravatar Joey Hess2012-03-06
|
* Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2012-03-06
|\
| * Added a commentGravatar http://joey.kitenet.net/2012-03-06
| |
* | remove addurl testGravatar Joey Hess2012-03-06
| | | | | | | | | | addurl --fast used to avoid network, but it always uses it now, getting at least size. Thus not appropriate for test suite without a lot of work.
| * Added a comment: Test suite failureGravatar https://www.google.com/accounts/o8/id?id=AItOawk_LOahrm_Cdg7io-_H0CNKkaxsRRQgRFo2012-03-06
| |
| * Added a commentGravatar http://peter-simons.myopenid.com/2012-03-05
| |
| * Added a commentGravatar http://joey.kitenet.net/2012-03-05
| |
| * removedGravatar http://joey.kitenet.net/2012-03-05
| |
| * Added a commentGravatar http://joey.kitenet.net/2012-03-05
| |
| * Added a commentGravatar http://peter-simons.myopenid.com/2012-03-05
|/
* add news item for git-annex 3.20120230Gravatar Joey Hess2012-03-05
|
* releasing version 3.201202303.20120230Gravatar Joey Hess2012-03-05
|
* Fix a bug in symlink calculation code, that triggered in rare cases where an ↵Gravatar Joey Hess2012-03-05
| | | | | | | | | | | annexed file is in a subdirectory that nearly matched to the .git/annex/object/xx/yy subdirectories. This is a straight up pure-code stinker. The relative path calculation looked for common subdirectories in the two paths, but failed to stop after the paths diverged. When a later pair of subdirectories were the same, the resulting relative path was wrong. Added regression test for this.
* add remote start and stop hooksGravatar Joey Hess2012-03-04
| | | | | | Locking is used, so that, if there are multiple git-annex processes using a remote concurrently, the stop hook is only run by the last process that uses it.
* fooGravatar Joey Hess2012-03-04
|
* better chunked file retrievalGravatar Joey Hess2012-03-04
| | | | | | Avoids opening every chunk at once, instead streaming them in. Not done for encrypted file retrieval yet.
* tweak davfs2 settingsGravatar Joey Hess2012-03-04
|
* box.com seems to behave better with smaller chunksGravatar Joey Hess2012-03-04
| | | | | Seeing some weird failures in the davfs2 or box.com layer with 100 mb chunks.
* clarificationGravatar Joey Hess2012-03-04
|
* make meter slightly widerGravatar Joey Hess2012-03-04
|
* thread through original key to retrieveEnctyptedGravatar Joey Hess2012-03-04
| | | | | Allows showing progress bar for this last case of the directory special remote.
* add progress display when receiving filesGravatar Joey Hess2012-03-04
| | | | | | That was actually really easy. But, when getting a file from an encrypted directory special remote, no meter can be shown, because the total file size is not known.
* Add progress bar display to the directory special remote.Gravatar Joey Hess2012-03-04
| | | | | | | So far I've only written progress bars for sending files, not yet receiving. No longer uses external cp at all. ByteString IO is fast enough.
* instructions for using Box.com as a special remoteGravatar Joey Hess2012-03-04
| | | | | I was sucked in by the 50 gb free lifetime storage offer. Happily, it was pretty easy to get it to work with git-annex.
* tweakGravatar Joey Hess2012-03-03
|