summaryrefslogtreecommitdiff
path: root/debian
Commit message (Collapse)AuthorAge
* Directory special remotes now check annex.diskreserve.Gravatar Joey Hess2012-04-20
|
* had the wrong name for thisGravatar Joey Hess2012-04-20
|
* releasing version 3.201204183.20120418Gravatar Joey Hess2012-04-18
|
* cabal file now autodetects whether S3 support is available.Gravatar Joey Hess2012-04-14
|
* cabal now installs git-annex-shell as a symlink to git-annex.Gravatar Joey Hess2012-04-14
|
* Renamed diskfree.c to avoid OSX case insensativity bug.Gravatar Joey Hess2012-04-13
|
* autocorrectionGravatar Joey Hess2012-04-12
| | | | | | | git-annex (but not git-annex-shell) supports the git help.autocorrect configuration setting, doing fuzzy matching using the restricted Damerau-Levenshtein edit distance, just as git does. This adds a build dependency on the haskell edit-distance library.
* bup: Properly handle key names with spaces or other things that are not ↵Gravatar Joey Hess2012-04-11
| | | | | | | | legal git refs. Continue using the key name as bup ref name, to preserve backwards compatability, unless it is an illegal git ref. In that case, use a sha256 of the key name instead.
* bugfix: Adding a dotfile also caused all non-dotfiles to be added.Gravatar Joey Hess2012-04-08
| | | | | When only a dotfile was specified, the list of non-dotfiles was empty, triggering the fallback behavior of finding all files.
* releasing version 3.201204063.20120406Gravatar Joey Hess2012-04-07
|
* Disable diskfree on kfreebsd, as I have a build failure on kfreebsd-i386 ↵Gravatar Joey Hess2012-04-07
| | | | that is quite likely caused by it.
* releasing version 3.201204053.20120405Gravatar Joey Hess2012-04-05
|
* updateGravatar Joey Hess2012-03-24
|
* 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.
* status: Prints available local disk space, or shows if git-annex doesn't know.Gravatar Joey Hess2012-03-21
|
* Improve detection of inability to check free disk space.Gravatar Joey Hess2012-03-21
| | | | | | | | Don't check if configure indicated checks won't work. This should fix a FTBFS on mipsel, where configure correctly detects the checks won't work, while garbage is returned for disk space info at git-annex runtime. It also means that, when built via cabal, disk space checks are not enabled, unfortunatly.
* releasing version 3.201203153.20120315Gravatar Joey Hess2012-03-15
|
* shave some 12 mb from the installed sizeGravatar Joey Hess2012-03-15
| | | | | | * git-annex now behaves as git-annex-shell if symlinked to and run by that name. The Makefile sets this up, saving some 8 mb of installed size. * git-union-merge is a demo program, so it is no longer built by default.
* updateGravatar Joey Hess2012-03-14
|
* Merge branch 'master' into bloomGravatar Joey Hess2012-03-14
|\ | | | | | | | | | | Conflicts: Command/Commit.hs debian/changelog
| * 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
| |
| * Work around a bug in rsync (IMHO) introduced by openSUSE's SIP patch.Gravatar Joey Hess2012-03-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | openSUSE patches rsync with a patch adding SIP protocol support. https://gist.github.com/2026167 With this patch, running rsync with no hostname parameter is apparently supposed to list SIP hosts on the network. Practically, it does nothing and exits 0. git-annex uses rsync in a very special way to allow git-annex-shell to be run on the remote host, and so did not need to specify a hostname, or a file to transfer as a rsync parameter. So it sent ":", a degenerate case of "host:file". But the patch cannot differentiate ":" with no host parameter (a bug in the SIP patch surely). Results were that getting files failed, as rsync seemed to succeed, but the requested file failed to arrive. Also I think that sending files will make git-annex think a file has been transferred to the remote when really rsync does nothing. The workaround for this buggy rsync patch is to use "dummy:" as the hostname.
* | 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?
| * 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..
* 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.
* 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.
* 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!
* 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.
* 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.
* Directory special remotes now support chunking files written to themGravatar Joey Hess2012-03-03
| | | | | | Avoiding writing files larger than a specified size is useful on certian things. For example, box.com has a file size limit of 100 mb. Could also be useful on really crappy removable media.
* "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).
* releasing version 3.201202293.20120229Gravatar Joey Hess2012-02-29
|
* Fix test suite to not require a unicode locale.Gravatar Joey Hess2012-02-29
| | | | | Without a unicode locale, it will fail to print a unicode filename to console, and fails.
* releasing version 3.20120227Gravatar Joey Hess2012-02-27
|
* 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.
* version dependency on openssh-clientGravatar Joey Hess2012-02-25
| | | | | This is only to ensure that it's as new a version as it was built with, so partial upgrades work.
* configure: Check if ssh connection caching is supported by the installed ↵Gravatar Joey Hess2012-02-25
| | | | version of ssh and default annex.sshcaching accordingly.
* do a cleanup commit after moving data from or to a git remoteGravatar Joey Hess2012-02-25
| | | | | | | | Added Annex.cleanup, which is a general purpose interface for adding actions to run at the end. Remotes with the old git-annex-shell will commit every time, and have no commit command, so hide stderr when running the commit command.
* 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.
* add annex.alwayscommit optionGravatar Joey Hess2012-02-25
| | | | | | To avoid commits of data to the git-annex branch after each command is run, set annex.alwayscommit=false. Its data will then be committed less frequently, when a merge or sync is done.
* update copyright format urlGravatar Joey Hess2012-02-25
|
* Deal with NFS problem that caused a failure to remove a directory when ↵Gravatar Joey Hess2012-02-24
| | | | | | | | | | | | | | removing content from the annex. I was able to reproduce this on linux using the kernel's nfs server and mounting localhost:/. Determined that removing the directory fails when the just-deleted file in it was locked. Considered dropping the lock before removing the directory, but this would complicate parts of the code that should not need to worry about locking. So instead, ignore the failure to remove the directory in this case. While I was at it, made it attempt to remove both levels of hash directories, in case they're empty.