diff options
-rw-r--r-- | Build/Version.hs | 2 | ||||
-rwxr-xr-x | Build/make-sdist.sh | 22 | ||||
-rw-r--r--[l---------] | CHANGELOG | 4621 | ||||
-rw-r--r--[l---------] | COPYRIGHT | 787 | ||||
l--------- | INSTALL | 1 | ||||
-rw-r--r-- | Makefile | 32 | ||||
-rw-r--r--[l---------] | NEWS | 45 | ||||
-rw-r--r-- | Setup.hs | 14 | ||||
-rw-r--r-- | configure.hs | 6 | ||||
l---------[-rw-r--r--] | debian/NEWS | 45 | ||||
l---------[-rw-r--r--] | debian/changelog | 4616 | ||||
l---------[-rw-r--r--] | debian/copyright | 787 | ||||
-rw-r--r-- | doc/download.mdwn | 5 | ||||
-rw-r--r-- | git-annex.cabal | 806 |
14 files changed, 6276 insertions, 5513 deletions
diff --git a/Build/Version.hs b/Build/Version.hs index 87315b0ea..d39a0fe08 100644 --- a/Build/Version.hs +++ b/Build/Version.hs @@ -46,7 +46,7 @@ getVersion = do getChangelogVersion :: IO Version getChangelogVersion = do - changelog <- readFile "debian/changelog" + changelog <- readFile "CHANGELOG" let verline = takeWhile (/= '\n') changelog return $ middle (words verline !! 1) where diff --git a/Build/make-sdist.sh b/Build/make-sdist.sh deleted file mode 100755 index 6e1ddae62..000000000 --- a/Build/make-sdist.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# -# Workaround for `cabal sdist` requiring all included files to be listed -# in .cabal. - -# Create target directory -sdist_dir=git-annex-$(grep '^Version:' git-annex.cabal | sed -re 's/Version: *//') -mkdir --parents dist/$sdist_dir - -find . \( -name .git -or -name dist -or -name cabal-dev \) -prune \ - -or -not -name \\*.orig -not -type d -print \ - | perl -ne "print unless length >= 100 - length q{$sdist_dir}" \ - | grep -v ':' \ - | xargs cp --parents --target-directory dist/$sdist_dir - -cd dist -tar --format=ustar -caf $sdist_dir.tar.gz $sdist_dir - -# Check that tarball can be unpacked by cabal. -# It's picky about tar longlinks etc. -rm -rf $sdist_dir -cabal unpack $sdist_dir.tar.gz diff --git a/CHANGELOG b/CHANGELOG index d526672ce..0a971b33f 120000..100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1 +1,4620 @@ -debian/changelog
\ No newline at end of file +git-annex (6.20160512) UNRELEASED; urgency=medium + + * Change git annex info remote encryption description to use wording + closer to what's used in initremote. + * webapp: Avoid confusing display of dead remotes. + * adjust: If the adjusted branch already exists, avoid overwriting it, + since it might contain changes that have not yet been propigated to the + original branch. + * assistant: Fix bug that caused v6 pointer files to be annexed by the + assistant. + * assistant: Fix race in v6 mode that caused downloaded file content to + sometimes not replace pointer files. + * add: Adding a v6 pointer file used to annex it; now the pointer file is + added to git as-is. (git add of a pointer file already did the right + thing) + * adjust: Add --fix adjustment, which is useful when the git directory + is in a nonstandard place. + * Work around git weirdness in handling of relative path to GIT_INDEX_FILE + when in a subdirectory of the repository. This affected git annex view. + * Fix crash when entering/changing view in a subdirectory of a repo that + has a dotfile in its root. + * Support building with ghc 8.0.1. + * Pass the various gnupg-options configs to gpg in several cases where + they were not before. Most notably, gnupg-decrypt-options is now + passed when decrypting an encrypted cipher. + * Updated cabal file explictly lists source files. The tarball + on hackage will include only the files needed for cabal install; + it is NOT the full git-annex source tree. + * debian/changelog, debian/NEWS, debian/copyright: Converted to symlinks + to CHANGELOG, NEWS, and COPYRIGHT, which used to symlink to these instead. + + -- Joey Hess <id@joeyh.name> Wed, 11 May 2016 16:08:38 -0400 + +git-annex (6.20160511) unstable; urgency=medium + + * Fix bug that sometimes prevented git-annex smudge --clean from consuming + all its input, which resulted in git add bypassing git-annex. + * Fix build with directory-1.2.6.2. + * Improve behavior when a just added http remote is not available + during uuid probe. Do not mark it as annex-ignore, so it will be tried + again later. + * Android: Icon refresh. + Thanks, freewheelinfranks. + * Added DIRHASH-LOWER to external special remote protocol. + * git-annex.cabal: Add Setup-Depends. + * stack.yaml: Enable explicit-setup-deps. + * Windows: Fix several bugs in propigation of changes from the adjusted + branch back to the master branch. + * Windows: Fix an over-long temp directory name. + * map: Hide dead repositories that are not connected to the graph. + * map: Changed colors; red is used for untrusted repositories and grey + for dead. + * version: Display OS version and architecture too. + * Propigate GIT_DIR and GIT_WORK_TREE environment to external special + remotes. + * Added annex.gnupg-decrypt-options and + remote.<name>.annex-gnupg-decrypt-options, which are passed to gpg + when it's decrypting data. + * fsck: When a key is not previously known in the location log, + record something so that reinject --known will work. + * In the unusual configuration where annex.crippledfilesystem=true but + core.symlinks=true, store object contents in mixed case hash + directories so that symlinks will point to them. + * Added new encryption=sharedpubkey mode for special remotes. + This is useful for makking a special remote that anyone with a clone + of the repo and your public keys can upload files to, but only you can + decrypt the files stored in it. + + -- Joey Hess <id@joeyh.name> Wed, 11 May 2016 12:41:42 -0400 + +git-annex (6.20160419) unstable; urgency=medium + + * Fix bug that prevented resuming of uploads to encrypted special remotes + that used chunking. + * That bug could also expose the names of keys to such remotes, so it is a + minor security issue. + * Fix duplicate progress meter display when downloading from a git remote + over http with -J. + * reinject: When src file's content cannot be verified, leave it alone, + instead of deleting it. + * reinject: Added new mode which can reinject known files into the annex. + For example: git-annex reinject --known /mnt/backup/* + * calckey: New plumbing command, calculates the key that would be used + to refer to a file. + * Fix bug that prevented annex.sshcaching=false configuration from taking + effect when on a crippled filesystem. Thanks, divergentdave. + * git 2.9.0 is going to prevent git merge from merging in unrelated + branches. Since the webapp's pairing etc features often combine + together repositories with unrelated histories, work around + this behavior change when the assistant merges, by passing + --allow-unrelated-histories. Note though that this is not done + for git annex sync's merges, so it will follow git's default or + configured behavior. + * When git-annex is used with a git version older than 2.2.0, disable + support for adjusted branches, since GIT_COMMON_DIR is needed to update + them and was first added in that version of git. + * Avoid setting LOCPATH in linux standalone builds that are built with + a ghc that has been fixed to not hang when it cannot find locale files. + * Isolate test suite from global git config settings. + + -- Joey Hess <id@joeyh.name> Thu, 28 Apr 2016 09:31:14 -0400 + +git-annex (6.20160418) unstable; urgency=medium + + * smudge: Print a warning when annex.thin is set, as git's smudge + interface does not allow honoring that configuration. + * webapp: When $HOME is a git repository, and has been initialized for + use by git-annex, opening the webapp went ahead and ran the assistant + there, annexing all files. Since this is almost certianly not + desirable, especially when the user is just opening the webapp from + a dekstop menu which happens to run it in $HOME, the webapp will now not + treat such a $HOME git repository as a git-annex repository. + * webapp: Update url to add gitlab.com ssh key. + * Fix bug in v6 mode that prevented treating unlocked executable files + as annexed. If you have such files, run git annex init --version=6 + to update the cache after upgrading to this version of git-annex. + * Preserve execute bits of unlocked files in v6 mode. + * fsck: Warn when core.sharedRepository is set and an annex object file's + write bit is not set and cannot be set due to the file being owned + by a different user. + * Fix hang when dropping content needs to lock the content on a + ssh remote, which occurred when the remote has git-annex version + 5.20151019 or newer. (The bug was in the client side; the remote + git-annex-shell does not need to be upgraded.) + + -- Joey Hess <id@joeyh.name> Mon, 18 Apr 2016 18:33:52 -0400 + +git-annex (6.20160412) unstable; urgency=medium + + * adjust --unlock: Enters an adjusted branch in which all annexed files + are unlocked. The v6 equivilant of direct mode, but much cleaner! + * Upgrading a direct mode repository to v6 has changed to enter + an adjusted unlocked branch. This makes the direct mode to v6 upgrade + able to be performed in one clone of a repository without affecting + other clones, which can continue using v5 and direct mode. + * init --version=6: Automatically enter the adjusted unlocked branch + when filesystem doesn't support symlinks. + * ddar remote: fix ssh calls + Thanks, Robie Basak + * log: Display time with time zone. + * log --raw-date: Use to display seconds from unix epoch. + * v6: Close pointer file handles more quickly, to avoid problems on Windows. + * sync: Show output of git commit. + * annex.thin and annex.hardlink are now supported on Windows. + * unannex --fast now makes hard links on Windows. + * Fix bug in annex.largefiles mimetype= matching when git-annex + is run in a subdirectory of the repository. + * Fix build with ghc v7.11. Thanks, Gabor Greif. + + -- Joey Hess <id@joeyh.name> Tue, 12 Apr 2016 14:53:22 -0400 + +git-annex (6.20160318) unstable; urgency=medium + + * metadata: Added -r to remove all current values of a field. + * Fix data loss that can occur when annex.pidlock is set in a repository. + * Fix bug preventing moving files to/from a repository with annex.pidlock set. + * Fix shared lock file FD leak. + * Fix metadata hook behavior when multiple files are added at once. + Thanks, Klaus Ethgen. + * Added dependencies on haskell mountpoints and disk-free-space + libraries, removing FFI code from git-annex. + * dropkey: Add --batch and --json. + * Fix OSX dmg to include libraries needed by bundled gpg, + lost in last release. + * Always try to thaw content, even when annex.crippledfilesystem is set. + * Correct git-annex info to include unlocked files in v6 repository. + * Sped up git-annex add in direct mode and v6 by using + git hash-object --stdin-paths. + * Sped up git-annex merge by using git hash-object --stdin-paths. + + -- Joey Hess <id@joeyh.name> Fri, 18 Mar 2016 11:30:36 -0400 + +git-annex (6.20160229) unstable; urgency=medium + + * Update perlmagick build dependency. Closes: #789225 + * Fix memory leak in last release, which affected commands like + git-annex status when a large non-annexed file is present in the work + tree. + * fsck: When the only copy of a file is in a dead repository, mention + the repository. + * info: Mention when run in a dead repository. + * Linux and OSX standalone builds put the bundled gpg last in PATH, + so any system gpg will be preferred over it. + * Avoid crashing when built with MagicMime support, but when the magic + database cannot be loaded. + * Include magic database in the linux and OSX standalone builds. + * Fix memory leak when hashing files, which triggered during fsck + when an external hash program was not used. + (This leak was introduced in version 6.20160114.) + * Support --metadata field<number, --metadata field>number etc + to match ranges of numeric values. + * Similarly, support preferred content expressions like + metadata=field<number and metadata=field>number + * The pre-commit-annex hook script that automatically extracts + metadata has been updated to also use exiftool. + Thanks, Klaus Ethgen. + + -- Joey Hess <id@joeyh.name> Mon, 29 Feb 2016 12:41:49 -0400 + +git-annex (6.20160217) unstable; urgency=medium + + * Support getting files from read-only repositories. + * checkpresentkey: Allow to be run without an explicit remote. + * checkpresentkey: Added --batch. + * Work around problem with concurrent-output when in a non-unicode locale + by avoiding use of it in such a locale. Instead -J will behave as if + it was built without concurrent-output support in this situation. + * Fix storing of filenames of v6 unlocked files when the filename is not + representable in the current locale. + * fsck: Detect and fix missing associated file mappings in v6 repositories. + * fsck: Populate unlocked files in v6 repositories whose content is + present in annex/objects but didn't reach the work tree. + * When initializing a v6 repo on a crippled filesystem, don't force it + into direct mode. + * Windows: Fix v6 unlocked files to actually work. + * add, addurl, import, importfeed: When in a v6 repository on a crippled + filesystem, add files unlocked. + * annex.addunlocked: New configuration setting, makes files always be + added unlocked. (v6 only) + * Improve format of v6 unlocked pointer files to support keys containing + slashes. + + -- Joey Hess <id@joeyh.name> Wed, 17 Feb 2016 14:48:51 -0400 + +git-annex (6.20160211) unstable; urgency=medium + + * annex.addsmallfiles: New option controlling what is done when + adding files not matching annex.largefiles. + * Fix reversion in lookupkey, contentlocation, and examinekey which + caused them to sometimes output side messages. + * webapp: Fix deletion of current repository directory. + * Added "nothing" to preferred content expression syntax. + * annex.largefiles can be configured in .gitattributes too; + this is particulary useful for v6 repositories, since the + .gitattributes configuration will apply in all clones of the + repository. + * Limit annex.largefiles parsing to the subset of preferred content + expressions that make sense in its context. So, not "standard" + or "lackingcopies", etc. + * annex.largefiles: Add support for mimetype=text/* etc, when git-annex + is linked with libmagic. + * matchexpression: Added --largefiles option to parse an annex.largefiles + expression. + * Brought back the dbus and xmpp build flags, so build from source can be + done without C libraries that may be hard to install. + * init: Fix bugs in submodule .git symlink fixup, that occurred when + initializing in a subdirectory of a submodule and a submodule of a + submodule. + * WebDAV: Set depth 1 in PROPFIND request, for better compatibility with + some servers. Thanks, wzhd. + * WebDAV: Remove a bogus trailing slash from the end of the url to the + temporary store location for a key. Thanks, wzhd. + * S3: Allow configuring with requeststyle=path to use path-style bucket + access instead of the default DNS-style access. + + -- Joey Hess <id@joeyh.name> Thu, 11 Feb 2016 11:42:19 -0400 + +git-annex (6.20160126) unstable; urgency=medium + + * Fix nasty reversion in the last release that broke sync --content's + handling of many preferred content expressions. + * whereis --json: Urls are now listed inside the remote that claims them, + rather than all together at the end. + * info, add, whereis, find: Support --batch mode. + * Force output to be line-buffered, even when it's not connected to the + terminal. This is particuarly important for commands with --batch + output, which was not always being flushed at an appropriate time. + * add, import: Support --json output. + * addurl --json: Include field for added key (unless the file was + added directly to git due to annex.largefiles configuration.) + (Also done by add --json and import --json) + * registerurl: Check if a remote claims the url, same as addurl does. + * Bug fix: Git config settings passed to git-annex -c did not always take + effect. + * assistant: Use udisks2 dbus events to detect when disks are mounted, + instead of relying on gnome/kde stuff that is not stable. + * Fix build with QuickCheck 2.8.2 + * matchexpression: New plumbing command to check if a preferred content + expression matches some data. + * Removed the webapp-secure build flag, rolling it into the webapp build + flag. + * Removed the quvi, tahoe, feed, and tfds build flags, adding + aeson feed and regex-tdfa to the core dependencies. + * Roll the dns build flag into the assistant build flag. + * Debian: Avoid building debug package, since gdb is not often useful + to debug haskell programs. + + -- Joey Hess <id@joeyh.name> Tue, 26 Jan 2016 14:57:42 -0400 + +git-annex (6.20160114) unstable; urgency=medium + + "hexapodia as the key insight" + + * Added v6 repository mode, but v5 is still the default for now. + * unlock, lock: In v6 mode, unlocking a file changes it from a symlink to a + pointer file, and this change can be committed to the git repository. + For details, see http://git-annex.branchable.com/tips/unlocked_files/ + * The upgrade to version 6 is not done fully automatically yet, because + upgrading a direct mode repository to version 6 will prevent old + versions of git-annex from working in other clones of that repository. + For details, see http://git-annex.branchable.com/upgrades/ + * init: --version parameter added to control which supported repository + version to use. + * init, upgrade: Configure .git/info/attributes to use git-annex + as a smudge filter. In v6 repository mode, this makes git add + add files to the annex in unlocked mode, unless overridden by + annex.largefiles configuration. + * assistant: In v6 mode, adds files in unlocked mode, so they can + continue to be modified. + * Added annex.thin setting, which makes unlocked files in v6 repositories + be hard linked to their content, instead of a copy. This saves disk + space but means any modification of an unlocked file will lose the local + (and possibly only) copy of the old version. + * Enable annex.thin by default on upgrade from direct mode to v6, since + direct mode made the same tradeoff. + * fix: Adjusts unlocked files as configured by annex.thin. + * persistent-sqlite is now a hard build dependency, since v6 repository + mode needs it. + + + * status: On crippled filesystems, was displaying M for all annexed files + that were present. Probably caused by a change to what git status + displays in this situation. Fixed by treating files git thinks are + modified the same as typechanged files. + * addurl: Added --batch and --with-files options. + * addurl: Support --json, particularly useful in --batch mode. + * addurl: Refuse to overwrite any existing, non-annexed file. + * Debian: Adjust build dependencies for webapp, DAV. Now available on + mips, mipsel, but temporarily removed armel since build is failing + there. + * info: Fix "backend usage" numbers, which were counting present keys + twice. + * info --json: Improve json for "backend usage", using a nested object + with fields for each backend instead of the previous weird nested lists. + This may break existing parsers of this json output, if there were any. + * whereis --json: Make url list be included in machine-parseable form. + * test: Added --keep-failures option. + * unused: Bug fix when a new file was added to the annex, and then + removed (but not git rmed). git still has the add staged in this case, + so the content should not be unused and was wrongly treated as such. + * migrate: Copy over metadata to new key. + * rekey: No longer copies over urls from the old to the new key. + It makes sense for migrate to do that, but not for this low-level + (and little used) plumbing command to. + * view: Fix crash in non-unicode capable locale when entering a view + of metadata containing a slash or backslash. + * When annex.http-headers is used to set the User-Agent header, avoid + sending User-Agent: git-annex + * Windows: Fix rsync cross-drive hack to work with msys2 rsync. + Thanks, Pieter Kitslaar. + + -- Joey Hess <id@joeyh.name> Thu, 14 Jan 2016 10:14:19 -0400 + +git-annex (5.20151218) unstable; urgency=medium + + * Add S3 features to git-annex version output. + * webdav: When testing the WebDAV server, send a file with content. + The empty file it was sending tickled bugs in some php WebDAV server. + * fsck: Failed to honor annex.diskreserve when checking a remote. + * Debian: Build depend on concurrent-output. + * Fix insecure temporary permissions when git-annex repair is used in + in a corrupted git repository. + * Fix potential denial of service attack when creating temp dirs. + + -- Joey Hess <id@joeyh.name> Fri, 18 Dec 2015 12:09:33 -0400 + +git-annex (5.20151208) unstable; urgency=medium + + * Build with -j1 again to get reproducible build. + * Display progress meter in -J mode when copying from a local git repo, + to a local git repo, and from a remote git repo. + * Display progress meter in -J mode when downloading from the web. + * map: Improve display of git remotes with non-ssh urls, including http + and gcrypt. + * When core.sharedRepository is set, annex object files are not made mode + 444, since that prevents a user other than the file owner from locking + them. Instead, a mode such as 664 is used in this case. + * tahoe: Include tahoe capabilities in whereis display. + * import: Changed to honor annex.largefiles settings. + * addurl, importfeed: Changed to honor annex.largefiles settings, + when the content of the url is downloaded. (Not when using --fast or + --relaxed.) + * webapp: Fix bugs that could result in a relative path such as "." + being written to ~/.config/git-annex/autostart, and ignore any such + relative paths in the file. + This was a reversion caused by the relative path changes in 5.20150113. + * dropunused: Make more robust when trying to drop an object that has + already been dropped. + * Fix reversion in handling of long filenames, particularly when using + addurl/importfeed, which was introduced in the previous release. + + -- Joey Hess <id@joeyh.name> Tue, 08 Dec 2015 11:14:03 -0400 + +git-annex (5.20151116) unstable; urgency=medium + + * Use concurrent-output library when configured with -fConcurrentOutput. + This allows nicely displayed messages when using the -J flag. + * Additional commands now support the -J flag: + fsck, drop, add, addurl, import + * import: Avoid very ugly error messages when the directory files + are imported to is not a directort, but perhaps an annexed file. + * Concurrent progress bars are now displayed when using -J with a command + that moves file contents around. + * Fix race that could result in an annexed file's symlink not being + created, when eg, running concurrent git-annex adds. + * add: Fix error recovery rollback to not move the injested file content + out of the annex back to the file, because other files may point to + that same content. Instead, copy the injected file content out to + recover. + * quvi may output utf-8 encoded data when the conifigured locale doesn't + support that; avoid crashing on such invalid encoding. + * runshell: Avoid failing when $HOME/.ssh does not exist and cannot be + created. + * Make the git-annex-standalone.deb prevent runshell from installing + wrappers into $HOME/.ssh + * Make git-annex-standalone.deb include the git-annex html documentation, + desktop file, and base completion file, same as the regular git-annex.deb. + * fsck: When fscking a dead repo, avoid incorrect "fixing location log" + message, and display a warning about it being dead, since it's unusual + to have access to a dead repo. + * assistant: Pass ssh-options through 3 more git pull/push calls + that were missed before. + * Added annex.pidlock and annex.pidlocktimeout configuration to support + filesystems where POSIX fcntl locks cannot be used. + * init: Automatically enable annex.pidlock when necessary. + + -- Joey Hess <id@joeyh.name> Mon, 16 Nov 2015 14:17:40 -0400 + +git-annex (5.20151102.1) unstable; urgency=medium + + * Avoid installing desktop file and program file if cabal install + git-annex is run as root, since that is not a systemwide install, + but to /root, and so generating a systemwide desktop file is not right. + * When cabal install is run with the desktop file location not writable, + display a warning, but continue successfully. + + -- Joey Hess <id@joeyh.name> Tue, 03 Nov 2015 12:08:38 -0400 + +git-annex (5.20151102) unstable; urgency=medium + + * Use statvfs on OSX. + * Symlink timestamp preservation code uses functions + from unix-2.7.0 when available, which should be more portable. + * enableremote: List uuids and descriptions of remotes that can be + enabled, and accept either the uuid or the description in leu if the + name. + * Catch up with current git behavior when both repo and repo.git exist; + it seems it now prefers repo in this case, although historically it may + have preferred repo.git. + * Fix failure to build with aws-0.13.0. + * When built with aws-0.13.0, the S3 special remote can be used to create + google nearline buckets, by setting storageclass=NEARLINE. + + -- Joey Hess <id@joeyh.name> Mon, 02 Nov 2015 12:41:20 -0400 + +git-annex (5.20151019) unstable; urgency=medium + + * Fix a longstanding, but unlikely to occur bug, where dropping + a file from a remote could race with other drops of the same file, + and result in all copies of its content being lost. + * git-annex-shell: Added lockcontent command, to prevent dropping of + a key's content. This is necessary due to the above bugfix. + * In some cases, the above bugfix changes what git-annex allows you to + drop: + - When a file is present in several special remotes, + but not in any accessible git repositories, dropping it from one of + the special remotes will now fail. Instead, the file has to be + moved from one of the special remotes to the git repository, and can + then safely be dropped from the git repository. + - If a git remote has too old a version of git-annex-shell installed, + git-annex won't trust it to hold onto a copy of a file when dropping + that file from the local git repository. + * Changed drop ordering when using git annex sync --content or the + assistant, to drop from remotes first and from the local repo last. + This works better with the behavior changes to drop in many cases. + * Do verification of checksums of annex objects downloaded from remotes. + * When annex objects are received into git repositories from other git + repos, their checksums are verified then too. + * To get the old, faster, behavior of not verifying checksums, set + annex.verify=false, or remote.<name>.annex-verify=false. + * setkey, rekey: These commands also now verify that the provided file + matches the expected checksum of the key, unless annex.verify=false. + * reinject: Already verified content; this can now be disabled by + setting annex.verify=false. + * sync, merge, assistant: When git merge failed for a reason other + than a conflicted merge, such as a crippled filesystem not allowing + particular characters in filenames, git-annex would make a merge commit + that could omit such files or otherwise be bad. Fixed by aborting the + whole merge process when git merge fails for any reason other than a + merge conflict. + * Allow building with S3 disabled again. + * Ported disk free space checking code to work on Solaris. + * Windows webapp: Fix support for entering password when setting + up a ssh remote. + * copy --auto was checking the wrong repo's preferred content. + (--from was checking what --to should, and vice-versa.) + Fixed this bug, which was introduced in version 5.20150727. + * Avoid unncessary write to the location log when a file is unlocked + and then added back with unchanged content. + * S3: Fix support for using https. + * Avoid displaying network transport warning when a ssh remote + does not yet have an annex.uuid set. + * Debian: Add torrent library to build-depends as it's packaged now, + and stop recommending bittornado | bittorrent. + * Debian: Remove build dependency on transformers library, as it is now + included in ghc. + * Debian: Remove menu file, since a desktop file is provided and + lintian says there can be only one. + + -- Joey Hess <id@joeyh.name> Mon, 19 Oct 2015 13:59:01 -0400 + +git-annex (5.20150930) unstable; urgency=medium + + * Added new linux standalone "ancient" build to support kernels + like 2.6.32. + * info: Don't allow use in a non-git-annex repository, since it + uses the git-annex branch and would create it if it were missing. + * assistant: When updating ~/.ssh/config, preserve any symlinks. + * webapp: Remove the "disable remote" feature from the UI. + * S3: When built with aws-0.13.0, supports using more storage classes. + In particular, storageclass=STANDARD_IA to use Amazon's + new Infrequently Accessed storage, and storageclass=NEARLINE + to use Google's NearLine storage. + * Improve ~/.ssh/config modification code to not add trailing spaces + to lines it cannot parse. + * Fix a crash at direct mode merge time when .git/index doesn't exist + yet. Triggered by eg, git-annex sync --no-commit in a fresh clone of + a repository. + * status: Show added but not yet committed files. + * Added stack.yaml to support easy builds from source with stack. + + -- Joey Hess <id@joeyh.name> Wed, 30 Sep 2015 14:31:52 -0400 + +git-annex (5.20150916) unstable; urgency=medium + + * Fix Windows build to work with ghc 7.10. + * init: Fix reversion in detection of repo made with git clone --shared + * info: Support querying info of individual files in direct mode. + * unused: Fix reversion in 5.20150727 that broke parsing of the + --unused-refspec option. Thanks, Øyvind A. Holm. + * Make full option parsing be done when not in a git repo, so --help + can be displayed for commands that require a git repo, etc. + * fsck: Work around bug in persistent that broke display of + problematically encoded filenames on stderr when using --incremental. + * When gpg.program is configured, it's used to get the command to run + for gpg. Useful on systems that have only a gpg2 command or want to + use it instead of the gpg command. + * Windows: Switched to using git for Windows, rather than msysgit. + Using msysgit with git-annex is no longer supported. + * Windows: Even when the user neglects to tell the git installer to + add git to PATH, git-annex will still work from within the git bash + shell, and the webapp can be used too. + * sync: Add --no-commit, --no-pull, --no-push options to turn off parts of + the sync process, as well as supporting --commit, --pull, --push, and + --no-content options to specify the (current) default behavior. + * annex.hardlink extended to also try to use hard links when copying from + the repository to a remote. + * Improve bash completion, so it completes names of remotes and backends + in appropriate places. + * Special remotes configured with autoenable=true will be automatically + enabled when git-annex init is run. + * Fix bug in combination of preferred and required content settings. + When one was set to the empty string and the other set to some expression, + this bug caused all files to be wanted, instead of only files matching + the expression. + + -- Joey Hess <id@joeyh.name> Wed, 16 Sep 2015 10:31:24 -0400 + +git-annex (5.20150824) unstable; urgency=medium + + * Sped up downloads of files from ssh remotes, reducing the + non-data-transfer overhead 6x. + * sync: Support --jobs + * sync --content: Avoid unnecessary second pull from remotes when + no file transfers are made. + * External special remotes can now be built that can be used in readonly + mode, where git-annex downloads content from the remote using regular + http. + * Added WHEREIS to external special remote protocol. + * importfeed --relaxed: Avoid hitting the urls of items in the feed. + * Fix reversion in init when ran as root, introduced in version 5.20150731. + * Reorder declaration to fix build with yesod-core > 1.4.13. + Thanks, Michael Alan Dorman. + * Fix building without quvi and without database. + Thanks, Ben Boeckel. + * Avoid building the assistant on the hurd, since an inotify equivalent + is not yet implemented in git-annex for the hurd. + * --debug log messages are now timestamped with fractional seconds. + * --debug is passed along to git-annex-shell when git-annex is in debug mode. + * Makefile: Pass LDFLAGS, CFLAGS, and CPPFLAGS through ghc and on to + ld, cc, and cpp. + * As a result of the Makefile changes, the Debian package is built + with various hardening options. Although their benefit to a largely + haskell program is unknown. + + -- Joey Hess <id@joeyh.name> Mon, 24 Aug 2015 14:11:05 -0700 + +git-annex (5.20150812) unstable; urgency=medium + + * Added support for SHA3 hashed keys (in 8 varieties), when git-annex is + built using the cryptonite library. + * metadata: Fix reversion introduced in 5.20150727 that caused recursive + display of metadata to not work. + * Windows: Fix bug that caused git-annex sync to fail due to missing + environment variable. + * Fix setting/setting/viewing metadata that contains unicode or other + special characters, when in a non-unicode locale. + * Simplify setup process for a ssh remote. Now it suffices to run git + remote add, followed by git-annex sync. Now the remote is automatically + initialized for use by git-annex, where before the git-annex branch had + to manually be pushed before using git-annex sync. Note that this + involved changes to git-annex-shell, so if the remote is using an old + version, the manual push is still needed. + * git-annex-shell: Don't let configlist auto-init repository when in + readonly mode. + * Perform a clean shutdown when --time-limit is reached. + This includes running queued git commands, and cleanup actions normally + run when a command is finished. + * fsck: Commit incremental fsck database when --time-limit is reached. + Previously, some of the last files fscked did not make it into the + database when using --time-limit. + * fsck: Commit incremental fsck database after every 1000 files + fscked, or every 5 minutes, whichever comes first. Previously, + commits were made every 1000 files fscked. + * Linux standalone: Work around problem that prevented it from working + properly if unpacked into a directory that contains ":" or ";" in its + name. + * proxy: Fix proxy git commit of non-annexed files in direct mode. + * proxy: If a non-proxied git command, such as git revert + would normally fail because of unstaged files in the work tree, + make the proxied command fail the same way. + * proxy: Fix removal of files deleted by the proxied command. + * proxy: Fix behavior when run in subdirectory of git repo. + * Improve Setup.hs file so that cabal copy --destdir works. + Thanks, Magnus Therning. + * Tighten dependency on optparse-applicative to 0.11.0. + * Added back debian/cabal-wrapper, since it still seems needed after all. + + -- Joey Hess <id@joeyh.name> Wed, 12 Aug 2015 11:14:58 -0400 + +git-annex (5.20150731) unstable; urgency=medium + + * webapp: Support enabling known gitlab.com remotes. + * Fix rsync special remote to work when -Jn is used for concurrent + uploads. + * The last release accidentially removed a number of options from the + copy command. (-J, file matching options, etc). These have been added + back. + * init: Detect when the filesystem is crippled such that it ignores + attempts to remove the write bit from a file, and enable direct mode. + Seen with eg, NTFS fuse on linux. + * Fix man page installation by cabal install; all the new man pages are + now installed. + + -- Joey Hess <id@joeyh.name> Fri, 31 Jul 2015 11:34:36 -0400 + +git-annex (5.20150727) unstable; urgency=medium + + * Fix bug that prevented uploads to remotes using new-style chunking + from resuming after the last successfully uploaded chunk. + * Switched option parsing to use optparse-applicative. This was a very large + and invasive change, and may have caused some minor behavior changes to + edge cases of option parsing. (For example, the metadata command no + longer accepts the combination of --get and --set, which never actually + worked.) + * Bash completion file is now included in the git-annex source tree, + and installed into Debian package (and any other packages built using make + install). This bash completion is generated by the option parser, so it + covers all commands, all options, and will never go out of date! + * As well as tab completing "git-annex" commands, "git annex" will also tab + complete. However, git's bash completion script needs a patch, + which I've submitted, for this to work prefectly. + * version --raw now works when run outside a git repository. + * assistant --startdelay now works when run outside a git repository. + * dead now accepts multiple --key options. + * addurl now accepts --prefix and --suffix options to adjust the + filenames used. + * sync --content: Fix bug that caused files to be uploaded to eg, + more archive remotes than wanted copies, only to later be dropped + to satisfy the preferred content settings. + * importfeed: Improve detection of known items whose url has changed, + and avoid adding redundant files. Where before this only looked at + permalinks in rss feeds, it now also looks at guids. + * importfeed: Look at not only permalinks, but now also guids + to identify previously downloaded files. + * Webapp: Now features easy setup of git-annex repositories on gitlab.com. + * Adjust debian build deps: The webapp can now build on arm64, s390x + and hurd-i386. WebDAV support is also available on those architectures. + * Debian package now maintained by Richard Hartmann. + * Support building without persistent database on for systems that + lack TH. This removes support for incremental fsck. + + -- Joey Hess <id@joeyh.name> Mon, 27 Jul 2015 12:24:49 -0400 + +git-annex (5.20150710) unstable; urgency=medium + + * add: Stage symlinks the same as git add would, even if they are not a + link to annexed content. + * sync: When annex.autocommit=false, avoid making any commit of local + changes, while still merging with remote to the extent possible. + * unused: --used-refspec can now be configured to look at refs in the + reflog. 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. + * log: Fix reversion introduced in version 5.20150528 that broke this command. + * assistant --autostart: First stop any daemons that are already running, + which might be left over from a previous login session and so unable to + use the ssh agent of a new login session. + * assistant: Fix local pairing to not include newline in ssh pubkey, + which is rejected on the other end for security reasons. + * assistant: Fix ANNEX_SHELL_DIR written to ~/.ssh/authorized_keys + in local pairing to be the absolute path to the repository, not "." + This was a reversion caused by the relative path changes in 5.20150113. + * Brought back the setkey plumbing command that was removed in 2011, since + we found a use case for it. Note that the command's syntax was changed + for consistency. + * bugfix: Pass --full-tree when using git ls-files to get a list of files + on the git-annex branch, so it works when run in a subdirectory. + This bug affected git-annex unused, and potentially also transitions + running code and other things. + * Support git's undocumented core.sharedRepository=2 value, which + is equivalent to "world", and is set when a repo was created using + git init --shared=world. + * When building on linux, pass --as-needed to linker to avoid linking + with unused shared libraries including libyaml. + * import: Fix failure of cross-device import on Windows. + * merge: Avoid creating the synced/master branch. + * Removed support for optparse-applicative versions older than 0.10. + + -- Joey Hess <id@joeyh.name> Fri, 10 Jul 2015 16:36:42 -0400 + +git-annex (5.20150617) unstable; urgency=medium + + * Now supports git annex sync --all --content to sync all versions of all + files with all repos that want them. + * Added new "anything" preferred content expression, which matches all + versions of all files. + * Standard preferred content for client, backup, incremental backup, + and unwanted groups have been adjusted to work better when used + with git annex sync --all --content. + * fromkey, registerurl: Improve handling of urls that happen to also + be parsable as strange keys. + * sync, remotedaemon: Pass configured ssh-options even when + annex.sshcaching is disabled. + * assistant: Consume systemd-networkd dbus events to learn about + changes to network connections, as was already done with + network-manager and wicd. + Thanks to Sebastian Reuße for the patches. + * get --incomplete: New option to resume any interrupted downloads. + * dead --key: Can be used to mark a key as dead. + * fsck: Ignore keys that are known to be dead when running in + --all/--unused/--key mode or a in a bare repo. Closes: #753888 + Otherwise, still reports files with lost contents, even if the content + is dead. + * S3: Special remotes can be configured with public=yes to allow + the public to access the bucket's content. + * S3: Publically accessible buckets can be used without creds. + * import --clean-duplicates: Fix bug that didn't count local or trusted + repo's copy of a file as one of the necessary copies to allow removing + it from the import location. + * tahoe: Use ~/.tahoe-git-annex/ rather than ~/.tahoe/git-annex/ + when setting up a tahoe special remote to avoid old versions of + tahoe create-client choking. + * Fix bug that prevented enumerating locally present objects in repos + tuned with annex.tune.objecthash1=true. + Fixes: unused, object count in info, unannex. + * Improve url parsing to handle some urls containing illegal [] + characters in their paths. + * info: Added json output for "backend usage", "numcopies stats", + "repositories containing these files", and "transfers in progress". + * Fix incremental backup standard preferred content expression to match + its documentation, which says it does not want files that have reached + a backup repository. + * Increased the default annex.bloomaccuracy from 1000 to 10000000. + This makes git annex unused use up to 16 mb more memory than it did + before, but the massive increase in accuracy makes this worthwhile + for all but the smallest systems. + * Build documentation with deterministic=1 for reproducible builds. + (A new ikiwiki feature.) Closes: #785736 + * Re-remove dependency on obsolete hamlet package. Closes: #786659 + * debian/cabal-wrapper: Removed this hack which should not be needed anymore. + + -- Joey Hess <id@joeyh.name> Wed, 17 Jun 2015 13:50:35 -0400 + +git-annex (5.20150528) unstable; urgency=medium + + * fromkey, registerurl: Allow urls to be specified instead of keys, + and generate URL keys. + * Linux standalone, OSX app: Improve runshell script to always quote + shell vars, so that it will work when eg, untarred into a directory + path with spaces in its name. + * Revert removal dependency on obsolete hamlet package, since the + autobuilders are not ready for this change yet and it prevented them + from building the webapp. Reopens: #786659 + * fsck: When checksumming a file fails due to a hardware fault, + the file is now moved to the bad directory, and the fsck proceeds. + Before, the fsck immediately failed. + * Linux standalone: The webapp was not built in the previous release, + this release fixes that oversight. + + -- Joey Hess <id@joeyh.name> Thu, 28 May 2015 10:48:03 -0400 + +git-annex (5.20150522) unstable; urgency=medium + + * import: Refuse to import files that are within the work tree, as that + does not make sense and could cause data loss. + * drop: Now supports --all, --unused, and --key. + * drop: Now defaults to --all when run in a bare repository. + (Previously, did nothing when run in a bare repository.) + * get, move, copy, mirror: Concurrent transfers are now supported! + For example: git-annex get -J10 + However, progress bars are not yet displayed for concurrent transfers, + pending an updated version of the ascii-progress library. + * --quiet now makes progress output by rsync, wget, etc be quiet too. + * Take space that will be used by other running downloads into account when + checking annex.diskreserve. + * Avoid accumulating transfer failure log files unless the assistant is + being used. + * Fix an unlikely race that could result in two transfers of the same key + running at once. + * Stale transfer lock and info files will be cleaned up automatically + when get/unused/info commands are run. + * unused: Add --used-refspec option and annex.used-refspec, which can + specify a set of refs to consider used, rather than the default of + considering all refs used. + * webapp: Fix zombie xdg-open process left when opening file browser. + Closes: #785498 + * Safer posix fctnl locking implementation, using lock pools and STM. + * Build documentation with TZ=UTC for reproducible builds. See #785736. + * OSX: Corrected the location of trustedkeys.gpg, so the built-in + upgrade code will find it. Fixes OSX upgrade going forward, but + older versions won't upgrade themselves due to this problem. + * Remove dependency on obsolete hamlet package. Closes: #786659 + + -- Joey Hess <id@joeyh.name> Fri, 22 May 2015 14:20:18 -0400 + +git-annex (5.20150508.1) unstable; urgency=medium + + * Now builds cleanly using ghc 7.10 (as well as ghc back to 7.6). + * Imrovements to the git-annex-standalone.deb build process. + (Thanks, Yaroslav Halchenko) + + -- Joey Hess <id@joeyh.name> Mon, 11 May 2015 12:08:58 -0400 + +git-annex (5.20150508) unstable; urgency=medium + + * Improve behavior when a git-annex command is told to operate + on a file that doesn't exist. It will now continue to other + files specified after that on the command line, and only error out at + the end. + * S3: Enable debug logging when annex.debug or --debug is set. + * S3: git annex info will show additional information about a S3 remote + (endpoint, port, storage class) + * S3: Let git annex enableremote be used, without trying to recreate + a bucket that should already exist. + * S3: Fix incompatability with bucket names used by hS3; the aws library + cannot handle upper-case bucket names. git-annex now converts them to + lower case automatically. + * import: Check for gitignored files before moving them into the tree. + (Needs git 1.8.4 or newer.) + * import: Don't stop entire import when one file fails due to being + gitignored or conflicting with something in the work tree. + * import: Before removing a duplicate file in --deduplicate or + --clean-duplicates mode, verify that enough copies of its content still + exist. + * Improve integration with KDE's file manager to work with dolphin + version 14.12.3 while still being compatable with 4.14.2. + Thanks, silvio. + * assistant: Added --autostop to complement --autostart. + * Work around wget bug #784348 which could cause it to clobber git-annex + symlinks when downloading from ftp. + * Support checking ftp urls for file presence. + * Fix bogus failure of fsck --fast. + * fsck: Ignore error recording the fsck in the activity log, + which can happen when running fsck in a read-only repository. + Closes: #698559 + (fsck can still need to write to the repository if it find problems, + but a successful fsck can be done read-only) + * Improve quvi 0.4 output parsing to handle cases wher there is no known + filename extension. This is currently the case when using quvi with + youtube. In this case, the extension ".m" will be used. + * Dropped support for older versions of yesod, warp, and dbus than the ones + in Debian Jessie. + * Switch from the obsolete dataenc library for base64 encoding to sandi. + (Thanks, Magnus Therning) + * Debian's ghc now supports TH on arm! Adjust build dependencies + to build the webapp on arm, and enable DAV support on arm. \o/ + * Adjust some other arch specific build dependencies that are now + available on more architectures in Devian unstable. + * Windows: Remove cygwin ssh, the newer version of which has stopped + honoring the setting of HOME. Instead, copy msysgit's ssh into PATH. + Note that setting up a remote ssh server using password authentication + is known to be broken in this release on Windows. + * Windows: Roll back to an older version of rsync from cygwin. + The newer version has some dependency on a newer ssh from cygwin. + + -- Joey Hess <id@joeyh.name> Fri, 08 May 2015 13:42:30 -0400 + +git-annex (5.20150420) unstable; urgency=medium + + * Fix activity log parsing, which caused the log to not retain + activity from other uuids. + * Union merge could fall over if there was a file in the repository + with the same name as a git ref. Now fixed. + * info dir: Added information about repositories that + contain files in the specified directory. + * info: Added --bytes option. + * bittorrent: Fix handling of magnet links. + * When a key's size is unknown, still check the annex.diskreserve, + and avoid getting content if the disk is too full. + * Fix fsck --from a git remote in a local directory, and from + a directory special remote. + This was a reversion caused by the relative path changes in 5.20150113. + * fsck --from remote: When bad content is found in the remote, + and the local repo does not have a copy of the content, preserve + the bad content in .git/annex/bad/ to avoid further data loss. + * fsck --from remote: Avoid downloading a key if it would go over + the annex.diskreserve limit. + * required: New command, like wanted, but for required content. + * Removed dependency on haskell SHA library, + instead using cryptohash >= 0.11.0. + * Make repo init more robust. + * New debian/rules build-standalone target, which generates a + git-annex-standalone.deb that should work on many old Debian etc + systems. Thanks, Yaroslav Halchenko. + * Windows: Renamed start menu file to avoid loop in some versions + of Windows where the menu file is treated as a git-annex program. + * Windows: Fixed support of remotes on other drives. + (A reversion introduced in version 5.20150113.) + * Windows: Bundled versions of rsync, wget, ssh, and gpg from + cygwin all updated. Thanks, Yury V. Zaytsev. + + -- Joey Hess <id@joeyh.name> Mon, 20 Apr 2015 14:44:04 -0400 + +git-annex (5.20150409) unstable; urgency=medium + + * This fixes a bug in the assistant introduced by the literal pathspec + changes in version 5.20150406. + * --quiet now suppresses progress displays from eg, rsync. + (Second time's the charm..) + * fromkey, registerurl: When reading from stdin, allow the + filename and url, respectively, to contain whitespace. + * add: If annex.largefiles is set and does not match a file that's being + added, the file will be checked into git rather than being added to the + annex. Previously, git annex add skipped over such files; this new + behavior is more useful in direct mode. + * proxy: Made it work when run in a new repository before initial + commit. + * info: Display repository mode: bare when in a bare (non-direct mode) + repo. + * importfeed: Fix feed download when curl is used. + * importfeed: Error out when passed a non-url. + * webapp: When adding another local repository, and combining it + with the current repository, the new repository's remote path + was set to "." rather than the path to the current repository. + This was a reversion caused by the relative path changes in 5.20150113. + * contentlocationn: New plumbing command. + + -- Joey Hess <id@joeyh.name> Thu, 09 Apr 2015 15:06:38 -0400 + +git-annex (5.20150406.1) unstable; urgency=medium + + * Fixes a bug in the last release that caused rsync and possibly + other commands to hang at the end of a file transfer. + (--quiet is back to not blocking progress displays until + that code can be fixed properly.) + + -- Joey Hess <id@joeyh.name> Mon, 06 Apr 2015 17:13:13 -0400 + +git-annex (5.20150406) unstable; urgency=medium + + * Prevent git-ls-files from double-expanding wildcards when an + unexpanded wildcard is passed to a git-annex command like add or find. + * Fix make build target. Thanks, Justin Geibel. + * Fix GETURLS in external special remote protocol to strip + downloader prefix from logged url info before checking for the + specified prefix. + * importfeed: Avoid downloading a redundant item from a feed whose + permalink has been seen before, even when the url has changed. + * importfeed: Always store itemid in metadata; before this was only + done when annex.genmetadata was set. + * Relax debian package dependencies to git >= 1:1.8.1 rather + than needing >= 1:2.0. + * test: Fix --list-tests + * addurl --file: When used with a special remote that claims + urls and checks their contents, don't override the user's provided + filename with filenames that the special remote suggests. Also, + don't allow adding the url if the special remote says it contains + multiple files. + * import: --deduplicate and --cleanduplicates now output the keys + corresponding to duplicated files they process. + * expire: New command, for expiring inactive repositories. + * fsck: Record fsck activity for use by expire command. + * Fix truncation of parameters that could occur when using xargs git-annex. + * Significantly sped up processing of large numbers of directories + passed to a single git-annex command. + * version: Add --raw + * init: Improve fifo test to detect NFS systems that support fifos + but not well enough for sshcaching. + * --quiet now suppresses progress displays from eg, rsync. + (The option already suppressed git-annex's own built-in progress + displays.) + + -- Joey Hess <id@joeyh.name> Mon, 06 Apr 2015 12:48:48 -0400 + +git-annex (5.20150327) unstable; urgency=medium + + * readpresentkey: New plumbing command for checking location log. + * checkpresentkey: New plumbing command to check if a key can be verified + to be present on a remote. + * Added a post-update-annex hook, which is run after the git-annex branch + is updated. Needed for git update-server-info. + * migrate: --force will force migration of keys already using the + destination backend. Useful in rare cases. + * Man pages for individual commands now available, and can be + opened using "git annex help <command>" + * --auto is no longer a global option; only get, drop, and copy + accept it. (Not a behavior change unless you were passing it to a + command that ignored it.) + * Improve error message when --in @date is used and there is no + reflog for the git-annex branch. + * assistant: Committing a whole lot of files at once could overflow + command-line length limits and cause the commit to fail. This + only happened when using the assistant in an indirect mode repository. + * Work around curl bug when asked to download an empty url to a file. + * Fix bug introduced in the last release that broke git-annex sync + when git-annex was installed from the standalone tarball. + + -- Joey Hess <id@joeyh.name> Fri, 27 Mar 2015 13:10:59 -0400 + +git-annex (5.20150317) unstable; urgency=medium + + * fsck: Incremental fsck uses sqlite to store its records, instead + of abusing the sticky bit. Existing sticky bits are ignored; + incremental fscks started by old versions won't be resumed by + this version. + * fsck: Multiple incremental fscks of different repos (including remotes) + can now be running at the same time in the same repo without it + getting confused about which files have been checked for which remotes. + * unannex: Refuse to unannex when repo is too new to have a HEAD, + since in this case there must be staged changes in the index + (if there is anything to unannex), and the unannex code path + needs to run with a clean index. + * Linux standalone: Set LOCPATH=/dev/null to work around + https://ghc.haskell.org/trac/ghc/ticket/7695 + This prevents localization from working, but git-annex + is not localized anyway. + * sync: As well as the synced/git-annex push, attempt a + git-annex:git-annex push, as long as the remote branch + is an ancestor of the local branch, to better support bare git repos. + (This used to be done, but it forgot to do it since version 4.20130909.) + * When re-execing git-annex, use current program location, rather than + ~/.config/git-annex/program, when possible. + * Submodules are now supported by git-annex! + * metadata: Fix encoding problem that led to mojibake when storing + metadata strings that contained both unicode characters and a space + (or '!') character. + * Also potentially fixes encoding problem when embedding credentials + that contain unicode characters. + * sync: Fix committing when in a direct mode repo that has no HEAD ref. + (For example, a newly checked out git submodule.) + * Added SETURIPRESENT and SETURIMISSING to external special remote protocol, + useful for things like ipfs that don't use regular urls. + * addurl: Added --raw option, which bypasses special handling of quvi, + bittorrent etc urls. + * git-annex-shell: Improve error message when the specified repository + doesn't exist or git config fails for some reason. + * fromkey --force: Skip test that the key has its content in the annex. + * fromkey: Add stdin mode. + * registerurl: New plumbing command for mass-adding urls to keys. + * remotedaemon: Fixed support for notifications of changes to gcrypt + remotes, which was never tested and didn't quite work before. + + -- Joey Hess <id@joeyh.name> Tue, 17 Mar 2015 13:02:36 -0400 + +git-annex (5.20150219) unstable; urgency=medium + + * glacier: Detect when the glacier command in PATH is the wrong one, + from boto, rather than from glacier-cli, and refuse to use it, + since the boto program fails to fail when passed + parameters it does not understand. + * groupwanted: New command to set the groupwanted preferred content + expression. + * import: Support file matching options such as --exclude, --include, + --smallerthan, --largerthan + * The file matching options are now only accepted by commands that + can actually use them, instead of by all commands. + * import: Avoid checksumming file twice when run in the default + or --duplicate mode. + * Windows: Fix bug in dropping an annexed file, which + caused a symlink to be staged that contained backslashes. + * webapp: Fix reversion in opening webapp when starting it manually + inside a repository. + * assistant: Improve sanity check for control characters when pairing. + * Improve race recovery code when committing to git-annex branch. + * addurl: Avoid crash if quvi is not installed, when git-annex was + built with process-1.2 + * bittorrent: Fix mojibake introduced in parsing arai2c progress output. + * fsck --from: If a download from a remote fails, propagate the failure. + * metadata: When setting metadata, do not recurse into directories by + default, since that can be surprising behavior and difficult to recover + from. The old behavior is available by using --force. + * sync, assistant: Include repository name in head branch commit message. + * The ssh-options git config is now used by gcrypt, rsync, and ddar + special remotes that use ssh as a transport. + * sync, assistant: Use the ssh-options git config when doing git pull + and push. + * remotedaemon: Use the ssh-options git config. + * Linux standalone: Improved process names of linker shimmed programs. + + -- Joey Hess <id@joeyh.name> Thu, 19 Feb 2015 14:16:03 -0400 + +git-annex (5.20150205) unstable; urgency=medium + + * info: Can now display info about a given uuid. + * Added to remote/uuid info: Count of the number of keys present + on the remote, and their size. This is rather expensive to calculate, + so comes last and --fast will disable it. + * info remote: Include the date of the last sync with the remote. + * sync: Added --message/-m option like git commit. + * remotedaemon: Fix problem that could prevent ssh connections being + made after two LOSTNET messages were received in a row (perhaps due to + two different network interfaces being brought down). + * Fix build failure when wget is not installed. + * Fix wording of message displayed when unable to get a file that + is available in untrusted repositories. + * addurl: When a Content-Disposition header suggests a filename to use, + addurl will consider using it, if it's reasonable and doesn't conflict + with an existing file. (--file overrides this) + * Fix default repository description created by git annex init, + which got broken by the relative path changes in the last release. + * init: Repository tuning parameters can now be passed when initializing a + repository for the first time. For details, see + http://git-annex.branchable.com/tuning/ + * merge: Refuse to merge changes from a git-annex branch of a repo + that has been tuned in incompatible ways. + * Support annex.tune.objecthash1, annex.tune.objecthashlower, and + annex.tune.branchhash1. + * Remove support for building without cryptohash. + * Added MD5 and MD5E backends. + * assistant: Fix local pairing when ssh pubkey comment contains spaces. + * Avoid using fileSize which maxes out at just 2 gb on Windows. + Instead, use hFileSize, which doesn't have a bounded size. + Fixes support for files > 2 gb on Windows. + * Windows: Fix running of the pre-commit-annex hook. + * Windows: Fix S3 special remote; need to call withSocketsDo. Thanks, Trent. + + -- Joey Hess <id@joeyh.name> Thu, 05 Feb 2015 14:08:33 -0400 + +git-annex (5.20150113) unstable; urgency=medium + + * unlock: Don't allow unlocking files that have never been committed to git + before, to avoid an intractable problem that prevents the pre-commit + hook from telling if such a file is intended to be an annexed file or not. + * Avoid re-checksumming when migrating from hash to hashE backend. + Closes: #774494 + * Fix build with process 1.2.1.0. + * Android: Provide a version built with -fPIE -pie to support Android 5.0. + * sync: Fix an edge case where syncing in a bare repository would try to + merge and so fail. + * Check git version at runtime, rather than assuming it will be the same + as the git version used at build time when running git-checkattr and + git-branch remove. + * Switch to using relative paths to the git repository. + - 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. + * Generate shorter keys for WORM and URL, avoiding keys that are longer + than used for SHA256, so as to not break on systems like Windows that + have very small maximum path length limits. + * Bugfix: A file named HEAD in the work tree could confuse some git commands + run by git-annex. + + -- Joey Hess <id@joeyh.name> Tue, 13 Jan 2015 12:10:08 -0400 + +git-annex (5.20141231) unstable; urgency=medium + + * vicfg: Avoid crashing on badly encoded config data. + * Work around statfs() overflow on some XFS systems. + * sync: Now supports remote groups, the same way git remote update does. + * setpresentkey: A new plumbing-level command. + * Run shutdown cleanup actions even if there were failures processing + the command. Among other fixes, this means that addurl will stage + added files even if adding one of the urls fails. + * bittorrent: Fix locking problem when using addurl file:// + * Windows: Fix local rsync filepath munging (fixes 26 test suite failures). + * Windows: Got the rsync special remote working. + * Windows: Fix handling of views of filenames containing '%' + * OSX: Switched away from deprecated statfs64 interface. + + -- Joey Hess <id@joeyh.name> Wed, 31 Dec 2014 15:15:46 -0400 + +git-annex (5.20141219) unstable; urgency=medium + + * Webapp: When adding a new box.com remote, use the new style chunking. + Thanks, Jon Ander Peñalba. + * External special remote protocol now includes commands for setting + and getting the urls associated with a key. + * Urls can now be claimed by remotes. This will allow creating, + for example, a external special remote that handles magnet: and + *.torrent urls. + * Use wget -q --show-progress for less verbose wget output, + when built with wget 1.16. + * Added bittorrent special remote. + * addurl behavior change: When downloading an url ending in .torrent, + it will download files from bittorrent, instead of the old behavior + of adding the torrent file to the repository. + * Added Recommends on aria2. + * When possible, build with the haskell torrent library for parsing + torrent files. As a fallback, can instead use btshowmetainfo from + bittornado | bittorrent. + * Fix build with -f-S3. + + -- Joey Hess <id@joeyh.name> Fri, 19 Dec 2014 16:53:26 -0400 + +git-annex (5.20141203) unstable; urgency=medium + + * proxy: New command for direct mode repositories, allows bypassing + the direct mode guard in a safe way to do all sorts of things + including git revert, git mv, git checkout ... + * undo: New command to undo the most recent change to a file + or to the contents of a directory. + * Add undo action to nautilus and konqueror integration. + * diffdriver: New git-annex command, to make git external diff drivers + work with annexed files. + * pre-commit: Block partial commit of unlocked annexed file, since + that left a typechange staged in index due to some infelicity of git's + handling of partial commits. + * Work around behavior change in lsof 4.88's -F output format. + * S3: Switched to using the haskell aws library. + * S3: No longer buffers entire files in memory when uploading without + chunking. + * S3: When built with a new enough version of the haskell aws library, + supports doing multipart uploads, in order to store extremely large + files in S3 when not using chunking. + * Don't show "(gpg)" when decrypting the remote encryption cipher, + since this could be taken to read that's the only time git-annex + runs gpg, which is not the case. + * Debian package is now maintained by Gergely Nagy. + * Windows: Remove Alt+A keyboard shortcut, which turns out to have scope + outside the menus. + * Windows: Install ssh and other bundled programs to Git/cmd, + instead of Git/bin, since the latter is not in the default msysgit PATH. + + -- Joey Hess <id@joeyh.name> Wed, 03 Dec 2014 15:16:52 -0400 + +git-annex (5.20141125) unstable; urgency=medium + + * Remove fixup code for bad bare repositories created by + versions 5.20131118 through 5.20131127. That fixup code would + accidentially fire when --git-dir was incorrectly + pointed at the working tree of a git-annex repository, + possibly resulting in data loss. Closes: #768093 + * Windows: Fix crash when user.name is not set in git config. + + -- Joey Hess <joeyh@debian.org> Wed, 05 Nov 2014 11:41:51 -0400 + +git-annex (5.20141024) unstable; urgency=medium + + * vicfg: Deleting configurations now resets to the default, where + before it has no effect. + * Remove hurd stuff from cabal file, since hackage currently rejects + it, and the test suite fails on hurd. + * initremote: Don't allow creating a special remote that has the same + name as an existing git remote. + * Windows: Use haskell setenv library to clean up several ugly workarounds + for inability to manipulate the environment on windows. This includes + making git-annex not re-exec itself on start on windows, and making the + test suite on Windows run tests without forking. + * glacier: Fix pipe setup when calling glacier-cli to retrieve an object. + * info: When run on a single annexed file, displays some info about the + file, including its key and size. + * info: When passed the name or uuid of a remote, displays info about that + remote. Remotes that support encryption, chunking, or embedded + creds will include that in their info. + * enableremote: When the remote has creds, update the local creds cache + file. Before, the old version of the creds could be left there, and + would continue to be used. + + -- Joey Hess <joeyh@debian.org> Fri, 24 Oct 2014 13:03:29 -0400 + +git-annex (5.20141013) unstable; urgency=medium + + * Adjust cabal file to support building w/o assistant on the hurd. + * Support building with yesod 1.4. + * S3: Fix embedcreds=yes handling for the Internet Archive. + * map: Handle .git prefixed remote repos. Closes: #614759 + * repair: Prevent auto gc from happening when fetching from a remote. + + -- Joey Hess <joeyh@debian.org> Mon, 13 Oct 2014 10:13:06 -0400 + +git-annex (5.20140927) unstable; urgency=medium + + * Really depend (not just build-depend) on new enough git for --no-gpg-sign + to work. Closes: #763057 + * Add temporary workaround for bug #763078 which broke building on armel + and armhf. + + -- Joey Hess <joeyh@debian.org> Sat, 27 Sep 2014 14:25:09 -0400 + +git-annex (5.20140926) unstable; urgency=high + + * Depend on new enough git for --no-gpg-sign to work. Closes: #762446 + * Work around failure to build on mips by using cabal, not Setup, + to build in debian/rules. + + -- Joey Hess <joeyh@debian.org> Fri, 26 Sep 2014 15:09:02 -0400 + +git-annex (5.20140919) unstable; urgency=high + + * Security fix for S3 and glacier when using embedcreds=yes with + encryption=pubkey or encryption=hybrid. CVE-2014-6274 + The creds embedded in the git repo were *not* encrypted. + git-annex enableremote will warn when used on a remote that has + this problem. For details, see: + https://git-annex.branchable.com/upgrades/insecure_embedded_creds/ + * assistant: Detect when repository has been deleted or moved, and + automatically shut down the assistant. Closes: #761261 + * Windows: Avoid crashing trying to list gpg secret keys, for gcrypt + which is not yet supported on Windows. + * WebDav: Fix enableremote crash when the remote already exists. + (Bug introduced in version 5.20140817.) + * add: In direct mode, adding an annex symlink will check it into git, + as was already done in indirect mode. + + -- Joey Hess <joeyh@debian.org> Fri, 19 Sep 2014 12:53:42 -0400 + +git-annex (5.20140915) unstable; urgency=medium + + * New annex.hardlink setting. Closes: #758593 + * init: Automatically detect when a repository was cloned with --shared, + and set annex.hardlink=true, as well as marking the repository as + untrusted. + * Fix parsing of ipv6 address in git remote address when it was not + formatted as an url. + * The annex-rsync-transport configuration is now also used when checking + if a key is present on a rsync remote, and when dropping a key from + the remote. + * Promote file not found warning message to an error. + * Fix transfer lock file FD leak that could occur when two separate + git-annex processes were both working to perform the same set of + transfers. + * sync: Ensure that pending changes to git-annex branch are committed + before push when in direct mode. (Fixing a very minor reversion.) + * WORM backend: Switched to include the relative path to the file inside + the repository, rather than just the file's base name. Note that if you're + relying on such things to keep files separate with WORM, you should really + be using a better backend. + * Rather than crashing when there's a problem with the requested bloomfilter + capacity/accuracy, fall back to a reasonable default bloom filter size. + * Fix build with optparse-applicative 0.10. Closes: #761484 + * webapp: Fixed visual glitch in xmpp pairing that was reported live by a + user who tracked me down in front of a coffee cart in Portland. + (New bug reporting method of choice?) + + -- Joey Hess <joeyh@debian.org> Mon, 15 Sep 2014 10:45:00 -0400 + +git-annex (5.20140831) unstable; urgency=medium + + * Make --help work when not in a git repository. Closes: #758592 + * Ensure that all lock fds are close-on-exec, fixing various problems with + them being inherited by child processes such as git commands. + * When accessing a local remote, shut down git-cat-file processes + afterwards, to ensure that remotes on removable media can be unmounted. + Closes: #758630 + * Fix handing of autocorrection when running outside a git repository. + * Fix stub git-annex test support when built without tasty. + * Do not preserve permissions and acls when copying files from + one local git repository to another. Timestamps are still preserved + as long as cp --preserve=timestamps is supported. Closes: #729757 + + -- Joey Hess <joeyh@debian.org> Sun, 31 Aug 2014 12:30:08 -0700 + +git-annex (5.20140817) unstable; urgency=medium + + * New chunk= option to chunk files stored in special remotes. + Supported by: directory, S3, webdav, gcrypt, rsync, and all external + and hook special remotes. + * Partially transferred files are automatically resumed when using + chunked remotes! + * The old chunksize= option is deprecated. Do not use for new remotes. + * Legacy code for directory remotes using the old chunksize= option + will keep them working, but more slowly than before. + * webapp: Automatically install Konqueror integration scripts + to get and drop files. + * repair: Removing bad objects could leave fsck finding no more + unreachable objects, but some branches no longer accessible. + Fix this, including support for fixing up repositories that + were incompletely repaired before. + * Fix cost calculation for non-encrypted remotes. + * Display exception message when a transfer fails due to an exception. + * WebDAV: Sped up by avoiding making multiple http connections + when storing a file. + * WebDAV: Avoid buffering whole file in memory when uploading and + downloading. + * WebDAV: Dropped support for DAV before 1.0. + * testremote: New command to test uploads/downloads to a remote. + * Dropping an object from a bup special remote now deletes the git branch + for the object, although of course the object's content cannot be deleted + due to the nature of bup. + * unlock: Better error handling; continue past files that are not available + or cannot be unlocked due to disk space, and try all specified files. + * Windows: Now uses actual inode equivilants in new direct mode + repositories, for safer detection of eg, renaming of files with the same + size and mtime. + * direct: Fix ugly warning messages. + * WORM backend: When adding a file in a subdirectory, avoid including the + subdirectory in the key name. + * S3, Glacier, WebDAV: Fix bug that prevented accessing the creds + when the repository was configured with encryption=shared embedcreds=yes. + * direct: Avoid leaving file content in misctemp if interrupted. + * git-annex-shell sendkey: Don't fail if a remote asks for a key to be sent + that already has a transfer lock file indicating it's being sent to that + remote. The remote may have moved between networks, or reconnected. + * Switched from the old haskell HTTP library to http-conduit. + + -- Joey Hess <joeyh@debian.org> Sun, 17 Aug 2014 10:30:58 -0400 + +git-annex (5.20140717) unstable; urgency=high + + * Fix minor FD leak in journal code. Closes: #754608 + * direct: Fix handling of case where a work tree subdirectory cannot + be written to due to permissions. + * migrate: Avoid re-checksumming when migrating from hashE to hash backend. + * uninit: Avoid failing final removal in some direct mode repositories + due to file modes. + * S3: Deal with AWS ACL configurations that do not allow creating or + checking the location of a bucket, but only reading and writing content to + it. + * resolvemerge: New plumbing command that runs the automatic merge conflict + resolver. + * Deal with change in git 2.0 that made indirect mode merge conflict + resolution leave behind old files. + * sync: Fix git sync with local git remotes even when they don't have an + annex.uuid set. (The assistant already did so.) + * Set gcrypt-publish-participants when setting up a gcrypt repository, + to avoid unncessary passphrase prompts. + This is a security/usability tradeoff. To avoid exposing the gpg key + ids who can decrypt the repository, users can unset + gcrypt-publish-participants. + * Install nautilus hooks even when ~/.local/share/nautilus/ does not yet + exist, since it is not automatically created for Gnome 3 users. + * Windows: Move .vbs files out of git\bin, to avoid that being in the + PATH, which caused some weird breakage. (Thanks, divB) + * Windows: Fix locking issue that prevented the webapp starting + (since 5.20140707). + + -- Joey Hess <joeyh@debian.org> Thu, 17 Jul 2014 11:27:25 -0400 + +git-annex (5.20140709) unstable; urgency=medium + + * Fix race in direct mode merge code that could cause all files in the + repository to be removed. It should be able to recover repositories + experiencing this bug without data loss. See: + http://git-annex.branchable.com/bugs/bad_merge_commit_deleting_all_files/ + * Fix git version that supported --no-gpg-sign. + * Fix bug in automatic merge conflict resolution, when one side is an + annexed symlink, and the other side is a non-annexed symlink. + * Really fix bug that caused the assistant to make many unncessary + empty merge commits. + + -- Joey Hess <joeyh@debian.org> Wed, 09 Jul 2014 15:28:03 -0400 + +git-annex (5.20140707) unstable; urgency=medium + + * assistant: Fix bug, introduced in last release, that caused the assistant + to make many unncessary empty merge commits. + * assistant: Fix one-way assistant->assistant sync in direct mode. + * Fix bug in annex.queuesize calculation that caused much more + queue flushing than necessary. + * importfeed: When annex.genmetadata is set, metadata from the feed + is added to files that are imported from it. + * Support users who have set commit.gpgsign, by disabling gpg signatures + for git-annex branch commits and commits made by the assistant. + * Fix memory leak when committing millions of changes to the git-annex + branch, eg after git-annex add has run on 2 million files in one go. + * Support building with bloomfilter 2.0.0. + * Run standalone install process when the assistant is started + (was only being run when the webapp was opened). + * Android: patch git to avoid fchmod, which fails on /sdcard. + * Windows: Got rid of that pesky DOS box when starting the webapp. + * Windows: Added Startup menu item so assistant starts automatically + on login. + * Windows: Fix opening file browser from webapp when repo is in a + directory with spaces. + * Windows: Assistant now logs to daemon.log. + + -- Joey Hess <joeyh@debian.org> Mon, 07 Jul 2014 12:24:13 -0400 + +git-annex (5.20140613) unstable; urgency=medium + + * Ignore setsid failures. + * Avoid leaving behind .tmp files when failing in some cases, including + importing files to a disk that is full. + * Avoid bad commits after interrupted direct mode sync (or merge). + * Fix build with wai 0.3.0. + * Deal with FAT's low resolution timestamps, which in combination with + Linux's caching of higher res timestamps while a FAT is mounted, caused + direct mode repositories on FAT to seem to have modified files after + they were unmounted and remounted. + * Windows: Fix opening webapp when repository is in a directory with + spaces in the path. + * Detect when Windows has lost its mind in a timezone change, and + automatically apply a delta to the timestamps it returns, to get back to + sane values. + + -- Joey Hess <joeyh@debian.org> Fri, 13 Jun 2014 09:58:07 -0400 + +git-annex (5.20140606) unstable; urgency=medium + + * webapp: When adding a new local repository, fix bug that caused its + group and preferred content to be set in the current repository, + even when not combining. + * webapp: Avoid stomping on existing description, group and + preferred content settings when enabling or combining with + an already existing remote. + * assistant: Make sanity checker tmp dir cleanup code more robust. + * unused: Avoid checking view branches for unused files. + * webapp: Include ssh port in mangled hostname. + * Windows: Fix bug introduced in last release that caused files + in the git-annex branch to have lines teminated with \r. + * Windows: Fix retrieving of files from local bare git repositories. + + -- Joey Hess <joeyh@debian.org> Fri, 06 Jun 2014 12:54:06 -0400 + +git-annex (5.20140529) unstable; urgency=medium + + * Fix encoding of data written to git-annex branch. Avoid truncating + unicode characters to 8 bits. Allow any encoding to be used, as with + filenames (but utf8 is the sane choice). Affects metadata and repository + descriptions, and preferred content expressions. + * assistant: When there are multiple remotes giving different ways + to access the same repository, honor remote cost settings and use + the cheapest available. + * webapp: More robust startup when annex directory is not a git repo. + * initremote/enableremote: Basic support for using with regular git remotes; + initremote stores the location of an already existing git remote, + and enableremote setups up a remote using its stored location. + * webapp: Support for enabling known git repositories on ssh servers. + The repository must have been added using initremote. + * webapp: When setting up a ssh remote, record it using initremote, + so that it can be easily enabled elsewhere. + * webapp: When setting up a ssh remote, if the user inputs ~/foo, + normalize that to foo, since it's in the home directory by default. + * Use exceptions in place of deprecated MonadCatchIO-transformers + Thanks, Ben Gamari. + * android: Run busybox install with -s, since some versions of Android + prohibit making hard links. + * Android webapp: Fix EvilSplicer bugs that mangled the css files, + preventing icons from displaying, and also slightly broke the js files. + + -- Joey Hess <joeyh@debian.org> Thu, 29 May 2014 14:41:56 -0400 + +git-annex (5.20140517) unstable; urgency=medium + + * webapp: Switched to bootstrap 3. + Thanks, Sören Brunk. + * Standalone builds now check gpg signatures before upgrading. + * Simplified repository description line format. The remote name, + if any, is always in square brackets after the description. + * assistant: Clean up stale tmp files on startup. + * webapp: Better ssh password prompting. + * Depend on git-remote-gcrypt 0.20130908-6. Older versions + fail when the assistant is run with no controlling tty. + * Added ddar special remote. + Thanks, Robie Basak. + * webapp: Fixed drag and drop to reorder the list of remotes. + * group: When no groups are specified to set, lists the current groups + of a repository. + * Add remote.$name.annex-shell configuration. + Thanks, Fraser Tweedale + * Support symlinking git-annex and git-annex-shell + from the Linux standalone bundle into PATH. + Thanks, jlebar. + + -- Joey Hess <joeyh@debian.org> Sat, 17 May 2014 13:30:39 -0400 + +git-annex (5.20140421) unstable; urgency=medium + + * assistant: Now detects immediately when other repositories push + changes to a ssh remote, and pulls. + ** XMPP is no longer needed in this configuration! ** + This requires the remote server have git-annex-shell with + notifychanges support (>= 5.20140405) + * webapp: Show a network signal icon next to ssh and xmpp remotes that + it's currently connected with. + * webapp: Rework xmpp nudge to prompt for either xmpp or a ssh remote + to be set up. + * sync, assistant, remotedaemon: Use ssh connection caching for git pushes + and pulls. + * remotedaemon: When network connection is lost, close all cached ssh + connections. + * Improve handling of monthly/yearly scheduling. + * Avoid depending on shakespeare except for when building the webapp. + * uninit: Avoid making unncessary copies of files. + * info: Allow use in a repository where annex.uuid is not set. + * reinit: New command that can initialize a new repository using + the configuration of a previously known repository. + Useful if a repository got deleted and you want + to clone it back the way it was. + * drop --from: When local repository is untrusted, its copy of a file does + not count. + * Bring back rsync -p, but only when git-annex is running on a non-crippled + file system. This is a better approach to fix #700282 while not + unncessarily losing file permissions on non-crippled systems. + * webapp: Start even if the current directory is listed in + ~/.config/git-annex/autostart but no longer has a git repository in it. + * findref: New command, like find but shows files in a specified git ref. + * webapp: Fix UI for removing XMPP connection. + * When init detects that git is not configured to commit, and sets + user.email to work around the problem, also make it set user.name. + * webapp: Support using git-annex on a remote server, which was installed + from the standalone tarball or OSX app, and so does not have + git-annex in PATH (and may also not have git or rsync in PATH). + * standalone tarball, OSX app: Install a ~/.ssh/git-annex-wrapper, which + can be used to run git-annex, git, rsync, etc. + + -- Joey Hess <joeyh@debian.org> Sun, 20 Apr 2014 19:43:14 -0400 + +git-annex (5.20140412) unstable; urgency=high + + * Last release didn't quite fix the high cpu issue in all cases, this should. + + -- Joey Hess <joeyh@debian.org> Fri, 11 Apr 2014 17:14:38 -0400 + +git-annex (5.20140411) unstable; urgency=high + + * importfeed: Filename template can now contain an itempubdate variable. + Needs feed 0.3.9.2. + * Fix rsync progress parsing in locales that use comma in number display. + Closes: #744148 + * assistant: Fix high CPU usage triggered when a monthly fsck is scheduled, + and the last time the job ran was a day of the month > 12. This caused a + runaway loop. Thanks to Anarcat for his assistance, and to Maximiliano + Curia for identifying the cause of this bug. + * Remove wget from OSX dmg, due to issues with cert paths that broke + git-annex automatic upgrading. Instead, curl is used, unless the + OSX system has wget installed, which will then be used. + + -- Joey Hess <joeyh@debian.org> Fri, 11 Apr 2014 14:59:49 -0400 + +git-annex (5.20140405) unstable; urgency=medium + + * git-annex-shell: Added notifychanges command. + * Improve display of dbus notifications. Thanks, Johan Kiviniemi. + * Fix nautilus script installation to not crash when the nautilus script dir + does not exist. Instead, only install scripts when the directory already + exists. + + -- Joey Hess <joeyh@debian.org> Sat, 05 Apr 2014 16:54:33 -0400 + +git-annex (5.20140402) unstable; urgency=medium + + * unannex, uninit: Avoid committing after every file is unannexed, + for massive speedup. + * --notify-finish switch will cause desktop notifications after each + file upload/download/drop completes + (using the dbus Desktop Notifications Specification) + * --notify-start switch will show desktop notifications when each + file upload/download starts. + * webapp: Automatically install Nautilus integration scripts + to get and drop files. + * tahoe: Pass -d parameter before subcommand; putting it after + the subcommand no longer works with tahoe-lafs version 1.10. + (Thanks, Alberto Berti) + * forget --drop-dead: Avoid removing the dead remote from the trust.log, + so that if git remotes for it still exist anywhere, git annex info + will still know it's dead and not show it. + * git-annex-shell: Make configlist automatically initialize + a remote git repository, as long as a git-annex branch has + been pushed to it, to simplify setup of remote git repositories, + including via gitolite. + * add --include-dotfiles: New option, perhaps useful for backups. + * Version 5.20140227 broke creation of glacier repositories, + not including the datacenter and vault in their configuration. + This bug is fixed, but glacier repositories set up with the broken + version of git-annex need to have the datacenter and vault set + in order to be usable. This can be done using git annex enableremote + to add the missing settings. For details, see + http://git-annex.branchable.com/bugs/problems_with_glacier/ + * Added required content configuration. + * assistant: Improve ssh authorized keys line generated in local pairing + or for a remote ssh server to set environment variables in an + alternative way that works with the non-POSIX fish shell, as well + as POSIX shells. + + -- Joey Hess <joeyh@debian.org> Wed, 02 Apr 2014 16:42:53 -0400 + +git-annex (5.20140320) unstable; urgency=medium + + * Fix zombie leak and general inneficiency when copying files to a + local git repo. + * Fix ssh connection caching stop method to work with openssh 6.5p1, + which broke the old method. + * webapp: Added a "Sync now" item to each repository's menu. + * webapp: Use securemem for constant time auth token comparisons. + * copy --fast --to remote: Avoid printing anything for files that + are already believed to be present on the remote. + * Commands that allow specifying which repository to act on using + the repository's description will now fail when multiple repositories + match, rather than picking a repository at random. + (So will --in=) + * Better workaround for problem umasks when eg, setting up ssh keys. + * "standard" can now be used as a first-class keyword in preferred content + expressions. For example "standard or (include=otherdir/*)" + * groupwanted can be used in preferred content expressions. + * vicfg: Allows editing preferred content expressions for groups. + * Improve behavior when unable to parse a preferred content expression + (thanks, ion). + * metadata: Add --get + * metadata: Support --key option (and some other ones like --all) + * For each metadata field, there's now an automatically maintained + "$field-lastchanged" that gives the date of the last change to that + field. Also the "lastchanged" field for the date of the last change + to any of a file's metadata. + * unused: In direct mode, files that are deleted from the work tree + and so have no content present are no longer incorrectly detected as + unused. + * Avoid encoding errors when using the unused log file. + * map: Fix crash when one of the remotes of a repo is a local directory + that does not exist, or is not a git repo. + * repair: Improve memory usage when git fsck finds a great many broken + objects. + * Windows: Fix some filename encoding bugs. + * rsync special remote: Fix slashes when used on Windows. + + -- Joey Hess <joeyh@debian.org> Thu, 20 Mar 2014 13:21:12 -0400 + +git-annex (5.20140306) unstable; urgency=high + + * sync: Fix bug in direct mode that caused a file that was not + checked into git to be deleted when there was a conflicting + merge with a remote. + * webapp: Now supports HTTPS. + * webapp: No longer supports a port specified after --listen, since + it was buggy, and that use case is better supported by setting up HTTPS. + * annex.listen can be configured, instead of using --listen + * annex.startupscan can be set to false to disable the assistant's startup + scan. + * Probe for quvi version at run time. + * webapp: Filter out from Switch Repository list any + repositories listed in autostart file that don't have a + git directory anymore. (Or are bare) + * webapp: Refuse to start in a bare git repository. + * assistant --autostart: Refuse to start in a bare git repository. + * webapp: Don't list the public repository group when editing a + git repository; it only makes sense for special remotes. + * view, vfilter: Add support for filtering tags and values out of a view, + using !tag and field!=value. + * vadd: Allow listing multiple desired values for a field. + * view: Refuse to enter a view when no branch is currently checked out. + * metadata: To only set a field when it's not already got a value, use + -s field?=value + * Run .git/hooks/pre-commit-annex whenever a commit is made. + * sync: Automatically resolve merge conflict between and annexed file + and a regular git file. + * glacier: Pass --region to glacier checkpresent. + * webdav: When built with a new enough haskell DAV (0.6), disable + the http response timeout, which was only 5 seconds. + * webapp: Include no-pty in ssh authorized_keys lines. + * assistant: Smarter log file rotation, which takes free disk space + into account. + + -- Joey Hess <joeyh@debian.org> Thu, 06 Mar 2014 12:28:04 -0400 + +git-annex (5.20140227) unstable; urgency=medium + + * metadata: Field names limited to alphanumerics and a few whitelisted + punctuation characters to avoid issues with views, etc. + * metadata: Field names are now case insensative. + * When constructing views, metadata is available about the location of the + file in the view's reference branch. Allows incorporating parts of the + directory hierarchy in a view. + For example `git annex view tag=* podcasts/=*` makes a view in the form + tag/showname. + * --metadata field=value can now use globs to match, and matches + case insensatively, the same as git annex view field=value does. + * annex.genmetadata can be set to make git-annex automatically set + metadata (year and month) when adding files. + * Make annex.web-options be used in several places that call curl. + * Fix handling of rsync remote urls containing a username, + including rsync.net. + * Preserve metadata when staging a new version of an annexed file. + * metadata: Support --json + * webapp: Fix creation of box.com and Amazon S3 and Glacier + repositories, broken in 5.20140221. + * webdav: When built with DAV 0.6.0, use the new DAV monad to avoid + locking files, which is not needed by git-annex's use of webdav, and + does not work on Box.com. + * webdav: Fix path separator bug when used on Windows. + * repair: Optimise unpacking of pack files, and avoid repeated error + messages about corrupt pack files. + * Add build dep on regex-compat to fix build on mipsel, which lacks + regex-tdfa. + * Disable test suite on sparc, which is missing optparse-applicative. + * Put non-object tmp files in .git/annex/misctmp, leaving .git/annex/tmp + for only partially transferred objects. + + -- Joey Hess <joeyh@debian.org> Thu, 27 Feb 2014 11:34:19 -0400 + +git-annex (5.20140221) unstable; urgency=medium + + * metadata: New command that can attach metadata to files. + * --metadata can be used to limit commands to acting on files + that have particular metadata. + * Preferred content expressions can use metadata=field=value + to limit them to acting on files that have particular metadata. + * view: New command that creates and checks out a branch that provides + a structured view of selected metadata. + * vfilter, vadd, vpop, vcycle: New commands for operating within views. + * pre-commit: Update metadata when committing changes to locations + of annexed files within a view. + * Add progress display for transfers to/from external special remotes. + * unused: Fix to actually detect unused keys when in direct mode. + * fsck: When run with --all or --unused, while .gitattributes + annex.numcopies cannot be honored since it's operating on keys + instead of files, make it honor the global numcopies setting, + and the annex.numcopies git config setting. + * trust, untrust, semitrust, dead: Warn when the trust level is + overridden in .git/config. + * glacier: Do not try to run glacier value create when an existing glacier + remote is enabled. + * fsck: Refuse to do anything if more than one of --incremental, --more, + and --incremental-schedule are given, since it's not clear which option + should win. + * Windows webapp: Can set up box.com, Amazon S3, and rsync.net remotes + * Windows webapp: Can create repos on removable drives. + * Windows: Ensure HOME is set, as needed by bundled cygwin utilities. + + -- Joey Hess <joeyh@debian.org> Fri, 21 Feb 2014 11:23:59 -0400 + +git-annex (5.20140210) unstable; urgency=medium + + * --in can now refer to files that were located in a repository at + some past date. For example, --in="here@{yesterday}" + * Fixed direct mode annexed content locking code, which is used to + guard against recursive file drops. + * This is the first beta-level release of the Windows port with important + fixes (see below). + (The webapp and assistant are still alpha-level on Windows.) + * sync --content: Honor annex-ignore configuration. + * sync: Don't try to sync with xmpp remotes, which are only currently + supported when using the assistant. + * sync --content: Re-pull from remotes after downloading content, + since that can take a while and other changes may be pushed in the + meantime. + * sync --content: Reuse smart copy code from copy command, including + handling and repairing out of date location tracking info. + Closes: #737480 + * sync --content: Drop files from remotes that don't want them after + getting them. + * sync: Fix bug in automatic merge conflict resolution code when used + on a filesystem not supporting symlinks, which resulted in it losing + track of the symlink bit of annexed files. + * Added ways to configure rsync options to be used only when uploading + or downloading from a remote. Useful to eg limit upload bandwidth. + * Fix initremote with encryption=pubkey to work with S3, glacier, webdav, + and external special remotes. + * Avoid building with DAV 0.6 which is badly broken (see #737902). + * Fix dropping of unused keys with spaces in their name. + * Fix build on platforms not supporting the webapp. + * Document in man page that sshcaching uses ssh ControlMaster. + Closes: #737476 + * Windows: It's now safe to run multiple git-annex processes concurrently + on Windows; the lock files have been sorted out. + * Windows: Avoid using unix-compat's rename, which refuses to rename + directories. + * Windows: Fix deletion of repositories by test suite and webapp. + * Windows: Test suite 100% passes again. + * Windows: Fix bug in symlink calculation code. + * Windows: Fix handling of absolute unix-style git repository paths. + * Android: Avoid crashing when unable to set file mode for ssh config file + due to Android filesystem horribleness. + + -- Joey Hess <joeyh@debian.org> Mon, 10 Feb 2014 12:54:57 -0400 + +git-annex (5.20140127) unstable; urgency=medium + + * sync --content: New option that makes the content of annexed files be + transferred. Similar to the assistant, this honors any configured + preferred content expressions. + * Remove --json option from commands not supporting it. + * status: Support --json. + * list: Fix specifying of files to list. + * Allow --all to be mixed with matching options like --copies and --in + (but not --include and --exclude). + * numcopies: New command, sets global numcopies value that is seen by all + clones of a repository. + * The annex.numcopies git config setting is deprecated. Once the numcopies + command is used to set the global number of copies, any annex.numcopies + git configs will be ignored. + * assistant: Make the prefs page set the global numcopies. + * Add lackingcopies, approxlackingcopies, and unused to + preferred content expressions. + * Client, transfer, incremental backup, and archive repositories + now want to get content that does not yet have enough copies. + * Client, transfer, and source repositories now do not want to retain + unused file contents. + * assistant: Checks daily for unused file contents, and when possible + moves them to a repository (such as a backup repository) that + wants to retain them. + * assistant: annex.expireunused can be configured to cause unused + file contents to be deleted after some period of time. + * webapp: Nudge user to see if they want to expire old unused file + contents when a lot of them seem to be piling up in the repository. + * repair: Check git version at run time. + * assistant: Run the periodic git gc in batch mode. + * added annex.secure-erase-command config option. + * test suite: Use tasty-rerun, and expose tasty command-line options. + * Optimise non-bare http remotes; no longer does a 404 to the wrong + url every time before trying the right url. Needs annex-bare to be + set to false, which is done when initially probing the uuid of a + http remote. + * webapp: After upgrading a git repository to git-annex, fix + bug that made it temporarily not be synced with. + * whereis: Support --all. + * All commands that support --all also support a --key option, + which limits them to acting on a single key. + + -- Joey Hess <joeyh@debian.org> Mon, 27 Jan 2014 13:43:28 -0400 + +git-annex (5.20140117) unstable; urgency=medium + + * Really fix FTBFS on mipsel and sparc due to test suite not being available + on those architectures. + + -- Joey Hess <joeyh@debian.org> Fri, 17 Jan 2014 14:46:27 -0400 + +git-annex (5.20140116) unstable; urgency=medium + + * Added tahoe special remote. + * external special remote protocol: Added GETGITDIR, and GETAVAILABILITY. + * Refuse to build with git older than 1.7.1.1, which is needed for + git checkout -B + * map: Fix display of v5 direct mode repos. + * repair: Support old git versions from before git fsck --no-dangling was + implemented. + * Fix a long-standing bug that could cause the wrong index file to be used + when committing to the git-annex branch, if GIT_INDEX_FILE is set in the + environment. This typically resulted in git-annex branch log files being + committed to the master branch and later showing up in the work tree. + (These log files can be safely removed.) + * assistant: Detect if .git/annex/index is corrupt at startup, and + recover. + * repair: Fix bug in packed refs file exploding code that caused a .gitrefs + directory to be created instead of .git/refs + * Fix FTBFS on mipsel and sparc due to test suite not being available + on those architectures. + * Android: Avoid passing --clobber to busybox wget. + + -- Joey Hess <joeyh@debian.org> Thu, 16 Jan 2014 11:34:54 -0400 + +git-annex (5.20140107) unstable; urgency=medium + + * mirror: Support --all (and --unused). + * external special remote protocol: Added GETUUID, GETWANTED, SETWANTED, + SETSTATE, GETSTATE, DEBUG. + * Windows: Fix bug in direct mode merge code that could cause files + in subdirectories to go missing. + * Windows: Avoid eating stdin when running ssh to add a authorized key, + since this is used for password prompting. + * Avoid looping if long-running git cat-file or git hash-object crashes + and keeps crashing when restarted. + * Assistant: Remove stale MERGE_HEAD files in lockfile cleanup. + * Remotes can now be made read-only, by setting remote.<name>.annex-readonly + * wanted, schedule: Avoid printing "ok" after requested value. + * assistant: Ensure that .ssh/config and .ssh/authorized_keys are not + group or world writable when writing to those files, as that can make + ssh refuse to use them, if it allows another user to write to them. + * addurl, importfeed: Honor annex.diskreserve as long as the size of the + url can be checked. + * add: Fix rollback when disk is completely full. + * assistant: Fixed several minor memory leaks that manifested when + adding a large number of files. + * assistant: Start a new git-annex transferkeys process + after a network connection change, so that remotes that use a persistent + network connection are restarted. + * Adjust Debian build deps to match current state of sparc, mipsel. + + -- Joey Hess <joeyh@debian.org> Tue, 07 Jan 2014 12:22:18 -0400 + +git-annex (5.20131230) unstable; urgency=medium + + * Added new external special remote interface. + * importfeed: Support youtube playlists. + * Add tasty to build-depends, so that test suite builds again. + (tasty was stuck in incoming.) + * Fix typo in test suite. + * Fix bug in Linux standalone build's shimming that broke git-annex-shell. + * Include git-receive-pack, git-upload-pack, git, and git-shell wrappers + in the Linux standalone build, and OSX app, so they will be available + when it's added to PATH. + * addurl, importfeed: Sanitize | and some other symbols and special + characters. + * Auto-upgrade v3 indirect repos to v5 with no changes. + This also fixes a problem when a direct mode repo was somehow set to v3 + rather than v4, and so the automatic direct mode upgrade to v5 was not + done. + * Android: Avoid trying to use Android's own ionice, which does not + allow specifying a command to run. Fixes transferring files to/from + android and probably a few other things. + + -- Joey Hess <joeyh@debian.org> Mon, 30 Dec 2013 14:13:40 -0400 + +git-annex (5.20131221) unstable; urgency=low + + * assistant: Fix OSX-specific bug that caused the startup scan to try to + follow symlinks to other directories, and add their contents to the annex. + * assistant: Set StrictHostKeyChecking yes when creating ssh remotes, + and add it to the configuration for any ssh remotes previously created + by the assistant. This avoids repeated prompts by ssh if the host key + changes, instead syncing with such a remote will fail. Closes: #732602 + * Fix test suite to cover lock --force change. + * Add plumbing-level lookupkey and examinekey commands. + * find --format: Added hashdirlower, hashdirmixed, keyname, and mtime + format variables. + * assistant: Always batch changes found in startup scan. + * An armel Linux standalone build is now available, which includes the + webapp. + * Programs from Linux and OSX standalone builds can now be symlinked + into a directory in PATH as an alternative installation method, and will + use readlink to find where the build was unpacked. + * Include man pages in Linux and OSX standalone builds. + * Linux standalone build now includes its own glibc and forces the linker to + use it, to remove dependence on the host glibc. + + -- Joey Hess <joeyh@debian.org> Sat, 21 Dec 2013 12:00:17 -0400 + +git-annex (5.20131213) unstable; urgency=low + + * Avoid using git commit in direct mode, since in some situations + it will read the full contents of files in the tree. + * assistant: Batch jobs are now run with ionice and nocache, when + those commands are available. + * assistant: Run transferkeys as batch jobs. + * Automatically fix up bad bare repositories created by + versions 5.20131118 through 5.20131127. + * rsync special remote: Fix fallback mode for rsync remotes that + use hashDirMixed. Closes: #731142 + * copy --from, get --from: When --force is used, ignore the + location log and always try to get the file from the remote. + * Deal with box.com changing the url of their webdav endpoint. + * Android: Fix SRV record lookups for XMPP to use android getprop + command to find DNS server, since there is no resolv.conf. + * import: Add --skip-duplicates option. + * lock: Require --force. Closes: #731606 + * import: better handling of overwriting an existing file/directory/broken + link when importing + * Windows: assistant and webapp work! (very experimental) + * Windows: Support annex.diskreserve. + * Fix bad behavior in Firefox, which was caused by an earlier fix to + bad behavior in Chromium. + * repair: Improve repair of git-annex index file. + * repair: Remove damaged git-annex sync branches. + * status: Ignore new files that are gitignored. + * Fix direct mode's handling when modifications to non-annexed files + are pulled from a remote. A bug prevented the files from being updated + in the work tree, and this caused the modification to be reverted. + * OSX: Remove ssh and ssh-keygen from dmg as they're included in OSX by + default. + + -- Joey Hess <joeyh@debian.org> Fri, 13 Dec 2013 14:20:32 -0400 + +git-annex (5.20131130) unstable; urgency=low + + * init: Fix a bug that caused git annex init, when run in a bare + repository, to set core.bare=false. + + -- Joey Hess <joeyh@debian.org> Sat, 30 Nov 2013 16:32:35 -0400 + +git-annex (5.20131127.1) unstable; urgency=low + + * Rebuild that does not try to use quvi 0.9 from experimental. + + -- Joey Hess <joeyh@debian.org> Thu, 28 Nov 2013 07:57:36 -0400 + +git-annex (5.20131127) unstable; urgency=low + + * webapp: Detect when upgrades are available, and upgrade if the user + desires. + (Only when git-annex is installed using the prebuilt binaries + from git-annex upstream, not from eg Debian.) + * assistant: Detect when the git-annex binary is modified or replaced, + and either prompt the user to restart the program, or automatically + restart it. + * annex.autoupgrade configures both the above upgrade behaviors. + * Added support for quvi 0.9. Slightly suboptimal due to limitations in its + interface compared with the old version. + * Bug fix: annex.version did not get set on automatic upgrade to v5 direct + mode repo, so the upgrade was performed repeatedly, slowing commands down. + * webapp: Fix bug that broke switching between local repositories + that use the new guarded direct mode. + * Android: Fix stripping of the git-annex binary. + * Android: Make terminal app show git-annex version number. + * Android: Re-enable XMPP support. + * reinject: Allow to be used in direct mode. + * Futher improvements to git repo repair. Has now been tested in tens + of thousands of intentionally damaged repos, and successfully + repaired them all. + * Allow use of --unused in bare repository. + + -- Joey Hess <joeyh@debian.org> Wed, 27 Nov 2013 18:41:44 -0400 + +git-annex (5.20131120) unstable; urgency=low + + * Fix Debian package to not try to run test suite, since haskell-tasty + is not out of new or in Build-Depends yet. + * dropunused, addunused: Allow "all" instead of a range to + act on all unused data. + * Ensure execute bit is set on directories when core.sharedrepository is set. + * Ensure that core.sharedrepository is honored when creating the .git/annex + directory. + * Improve repair code in the case where the index file is corrupt, + and this hides other problems from git fsck. + + -- Joey Hess <joeyh@debian.org> Wed, 20 Nov 2013 12:54:18 -0400 + +git-annex (5.20131118) unstable; urgency=low + + * Direct mode repositories now have core.bare=true set, to prevent + accidentally running git commands that try to operate on the work tree, + and so do the wrong thing in direct mode. + * annex.version is now set to 5 for direct mode repositories. + This upgrade is handled fully automatically, no need to run + git annex upgrade + * The "status" command has been renamed to "info", to allow + "git annex status" to be used in direct mode repositories, now that + "git status" won't work in them. + * The -c option now not only modifies the git configuration seen by + git-annex, but it is passed along to every git command git-annex runs. + * watcher: Avoid loop when adding a file owned by someone else fails + in indirect mode because its permissions cannot be modified. + * webapp: Avoid encoding problems when displaying the daemon log file. + * webapp: Improve UI around remote that have no annex.uuid set, + either because setup of them is incomplete, or because the remote + git repository is not a git-annex repository. + * Include ssh-keygen in standalone bundle. + * Allow optionally configuring git-annex with -fEKG to enable awesome + remote monitoring interfaceat http://localhost:4242/ + * Fix bug that caused bad information to be written to the git-annex branch + when running describe or other commands with a remote that has no uuid. + * Work around Android linker problem that had prevented git-annex from + running on Android 4.3 and 4.4. + * repair: Handle case where index file is corrupt, but all objects are ok. + * assistant: Notice on startup when the index file is corrupt, and + auto-repair. + * Fix direct mode merge bug when a direct mode file was deleted and replaced + with a directory. An ordering problem caused the directory to not get + created in this case. + Thanks to Tim for the test case. + * Direct mode .git/annex/objects directories are no longer left writable, + because that allowed writing to symlinks of files that are not present, + which followed the link and put bad content in an object location. + Thanks to Tim for the test case. + * fsck: Fix up .git/annex/object directory permissions. + * Switched to the tasty test framework. + * Android: Adjust default .gitignore to ignore .thumbnails at any location + in the tree, not just at its top. + * webapp: Check annex.version. + + -- Joey Hess <joeyh@debian.org> Mon, 18 Nov 2013 10:45:43 -0400 + +git-annex (4.20131106) unstable; urgency=low + + * Improve local pairing behavior when two computers both try to start + the pairing process separately. + * sync: Work even when the local git repository is new and empty, + with no master branch. + * gcrypt, bup: Fix bug that prevented using these special remotes + with encryption=pubkey. + * Fix enabling of gcrypt repository accessed over ssh; + git-annex-shell gcryptsetup had a bug that caused it to fail + with permission denied. + * Fix zombie process that occurred when switching between repository + views in the webapp. + * map: Work when there are gcrypt remotes. + * Fix build w/o webapp. + * Fix exception handling bug that could cause .git/annex/index to be used + for git commits outside the git-annex branch. Known to affect git-annex + when used with the git shipped with Ubuntu 13.10. + + -- Joey Hess <joeyh@debian.org> Wed, 06 Nov 2013 11:17:47 -0400 + +git-annex (4.20131101) unstable; urgency=low + + * The "git annex content" command is renamed to "git annex wanted". + * New --want-get and --want-drop options which can be used to + test preferred content settings. + For example, "git annex find --in . --want-drop" + * assistant: When autostarted, wait 5 seconds before running the startup + scan, to avoid contending with the user's desktop login process. + * webapp: When setting up a bare shared repository, enable non-fast-forward + pushes. + * sync: Show a hint about receive.denyNonFastForwards when a push fails. + * directory, webdav: Fix bug introduced in version 4.20131002 that + caused the chunkcount file to not be written. Work around repositories + without such a file, so files can still be retreived from them. + * assistant: Automatically repair damanged git repository, if it can + be done without losing data. + * assistant: Support repairing git remotes that are locally accessible + (eg, on removable drives). + * add: Fix reversion in 4.20130827 when adding unlocked files that have + not yet been committed. + * unannex: New, much slower, but more safe behavior: Copies files out of + the annex. This avoids an unannex of one file breaking other files that + link to the same content. Also, it means that the content + remains in the annex using up space until cleaned up with + "git annex unused". + (The behavior of unannex --fast has not changed; it still hard links + to content in the annex. --fast was not made the default because it is + potentially unsafe; editing such a hard linked file can unexpectedly + change content stored in the annex.) + + -- Joey Hess <joeyh@debian.org> Fri, 01 Nov 2013 11:34:27 -0400 + +git-annex (4.20131024) unstable; urgency=low + + * webapp: Fix bug when adding a remote and git-remote-gcrypt + is not installed. + * The assitant can now run scheduled incremental fsck jobs on the local + repository and remotes. These can be configured using vicfg or with the + webapp. + * repair: New command, which can repair damaged git repositories + (even ones not using git-annex). + * webapp: When git repository damange is detected, repairs can be + done using the webapp UI. + * Automatically and safely detect and recover from dangling + .git/annex/index.lock files, which would prevent git from + committing to the git-annex branch, eg after a crash. + * assistant: Detect stale git lock files at startup time, and remove them. + * addurl: Better sanitization of generated filenames. + * Better sanitization of problem characters when generating URL and WORM + keys. + * The control socket path passed to ssh needs to be 17 characters + shorter than the maximum unix domain socket length, because ssh + appends stuff to it to make a temporary filename. Closes: #725512 + * status: Fix space leak in local mode, introduced in version 4.20130920. + * import: Skip .git directories. + * Remove bogus runshell loop check. + * addurl: Improve message when adding url with wrong size to existing file. + * Fixed handling of URL keys that have no recorded size. + * status: Fix a crash if a temp file went away while its size was + being checked for status. + * Deal with git check-attr -z output format change in git 1.8.5. + * Work around sed output difference that led to version containing a newline + on OSX. + * sync: Fix automatic resolution of merge conflicts where one side is an + annexed file, and the other side is a non-annexed file, or a directory. + * S3: Try to ensure bucket name is valid for archive.org. + * assistant: Bug fix: When run in a subdirectory, files from incoming merges + were wrongly added to that subdirectory, and removed from their original + locations. + * Windows: Deal with strange msysgit 1.8.4 behavior of not understanding + DOS formatted paths for --git-dir and --work-tree. + * Removed workaround for bug in git 1.8.4r0. + * Added git-recover-repository command to git-annex source + (not built by default; this needs to move to someplace else). + * webapp: Move sidebar to the right hand side of the screen. + + -- Joey Hess <joeyh@debian.org> Thu, 24 Oct 2013 12:59:55 -0400 + +git-annex (4.20131002) unstable; urgency=low + + * Note that the layout of gcrypt repositories has changed, and + if you created one you must manually upgrade it. + See http://git-annex.branchable.com/upgrades/gcrypt/ + * webapp: Support setting up and using encrypted git repositories on + any ssh server, as well as on rsync.net. + * git-annex-shell: Added support for operating inside gcrypt repositories. + * Disable receive.denyNonFastForwards when setting up a gcrypt special + remote, since gcrypt needs to be able to fast-forward the master branch. + * import: Preserve top-level directory structure. + * Use cryptohash rather than SHA for hashing when no external hash program + is available. This is a significant speedup for SHA256 on OSX, for + example. + * Added SKEIN256 and SKEIN512 backends. + * Android build redone from scratch, many dependencies updated, + and entire build can now be done using provided scripts. + * assistant: Clear the list of failed transfers when doing a full transfer + scan. This prevents repeated retries to download files that are not + available, or are not referenced by the current git tree. + * indirect, direct: Better behavior when a file is not owned by + the user running the conversion. + * add, import, assistant: Better preserve the mtime of symlinks, + when when adding content that gets deduplicated. + * Send a git-annex user-agent when downloading urls. + Overridable with --user-agent option. + (Not yet done for S3 or WebDAV due to limitations of libraries used.) + * webapp: Fixed a bug where when a new remote is added, one file + may fail to sync to or from it due to the transferrer process not + yet knowing about the new remote. + * OSX: Bundled gpg upgraded, now compatible with config files + written by MacGPG. + * assistant: More robust inotify handling; avoid crashing if a directory + cannot be read. + * Moved list of backends and remote types from status to version + command. + + -- Joey Hess <joeyh@debian.org> Wed, 02 Oct 2013 16:00:39 -0400 + +git-annex (4.20130920) unstable; urgency=low + + * webapp: Initial support for setting up encrypted removable drives. + * Recommend using my patched gcrypt, which fixes some bugs: + https://github.com/joeyh/git-remote-gcrypt + * Support hot-swapping of removable drives containing gcrypt repositories. + * list: New command, displays a compact table of remotes that + contain files. + (Thanks, anarcat for display code and mastensg for inspiration.) + * fsck: Fix detection and fixing of present direct mode files that are + wrongly represented as standin symlinks on crippled filesystems. + * sync: Fix bug that caused direct mode mappings to not be updated + when merging files into the tree on Windows. + * sync: Don't fail if the directory it is run in gets removed by the + sync. + * addurl: Fix quvi audodetection, broken in last release. + * status: In local mode, displays information about variance from configured + numcopies levels. (--fast avoids calculating these) + * gcrypt: Ensure that signing key is set to one of the participants keys. + * webapp: Show encryption information when editing a remote. + * Avoid unnecessarily catting non-symlink files from git, which can be + so large it runs out of memory. + + -- Joey Hess <joeyh@debian.org> Fri, 20 Sep 2013 10:34:51 -0400 + +git-annex (4.20130911) unstable; urgency=low + + * Fix problem with test suite in non-unicode locale. + + -- Joey Hess <joeyh@debian.org> Wed, 11 Sep 2013 12:14:16 -0400 + +git-annex (4.20130909) unstable; urgency=low + + * initremote: Syntax change when setting up an encrypted special remote. + Now use keyid=$KEYID rather than the old encryption=$KEYID + * forget: New command, causes git-annex branch history to be forgotten + in a way that will spread to other clones of the repository. + (As long as they're running this version or newer of git-annex.) + * forget --drop-dead: Completely removes mentions of repositories that + have been marked as dead from the git-annex branch. + * sync, assistant: Force push of the git-annex branch. Necessary + to ensure it gets pushed to remotes after being rewritten by forget. + * Added gcrypt support. This combines a fully encrypted git + repository (using git-remote-gcrypt) with an encrypted git-annex special + remote. + * sync: Support syncing with gcrypt remotes. + * importfeed: Also ignore transient problems with downloading content + from feeds. + * Honor core.sharedrepository when receiving and adding files in direct + mode. + * enableremote: gpg keys can be removed from those a remote encrypts + to by passing "keyid-=$KEYID". keyid+= is also provided. + (Thanks, guilhem for the patch.) + * Added encryption=pubkey scheme, which encrypts to public keys directly + rather than the hybrid approach. See documentation for advantages + and disadvantages, but encryption=hybrid is the recommended scheme still. + (Thanks, guilhem for the patch.) + * Fix Feeds display in build flags. + * Remind user when annex-ignore is set for some remotes, if unable to + get or drop a file, possibly because it's on an ignored remote. + * gpg: Force --no-textmode in case the user has it turned on in config. + * webapp: Improve javascript's handling of longpolling connection + failures, by reloading the current page in this case. + Works around chromium behavior where ajax connections to urls + that were already accessed are denied after navigating back to + a previous page. + * Allow building without quvi support. + + -- Joey Hess <joeyh@debian.org> Mon, 09 Sep 2013 09:47:02 -0400 + +git-annex (4.20130827) unstable; urgency=low + + * Youtube support! (And 53 other video hosts). When quvi is installed, + git-annex addurl automatically uses it to detect when an page is + a video, and downloads the video file. + * web special remote: Also support using quvi, for getting files, + or checking if files exist in the web. + * unused: Is now a minimum of 30 times faster, and typically many + more times than that (when a repository has several branches). + (Thanks, guilhem for the patch.) + * unused: Fix bugs in two edge cases involving manually staged changes. + (Thanks, guilhem for the patch.) + * Android: Fix bug in terminal app that caused it to spin using much + CPU and battery. This problem was introduced in version 4.20130601. + * sync, merge: Bug fix: Don't try to merge into master when in a bare repo. + * import: Add options to control handling of duplicate files: + --duplicate, --deduplicate, and --clean-duplicates + * mirror: New command, makes two repositories contain the same set of files. + * Set --clobber when running wget to ensure resuming works properly. + * Unescape characters in 'file://...' URIs. (Thanks, guilhem for the patch.) + * Better error message when trying to use a git remote that has annex.ignore + set. + * Fix bug that caused typechanged symlinks to be assumed to be unlocked + files, so they were added to the annex by the pre-commit hook. + * Debian: Run the builtin test suite as an autopkgtest. + * Debian: Recommend ssh-askpass, which ssh will use when the assistant + is run w/o a tty. Closes: #719832 + + -- Joey Hess <joeyh@debian.org> Tue, 27 Aug 2013 11:03:00 -0400 + +git-annex (4.20130815) unstable; urgency=low + + * assistant, watcher: .gitignore files and other git ignores are now + honored, when git 1.8.4 or newer is installed. + (Thanks, Adam Spiers, for getting the necessary support into git for this.) + * importfeed: Ignores transient problems with feeds. Only exits nonzero + when a feed has repeatedly had a problems for at least 1 day. + * importfeed: Fix handling of dots in extensions. + * Windows: Added support for encrypted special remotes. + * Windows: Fixed permissions problem that prevented removing files + from directory special remote. Directory special remotes now fully usable. + + -- Joey Hess <joeyh@debian.org> Thu, 15 Aug 2013 10:14:33 +0200 + +git-annex (4.20130802) unstable; urgency=low + + * dropunused behavior change: Now refuses to drop the last copy of a + file, unless you use the --force. + This was the last place in git-annex that could remove data referred + to by the git history, without being forced. + Like drop, dropunused checks remotes, and honors the global + annex.numcopies setting. (However, .gitattributes settings cannot + apply to unused files.) + * Fix inverted logic in last release's fix for data loss bug, + that caused git-annex sync on FAT or other crippled filesystems to add + symlink standin files to the annex. + * importfeed can be used to import files from podcast feeds. + * webapp: When setting up a dedicated ssh key to access the annex + on a host, set IdentitiesOnly to prevent the ssh-agent from forcing + use of a different ssh key. That could result in unncessary password + prompts, or prevent git-annex-shell from being run on the remote host. + * webapp: Improve handling of remotes whose setup has stalled. + * Add status message to XMPP presence tag, to identify to others that + the client is a git-annex client. Closes: #717652 + * webapp: When creating a repository on a removable drive, set + core.fsyncobjectfiles, to help prevent data loss when the drive is yanked. + * Always build with -threaded, to avoid a deadlock when communicating with + gpg. + * unused: No longer shows as unused tmp files that are actively being + transferred. + * assistant: Fix NetWatcher to not sync with remotes that have + remote.<name>.annex-sync set to false. + * assistant: Fix deadlock that could occur when adding a lot of files + at once in indirect mode. + * assistant: Fix bug that caused it to stall when adding a very large + number of files at once (around 5 thousand). + * OSX: Make git-annex-webapp run in the background, so that the app icon + can be clicked on the open a new webapp when the assistant is already + running. + * Improve test suite on Windows; now tests git annex sync. + * Fix a few bugs involving filenames that are at or near the filesystem's + maximum filename length limit. + * find: Avoid polluting stdout with progress messages. Closes: #718186 + * Escape ':' in file/directory names to avoid it being treated + as a pathspec by some git commands. Closes: #718185 + * Slow and ugly work around for bug #718517 in git 1.8.4~rc0, which broke + git-cat-file --batch for filenames containing spaces. + (Will be reverted after next git pre-release fixes the problem.) + + -- Joey Hess <joeyh@debian.org> Fri, 02 Aug 2013 11:35:16 -0400 + +git-annex (4.20130723) unstable; urgency=low + + * Fix data loss bug when adding an (uncompressed) tarball of a + git-annex repository, or other file that begins with something + that can be mistaken for a git-annex link. Closes: #717456 + * New improved version of the git-annex logo, contributed by + John Lawrence. + * Rsync.net have committed to support git-annex and offer a special + discounted rate for git-annex users. Updated the webapp to reflect this. + http://www.rsync.net/products/git-annex-pricing.html + * Install XDG desktop icon files. + * Support unannex and uninit in direct mode. + * Support import in direct mode. + * webapp: Better display of added files. + * fix: Preserve the original mtime of fixed symlinks. + * uninit: Preserve .git/annex/objects at the end, if it still + has content, so that old versions of files and deleted files + are not deleted. Print a message with some suggested actions. + * When a transfer is already being run by another process, + proceed on to the next file, rather than dying. + * Fix checking when content is present in a non-bare repository + accessed via http. + * Display byte sizes with more precision. + * watcher: Fixed a crash that could occur when a directory was renamed + or deleted before it could be scanned. + * watcher: Partially worked around a bug in hinotify, no longer crashes + if hinotify cannot process a directory (but can't detect changes in it) + * directory special remote: Fix checking that there is enough disk space + to hold an object, was broken when using encryption. + * webapp: Differentiate between creating a new S3/Glacier/WebDav remote, + and initializing an existing remote. When creating a new remote, avoid + conflicts with other existing (or deleted) remotes with the same name. + * When an XMPP server has SRV records, try them, but don't then fall + back to the regular host if they all fail. + * For long hostnames, use a hash of the hostname to generate the socket + file for ssh connection caching. + + -- Joey Hess <joeyh@debian.org> Tue, 23 Jul 2013 10:46:05 -0400 + +git-annex (4.20130709) unstable; urgency=low + + * --all: New switch that makes git-annex operate on all data stored + in the git annex, including old versions of files. Supported by + fsck, get, move, copy. + * --unused: New switch that makes git-annex operate on all data found + by the last run of git annex unused. Supported by fsck, move, copy. + * get, move, copy: Can now be run in a bare repository, + like fsck already could. --all is enabled automatically in this case. + * merge: Now also merges synced/master or similar branches, which + makes it useful to put in a post-receive hook to make a repository + automatically update its working copy when git annex sync or the assistant + sync with it. + * webapp: Fix ssh setup with nonstandard port, broken in last release. + * init: Detect systems on which git commit fails due to not being able to + determine the FQDN, and put in a workaround so committing to the git-annex + branch works. + * addurl --pathdepth: Fix failure when the pathdepth specified is deeper + than the urls's path. + * Windows: Look for .exe extension when searching for a command in path. + * Pass -f to curl when downloading a file with it, so it propigates failure. + * Windows: Fix url to object when using a http remote. + * webapp: Fix authorized_keys line added when setting up a rsync remote + on a server that also supports git-annex, to not force running + git-annex-shell. + * OSX Mountain Lion: Fixed gpg bundled in dmg to not fail due to a missing + gpg-agent. + * Android: gpg is built without --enable-minimal, so it interoperates + better with other gpg builds that may default to using other algorithms + for encryption. + * dropunused, addunused: Complain when asked to operate on a number that + does not correspond to any unused key. + * fsck: Don't claim to fix direct mode when run on a symlink whose content + is not present. + * Make --numcopies override annex.numcopies set in .gitattributes. + + -- Joey Hess <joeyh@debian.org> Tue, 09 Jul 2013 13:55:39 -0400 + +git-annex (4.20130627) unstable; urgency=low + + * assistant --autostart: Automatically ionices the daemons it starts. + * assistant: Daily sanity check thread is run niced. + * bup: Handle /~/ in bup remote paths. + Thanks, Oliver Matthews + * fsck: Ensures that direct mode is used for files when it's enabled. + * webapp: Fix bug when setting up a remote ssh repo repeatedly on the same + server. + * webapp: Ensure that ssh keys generated for different directories + on a server are always different. + * webapp: Fix bug setting up ssh repo if the user enters "~/" at the start + of the path. + * assistant: Fix bug that prevented adding files written by gnucash, + and more generally support adding hard links to files. However, + other operations on hard links are still unsupported. + * webapp: Fix bug that caused the webapp to hang when built with yesod 1.2. + + -- Joey Hess <joeyh@debian.org> Thu, 27 Jun 2013 14:21:55 -0400 + +git-annex (4.20130621) unstable; urgency=low + + * Supports indirect mode on encfs in paranoia mode, and other + filesystems that do not support hard links, but do support + symlinks and other POSIX filesystem features. + * Android: Add .thumbnails to .gitignore when setting up a camera + repository. + * Android: Make the "Open webapp" menu item open the just created + repository when a new repo is made. + * webapp: When the user switches to display a different repository, + that repository becomes the default repository to be displayed next time + the webapp gets started. + * glacier: Better handling of the glacier inventory, which avoids + duplicate uploads to the same glacier repository by `git annex copy`. + * Direct mode: No longer temporarily remove write permission bit of files + when adding them. + * sync: Better support for bare git remotes. Now pushes directly to the + master branch on such a remote, instead of to synced/master. This + makes it easier to clone from a bare git remote that has been populated + with git annex sync or by the assistant. + * Android: Fix use of cp command to not try to use features present + only on build system. + * Windows: Fix hang when adding several files at once. + * assistant: In direct mode, objects are now only dropped when all + associated files are unwanted. This avoids a repreated drop/get loop + of a file that has a copy in an archive directory, and a copy not in an + archive directory. (Indirect mode still has some buggy behavior in this + area, since it does not keep track of associated files.) + Closes: #712060 + * status: No longer shows dead repositories. + * annex.debug can now be set to enable debug logging by default. + The webapp's debugging check box does this. + * fsck: Avoid getting confused by Windows path separators + * Windows: Multiple bug fixes, including fixing the data written to the + git-annex branch. + * Windows: The test suite now passes on Windows (a few broken parts are + disabled). + * assistant: On Linux, the expensive transfer scan is run niced. + * Enable assistant and WebDAV support on powerpc and sparc architectures, + which now have the necessary dependencies built. + + -- Joey Hess <joeyh@debian.org> Fri, 21 Jun 2013 10:18:41 -0400 + +git-annex (4.20130601) unstable; urgency=medium + + * XMPP: Git push over xmpp made much more robust. + * XMPP: Avoid redundant and unncessary pushes. Note that this breaks + compatibility with previous versions of git-annex, which will refuse + to accept any XMPP pushes from this version. + * XMPP: Send pings and use them to detect when contact with the server + is lost. + * hook special remote: Added combined hook program support. + * Android app: Avoid using hard links to app's lib directory, which + is sometimes on a different filesystem than the data directory. + * Fix bug in parsing of parens in some preferred content expressions. + This fixes the behavior of the manual mode group. + * assistant: Work around git-cat-file's not reloading the index after files + are staged. + * Improve error handling when getting uuid of http remotes to auto-ignore, + like with ssh remotes. + * content: New command line way to view and configure a repository's + preferred content settings. + * sync: Fix double merge conflict resolution handling. + * XMPP: Fix a file descriptor leak. + * Android: Added an "Open WebApp" item to the terminal's menu. + * Android: Work around Android devices where the `am` command doesn't work. + * Can now restart certain long-running git processes if they crash, and + continue working. + + -- Joey Hess <joeyh@debian.org> Sat, 01 Jun 2013 19:16:04 -0400 + +git-annex (4.20130521) unstable; urgency=low + + * Sanitize debian changelog version before putting it into cabal file. + Closes: #708619 + * Switch to MonadCatchIO-transformers for better handling of state while + catching exceptions. + * Fix a zombie that could result when running a process like gpg to + read and write to it. + * Allow building with gpg2. + * Disable building with the haskell threaded runtime when the webapp + is not built. This may fix builds on mips, s390x and sparc, which are + failing to link -lHSrts_thr + * Temporarily build without webapp on kfreebsd-i386, until yesod is + installable there again. + * Direct mode bug fix: After a conflicted merge was automatically resolved, + the content of a file that was already present could incorrectly + be replaced with a symlink. + * Fix a bug in the git-annex branch handling code that could + cause info from a remote to not be merged and take effect immediately. + * Direct mode is now fully tested by the test suite. + * Detect bad content in ~/.config/git-annex/program and look in PATH instead. + * OSX: Fixed gpg included in dmg. + * Linux standalone: Back to being built with glibc 2.13 for maximum + portability. + + -- Joey Hess <joeyh@debian.org> Tue, 21 May 2013 13:10:26 -0400 + +git-annex (4.20130516) unstable; urgency=low + + * Android: The webapp is ported and working. + * Windows: There is a very rough Windows port. Do not trust it with + important data. + * git-annex-shell: Ensure that received files can be read. Files + transferred from some Android devices may have very broken permissions + as received. + * direct mode: Direct mode commands now work on files staged in the index, + they do not need to be committed to git. + * Temporarily add an upper bound to the version of yesod that can be built + with, since yesod 1.2 has a great many changes that will require extensive + work on the webapp. + * Disable building with the haskell threaded runtime when the assistant + is not built. This may fix builds on s390x and sparc, which are failing + to link -lHSrts_thr + * Avoid depending on regex-tdfa on mips, mipsel, and s390, where it fails + to build. + * direct: Fix a bug that could cause some files to be left in indirect mode. + * When initializing a directory special remote with a relative path, + the path is made absolute. + * SHA: Add a runtime sanity check that sha commands output something + that appears to be a real sha. + * configure: Better checking that sha commands output in the desired format. + * rsync special remotes: When sending from a crippled filesystem, use + the destination's default file permissions, as the local ones can + be arbitrarily broken. (Ie, ----rwxr-x for files on Android) + * migrate: Detect if a file gets corrupted while it's being migrated. + * Debian: Add a menu file. + + -- Joey Hess <joeyh@debian.org> Thu, 16 May 2013 11:03:35 -0400 + +git-annex (4.20130501) unstable; urgency=low + + * sync, assistant: Behavior changes: Sync with remotes that have + annex-ignore set, so that git remotes on servers without git-annex + installed can be used to keep clients' git repos in sync. + * assistant: Work around misfeature in git 1.8.2 that makes + `git commit --alow-empty -m ""` run an editor. + * sync: Bug fix, avoid adding to the annex the + dummy symlinks used on crippled filesystems. + * Add public repository group. + (And inpreferreddir to preferred content expressions.) + * webapp: Can now set up Internet Archive repositories. + * S3: Dropping content from the Internet Archive doesn't work, but + their API indicates it does. Always refuse to drop from there. + * Automatically register public urls for files uploaded to the + Internet Archive. + * To enable an existing special remote, the new enableremote command + must be used. The initremote command now is used only to create + new special remotes. + * initremote: If two existing remotes have the same name, + prefer the one with a higher trust level. + * assistant: Improved XMPP protocol to better support multiple repositories + using the same XMPP account. Fixes bad behavior when sharing with a friend + when you or the friend have multiple reposotories on an XMPP account. + Note that XMPP pairing with your own devices still pairs with all + repositories using your XMPP account. + * assistant: Fix bug that could cause incoming pushes to not get + merged into the local tree. Particularly affected XMPP pushes. + * webapp: Display some additional information about a repository on + its edit page. + * webapp: Install FDO desktop menu file when started in standalone mode. + * webapp: Don't default to making repository in cwd when started + from within a directory containing a git-annex file (eg, standalone + tarball directory). + * Detect systems that have no user name set in GECOS, and also + don't have user.name set in git config, and put in a workaround + so that commits to the git-annex branch (and the assistant) + will still succeed despite git not liking the system configuration. + * webapp: When told to add a git repository on a remote server, and + the repository already exists as a non-bare repository, use it, + rather than initializing a bare repository in the same directory. + * direct, indirect: Refuse to do anything when the assistant + or git-annex watch daemon is running. + * assistant: When built with git before 1.8.0, use `git remote rm` + to delete a remote. Newer git uses `git remote remove`. + * rmurl: New command, removes one of the recorded urls for a file. + * Detect when the remote is broken like bitbucket is, and exits 0 when + it fails to run git-annex-shell. + * assistant: Several improvements to performance and behavior when + performing bulk adds of a large number of files (tens to hundreds + of thousands). + * assistant: Sanitize XMPP presence information logged for debugging. + * webapp: Now automatically fills in any creds used by an existing remote + when creating a new remote of the same type. Done for Internet Archive, + S3, Glacier, and Box.com remotes. + * Store an annex-uuid file in the bucket when setting up a new S3 remote. + * Support building with DAV 0.4. + + -- Joey Hess <joeyh@debian.org> Wed, 01 May 2013 01:42:46 -0400 + +git-annex (4.20130417) unstable; urgency=low + + * initremote: Generates encryption keys with high quality entropy. + This can be disabled using --fast to get the old behavior. + The assistant still uses low-quality entropy when creating encrypted + remotes, to avoid delays. (Thanks, guilhem for the patch.) + * Bugfix: Direct mode no longer repeatedly checksums duplicated files. + * assistant: Work around horrible, terrible, very bad behavior of + gnome-keyring, by not storing special-purpose ssh keys in ~/.ssh/*.pub. + Apparently gnome-keyring apparently will load and indiscriminately use + such keys in some cases, even if they are not using any of the standard + ssh key names. Instead store the keys in ~/.ssh/annex/, + which gnome-keyring will not check. + * addurl: Bugfix: Did not properly add file in direct mode. + * assistant: Bug fix to avoid annexing the files that git uses + to stand in for symlinks on FAT and other filesystem not supporting + symlinks. + * Adjust preferred content expressions so that content in archive + directories is preferred until it has reached an archive or smallarchive + repository. + * webapp: New --listen= option allows running the webapp on one computer + and connecting to it from another. (Note: Does not yet use HTTPS.) + * Added annex.web-download-command setting. + * Added per-remote annex-rsync-transport option. (guilhem again) + * Ssh connection caching is now also used by rsync special remotes. + (guilhem yet again) + * The version number is now derived from git, unless built with + VERSION_FROM_CHANGELOG. + * assistant: Stop any transfers the assistant initiated on shutdown. + * assistant: Added sequence numbers to XMPP git push packets. (Not yet used.) + * addurl: Register transfer so the webapp can see it. + * addurl: Automatically retry downloads that fail, as long as some + additional content was downloaded. + * webapp: Much improved progress bar display for downloads from encrypted + remotes. + * Avoid using runghc, as that needs ghci. + * webapp: When a repository's group is changed, rescan for transfers. + * webapp: Added animations. + * webapp: Include the repository directory in the mangled hostname and + ssh key name, so that a locked down ssh key for one repository is not + re-used when setting up additional repositories on the same server. + * Fall back to internal url downloader when built without curl. + * fsck: Check content of direct mode files (only when the inode cache + thinks they are unmodified). + + -- Joey Hess <joeyh@debian.org> Wed, 17 Apr 2013 09:07:38 -0400 + +git-annex (4.20130405) unstable; urgency=low + + * Group subcommands into sections in usage. Closes: #703797 + * Per-command usage messages. + * webapp: Fix a race that sometimes caused alerts or other notifications + to be missed if they occurred while a page was loading. + * webapp: Progess bar fixes for many types of special remotes. + * Build debian package without using cabal, which writes to HOME. + Closes: #704205 + * webapp: Run ssh server probes in a way that will work when the + login shell is a monstrosity that should have died 25 years ago, + such as csh. + * New annex.largefiles setting, which configures which files + `git annex add` and the assistant add to the annex. + * assistant: Check small files into git directly. + * Remotes can be configured to use other MAC algorithms than HMACSHA1 + to encrypt filenames. + Thanks, guilhem for the patch. + * git-annex-shell: Passes rsync --bwlimit options on rsync. + Thanks, guilhem for the patch. + * webapp: Added UI to delete repositories. Closes: #689847 + * Adjust built-in preferred content expressions to make most types + of repositories want content that is only located on untrusted, dead, + and unwanted repositories. + * drop --auto: Fix bug that prevented dropping files from untrusted + repositories. + * assistant: Fix bug that could cause direct mode files to be unstaged + from git. + * Update working tree files fully atomically. + * webapp: Improved transfer queue management. + * init: Probe whether the filesystem supports fifos, and if not, + disable ssh connection caching. + * Use lower case hash directories for storing files on crippled filesystems, + same as is already done for bare repositories. + + -- Joey Hess <joeyh@debian.org> Fri, 05 Apr 2013 10:42:18 -0400 + +git-annex (4.20130323) unstable; urgency=low + + * webapp: Repository list is now included in the dashboard, and other + UI tweaks. + * webapp: Improved UI for pairing your own devices together using XMPP. + * webapp: Display an alert when there are XMPP remotes, and a cloud + transfer repository needs to be configured. + * Add incrementalbackup repository group. + * webapp: Encourage user to install git-annex on a server when adding + a ssh server, rather than just funneling them through to rsync. + * xmpp: --debug now enables a sanitized dump of the XMPP protocol + * xmpp: Try harder to detect presence of clients when there's a git push + to send. + * xmpp: Re-enable XA flag, since disabling it did not turn out to help + with the problems Google Talk has with not always sending presence + messages to clients. + * map: Combine duplicate repositories, for a nicer looking map. + * Fix several bugs caused by a bad Ord instance for Remote. + * webapp: Switch all forms to POST. + * assistant: Avoid syncing with annex-ignored remotes when reconnecting + to the network, or connecting a drive. + * assistant: Fix OSX bug that prevented committing changed files to a + repository when in indirect mode. + * webapp: Improved alerts displayed when syncing with remotes, and + when syncing with a remote fails. + * webapp: Force wrap long filenames in transfer display. + * assistant: The ConfigMonitor left one zombie behind each time + it checked for changes, now fixed. + * get, copy, move: Display an error message when an identical transfer + is already in progress, rather than failing with no indication why. + * assistant: Several optimisations to file transfers. + * OSX app and standalone Linux tarball now both support being added to + PATH; no need to use runshell to start git-annex. + * webapp: When adding a removable drive, you can now specify the + directory inside it to use. + * webapp: Confirm whether user wants to combine repositories when + adding a removable drive that already has a repository on it. + + -- Joey Hess <joeyh@debian.org> Fri, 22 Mar 2013 18:54:05 -0400 + +git-annex (4.20130314) unstable; urgency=low + + * Bugfix: git annex add, when ran without any file or directory specified, + should add files in the current directory, but not act on unlocked files + elsewhere in the tree. + * Bugfix: drop --from an unavailable remote no longer updates the location + log, incorrectly, to say the remote does not have the key. + * Bugfix: If the UUID of a remote is not known, prevent --from, --to, + and other ways of specifying remotes by name from selecting it, + since it is not possible to sanely use it. + * Bugfix: Fix bug in inode cache sentinal check, which broke + copying to local repos if the repo being copied from had moved + to a different filesystem or otherwise changed all its inodes + + * Switch from using regex-compat to regex-tdfa, as the C regex library + is rather buggy. + * status: Can now be run with a directory path to show only the + status of that directory, rather than the whole annex. + * Added remote.<name>.annex-gnupg-options setting. + Thanks, guilhem for the patch. + * addurl: Add --relaxed option. + * addurl: Escape invalid characters in urls, rather than failing to + use an invalid url. + * addurl: Properly handle url-escaped characters in file:// urls. + + * assistant: Fix dropping content when a file is moved to an archive + directory, and getting contennt when a file is moved back out. + * assistant: Fix bug in direct mode that could occur when a symlink is + moved out of an archive directory, and resulted in the file not being + set to direct mode when it was transferred. + * assistant: Generate better commits for renames. + * assistant: Logs are rotated to avoid them using too much disk space. + * assistant: Avoid noise in logs from git commit about typechanged + files in direct mode repositories. + * assistant: Set gc.auto=0 when creating repositories to prevent + automatic commits from causing git-gc runs. + * assistant: If gc.auto=0, run git-gc once a day, packing loose objects + very non-aggressively. + * assistant: XMPP git pull and push requests are cached and sent when + presence of a new client is detected. + * assistant: Sync with all git remotes on startup. + * assistant: Get back in sync with XMPP remotes after network reconnection, + and on startup. + * assistant: Fix syncing after XMPP pairing. + * assistant: Optimised handling of renamed files in direct mode, + avoiding re-checksumming. + * assistant: Detects most renames, including directory renames, and + combines all their changes into a single commit. + * assistant: Fix ~/.ssh/git-annex-shell wrapper to work when the + ssh key does not force a command. + * assistant: Be smarter about avoiding unncessary transfers. + + * webapp: Work around bug in Warp's slowloris attack prevention code, + that caused regular browsers to stall when they reuse a connection + after leaving it idle for 30 seconds. + (See https://github.com/yesodweb/wai/issues/146) + * webapp: New preferences page allows enabling/disabling debug logging + at runtime, as well as configuring numcopies and diskreserve. + * webapp: Repository costs can be configured by dragging repositories around + in the repository list. + * webapp: Proceed automatically on from "Configure jabber account" + to pairing. + * webapp: Only show up to 10 queued transfers. + * webapp: DTRT when told to create a git repo that already exists. + * webapp: Set locally paired repositories to a lower cost than other + network remotes. + + * Run ssh with -T to avoid tty allocation and any login scripts that + may do undesired things with it. + * Several improvements to Makefile and cabal file. Thanks, Peter Simmons + * Stop depending on testpack. + * Android: Enable test suite. + + -- Joey Hess <joeyh@debian.org> Thu, 14 Mar 2013 15:29:20 -0400 + +git-annex (4.20130227) unstable; urgency=low + + * annex.version is now set to 4 for direct mode repositories. + * Should now fully support git repositories with core.symlinks=false; + always using git's pseudosymlink files in such repositories. + * webapp: Allow creating repositories on filesystems that lack support for + symlinks. + * webapp: Can now add a new local repository, and make it sync with + the main local repository. + * Android: Bundle now includes openssh. + * Android: Support ssh connection caching. + * Android: Assistant is fully working. (But no webapp yet.) + * Direct mode: Support filesystems like FAT which can change their inodes + each time they are mounted. + * Direct mode: Fix support for adding a modified file. + * Avoid passing -p to rsync, to interoperate with crippled filesystems. + Closes: #700282 + * Additional GIT_DIR support bugfixes. May actually work now. + * webapp: Display any error message from git init if it fails to create + a repository. + * Fix a reversion in matching globs introduced in the last release, + where "*" did not match files inside subdirectories. No longer uses + the Glob library. + * copy: Update location log when no copy was performed, if the location + log was out of date. + * Makefile now builds using cabal, taking advantage of cabal's automatic + detection of appropriate build flags. + * test: The test suite is now built into the git-annex binary, and can + be run at any time. + + -- Joey Hess <joeyh@debian.org> Wed, 27 Feb 2013 14:07:24 -0400 + +git-annex (3.20130216) unstable; urgency=low + + * Now uses the Haskell uuid library, rather than needing a uuid program. + * Now uses the Haskell Glob library, rather than pcre-light, avoiding + the need to install libpcre. Currently done only for Cabal or when + the Makefile is made to use -DWITH_GLOB + * Android port now available (command-line only). + * New annex.crippledfilesystem setting, allows use of git-annex + repositories on FAT and even worse filesystems; avoiding use of + hard links and locked down permissions settings. (Support is incomplete.) + * init: Detect when the repository is on a filesystem that does not + support hard links, or symlinks, or unix permissions, and set + annex.crippledfilesystem, as well as annex.direct. + * add: Improved detection of files that are modified while being added. + * Fix a bug in direct mode, introduced in the previous release, where + if a file was dropped and then got back, it would be stored in indirect + mode. + + -- Joey Hess <joeyh@debian.org> Sat, 16 Feb 2013 10:03:26 -0400 + +git-annex (3.20130207) unstable; urgency=low + + * webapp: Now allows restarting any threads that crash. + * Adjust debian package to only build-depend on DAV on architectures + where it is available. + * addurl --fast: Use curl, rather than haskell HTTP library, to support https. + * annex.autocommit: New setting, can be used to disable autocommit + of changed files by the assistant, while it still does data syncing + and other tasks. + * assistant: Ignore .DS_Store on OSX. + * assistant: Fix location log when adding new file in direct mode. + * Deal with stale mappings for deleted file in direct mode. + * pre-commit: Update direct mode mappings. + * uninit, unannex --fast: If hard link creation fails, fall back to slow + mode. + * Clean up direct mode cache and mapping info when dropping keys. + * dropunused: Clean up stale direct mode cache and mapping info not + removed before. + + -- Joey Hess <joeyh@debian.org> Thu, 07 Feb 2013 12:45:25 -0400 + +git-annex (3.20130124) unstable; urgency=low + + * Added source repository group, that only retains files until they've + been transferred to another repository. Useful for things like + repositories on cameras. + * Added manual repository group. Use to prevent the assistant from + downloading any file contents to keep things in sync. Instead + `git annex get`, `git annex drop` etc can be used manually as desired. + * webapp: More adjustments to longpoll code to deal with changes in + variable quoting in different versions of shakespeare-js. + * webapp: Avoid an error if a transfer is stopped just as it finishes. + Closes: #698184 + * webapp: Now always logs to .git/annex/daemon.log + * webapp: Has a page to view the log, accessed from the control menu. + * webapp: Fix crash adding removable drive that has an annex directory + in it that is not a git repository. + * Deal with incompatability in gpg2, which caused prompts for encryption + passphrases rather than using the supplied --passphrase-fd. + * bugfix: Union merges involving two or more repositories could sometimes + result in data from one repository getting lost. This could result + in the location log data becoming wrong, and fsck being needed to fix it. + * sync: Automatic merge conflict resolution now stages deleted files. + * Depend on git 1.7.7.6 for --no-edit. Closes: #698399 + * Fix direct mode mapping code to always store direct mode filenames + relative to the top of the repository, even when operating inside a + subdirectory. + * fsck: Detect and fix consistency errors in direct mode mapping files. + * Avoid filename encoding errors when writing direct mode mappings. + + -- Joey Hess <joeyh@debian.org> Tue, 22 Jan 2013 07:11:59 +1100 + +git-annex (3.20130114) unstable; urgency=low + + * Now handles the case where a file that's being transferred to a remote + is modified in place, which direct mode allows. When this + happens, the transfer now fails, rather than allow possibly corrupt + data into the remote. + * fsck: Better checking of file content in direct mode. + * drop: Suggest using git annex move when numcopies prevents dropping a file. + * webapp: Repo switcher filters out repos that do not exist any more + (or are on a drive that's not mounted). + * webapp: Use IP address, rather than localhost, since some systems may + have configuration problems or other issues that prevent web browsers + from connecting to the right localhost IP for the webapp. + * webapp: Adjust longpoll code to work with recent versions of + shakespeare-js. + * assistant: Support new gvfs dbus names used in Gnome 3.6. + * In direct mode, files with the same key are no longer hardlinked, as + that would cause a surprising behavior if modifying one, where the other + would also change. + * webapp: Avoid illegal characters in hostname when creating S3 or + Glacier remote. + * assistant: Avoid committer crashing if a file is deleted at the wrong + instant. + + -- Joey Hess <joeyh@debian.org> Mon, 14 Jan 2013 15:25:18 -0400 + +git-annex (3.20130107) unstable; urgency=low + + * webapp: Add UI to stop and restart assistant. + * committer: Fix a file handle leak. + * assistant: Make expensive transfer scan work fully in direct mode. + * More commands work in direct mode repositories: find, whereis, move, copy, + drop, log, fsck, add, addurl. + * sync: No longer automatically adds files in direct mode. + * assistant: Detect when system is not configured with a user name, + and set environment to prevent git from failing. + * direct: Avoid hardlinking symlinks that point to the same content + when the content is not present. + * Fix transferring files to special remotes in direct mode. + + -- Joey Hess <joeyh@debian.org> Mon, 07 Jan 2013 01:01:41 -0400 + +git-annex (3.20130102) unstable; urgency=low + + * direct, indirect: New commands, that switch a repository to and from + direct mode. In direct mode, files are accessed directly, rather than + via symlinks. Note that direct mode is currently experimental. Many + git-annex commands do not work in direct mode. Some git commands can + cause data loss when used in direct mode repositories. + * assistant: Now uses direct mode by default when setting up a new + local repository. + * OSX assistant: Uses the FSEvents API to detect file changes. + This avoids issues with running out of file descriptors on large trees, + as well as allowing detection of modification of files in direct mode. + Other BSD systems still use kqueue. + * kqueue: Fix bug that made broken symlinks not be noticed. + * vicfg: Quote filename. Closes: #696193 + * Bugfix: Fixed bug parsing transfer info files, where the newline after + the filename was included in it. This was generally benign, but in + the assistant, it caused unexpected dropping of preferred content. + * Bugfix: Remove leading \ from checksums output by sha*sum commands, + when the filename contains \ or a newline. Closes: #696384 + * fsck: Still accept checksums with a leading \ as valid, now that + above bug is fixed. + * SHA*E backends: Exclude non-alphanumeric characters from extensions. + * migrate: Remove leading \ in SHA* checksums, and non-alphanumerics + from extensions of SHA*E keys. + + -- Joey Hess <joeyh@debian.org> Wed, 02 Jan 2013 13:21:34 -0400 + +git-annex (3.20121211) unstable; urgency=low + + * webapp: Defaults to sharing box.com account info with friends, allowing + one-click enabling of the repository. + * Fix broken .config/git-annex/program installed by standalone tarball. + * assistant: Retrival from glacier now handled. + * Include ssh in standalone tarball and OSX app. + * watch: Avoid leaving hard links to files behind in .git/annex/tmp + if a file is deleted or moved while it's being quarantined in preparation + to being added to the annex. + * Allow `git annex drop --from web`; of course this does not remove + any file from the web, but it does make git-annex remove all urls + associated with a file. + * webapp: S3 and Glacier forms now have a select list of all + currently-supported AWS regions. + * webdav: Avoid trying to set props, avoiding incompatability with + livedrive.com. Needs DAV version 0.3. + * webapp: Prettify error display. + * webapp: Fix bad interaction between required fields and modals. + * webapp: Added help buttons and links next to fields that require + explanations. + * webapp: Encryption can be disabled when setting up remotes. + * assistant: Avoid trying to drop content from remotes that don't have it. + * assistant: Allow periods in ssh key comments. + * get/copy --auto: Transfer data even if it would exceed numcopies, + when preferred content settings want it. + * drop --auto: Fix dropping content when there are no preferred content + settings. + * webapp: Allow user to specify the port when setting up a ssh or rsync + remote. + * assistant: Fix syncing to just created ssh remotes. + * Enable WebDAV support in Debian package. Closes: #695532 + + -- Joey Hess <joeyh@debian.org> Tue, 11 Dec 2012 11:25:03 -0400 + +git-annex (3.20121127) unstable; urgency=low + + * Fix dirContentsRecursive, which had missed some files in deeply nested + subdirectories. Could affect various parts of git-annex. + * rsync: Fix bug introduced in last release that broke encrypted rsync + special remotes. + * The standalone builds now unset their special path and library path + variables before running the system web browser. + + -- Joey Hess <joeyh@debian.org> Tue, 27 Nov 2012 17:07:32 -0400 + +git-annex (3.20121126) unstable; urgency=low + + * New webdav and Amazon glacier special remotes. + * Display a warning when a non-existing file or directory is specified. + * webapp: Added configurator for Box.com. + * webapp: Show error messages to user when testing XMPP creds. + * Fix build of assistant without yesod. + * webapp: The list of repositiories refreshes when new repositories are + added, including when new repository configurations are pushed in from + remotes. + * OSX: Fix RunAtLoad value in plist file. + * Getting a file from chunked directory special remotes no longer buffers + it all in memory. + * S3: Added progress display for uploading and downloading. + * directory special remote: Made more efficient and robust. + * Bugfix: directory special remote could loop forever storing a key + when a too small chunksize was configured. + * Allow controlling whether login credentials for S3 and webdav are + committed to the repository, by setting embedcreds=yes|no when running + initremote. + * Added smallarchive repository group, that only archives files that are + in archive directories. Used by default for glacier when set up in the + webapp. + * assistant: Fixed handling of toplevel archive directory and + client repository group. + * assistant: Apply preferred content settings when a new symlink + is created, or a symlink gets renamed. Made archive directories work. + + -- Joey Hess <joeyh@debian.org> Mon, 26 Nov 2012 11:37:49 -0400 + +git-annex (3.20121112) unstable; urgency=low + + * assistant: Can use XMPP to notify other nodes about pushes made to other + repositories, as well as pushing to them directly over XMPP. + * wepapp: Added an XMPP configuration interface. + * webapp: Supports pairing over XMPP, with both friends, and other repos + using the same account. + * assistant: Drops non-preferred content when possible. + * assistant: Notices, and applies config changes as they are made to + the git-annex branch, including config changes pushed in from remotes. + * git-annex-shell: GIT_ANNEX_SHELL_DIRECTORY can be set to limit it + to operating on a specified directory. + * webapp: When setting up authorized_keys, use GIT_ANNEX_SHELL_DIRECTORY. + * Preferred content path matching bugfix. + * Preferred content expressions cannot use "in=". + * Preferred content expressions can use "present". + * Fix handling of GIT_DIR when it refers to a git submodule. + * Depend on and use the Haskell SafeSemaphore library, which provides + exception-safe versions of SampleVar and QSemN. + Thanks, Ben Gamari for an excellent patch set. + * file:/// URLs can now be used with the web special remote. + * webapp: Allow dashes in ssh key comments when pairing. + * uninit: Check and abort if there are symlinks to annexed content that + are not checked into git. + * webapp: Switched to using the same multicast IP address that avahi uses. + * bup: Don't pass - to bup-split to make it read stdin; bup 0.25 + does not accept that. + * bugfix: Don't fail transferring content from read-only repos. + Closes: #691341 + * configure: Check that checksum programs produce correct checksums. + * Re-enable dbus, using a new version of the library that fixes the memory + leak. + * NetWatcher: When dbus connection is lost, try to reconnect. + * Use USER and HOME environment when set, and only fall back to getpwent, + which doesn't work with LDAP or NIS. + * rsync special remote: Include annex-rsync-options when running rsync + to test a key's presence. + * The standalone tarball's runshell now takes care of installing a + ~/.ssh/git-annex-shell wrapper the first time it's run. + * webapp: Make an initial, empty commit so there is a master branch + * assistant: Fix syncing local drives. + * webapp: Fix creation of rsync.net repositories. + * webapp: Fix renaming of special remotes. + * webapp: Generate better git remote names. + * webapp: Ensure that rsync special remotes are enabled using the same + name they were originally created using. + * Bugfix: Fix hang in webapp when setting up a ssh remote with an absolute + path. + + -- Joey Hess <joeyh@debian.org> Mon, 12 Nov 2012 10:39:47 -0400 + +git-annex (3.20121017) unstable; urgency=low + + * Fix zombie cleanup reversion introduced in 3.20121009. + * Additional fix to support git submodules. + + -- Joey Hess <joeyh@debian.org> Tue, 16 Oct 2012 21:10:14 -0400 + +git-annex (3.20121016) unstable; urgency=low + + * vicfg: New file format, avoids ambiguity with repos that have the same + description, or no description. + * Bug fix: A recent change caused git-annex-shell to crash. + * Better preferred content expression for transfer repos. + * webapp: Repository edit form can now edit the name of a repository. + * webapp: Make bare repositories on removable drives, as there is nothing + to ensure non-bare repos get updated when syncing. + * webapp: Better behavior when pausing syncing to a remote when a transfer + scan is running and queueing new transfers for that remote. + * The standalone binaries are now built to not use ssh connection caching, + in order to work with old versions of ssh. + * A relative core.worktree is relative to the gitdir. Now that this is + handled correctly, git-annex can be used in git submodules. + * Temporarily disable use of dbus, as the haskell dbus library blows up + when losing connection, which will need to be fixed upstream. + + -- Joey Hess <joeyh@debian.org> Tue, 16 Oct 2012 15:25:22 -0400 + +git-annex (3.20121010) unstable; urgency=low + + * Renamed --ingroup to --inallgroup. + * Standard groups changed to client, transfer, archive, and backup. + Each of these has its own standard preferred content setting. + * dead: Remove dead repository from all groups. + * Avoid unsetting HOME when running certian git commands. Closes: #690193 + * test: Fix threaded runtime hang. + * Makefile: Avoid building with -threaded if the ghc threaded runtime does + not exist. + * webapp: Improve wording of intro display. Closes: #689848 + * webapp: Repositories can now be configured, to change their description, + their group, or even to disable syncing to them. + * git config remote.name.annex-sync can be used to control whether + a remote gets synced. + * Fix a crash when merging files in the git-annex branch that contain + invalid utf8. + * Automatically detect when a ssh remote does not have git-annex-shell + installed, and set annex-ignore. + + -- Joey Hess <joeyh@debian.org> Fri, 12 Oct 2012 13:45:21 -0400 + +git-annex (3.20121009) unstable; urgency=low + + * watch, assistant: It's now safe to git annex unlock files while + the watcher is running, as well as modify files checked into git + as normal files. Additionally, .gitignore settings are now honored. + Closes: #689979 + * group, ungroup: New commands to indicate groups of repositories. + * webapp: Adds newly created repositories to one of these groups: + clients, drives, servers + * vicfg: New command, allows editing (or simply viewing) most + of the repository configuration settings stored in the git-annex branch. + * Added preferred content expressions, configurable using vicfg. + * get --auto: If the local repository has preferred content + configured, only get that content. + * drop --auto: If the repository the content is dropped from has + preferred content configured, drop only content that is not preferred. + * copy --auto: Only transfer content that the destination repository prefers. + * assistant: Now honors preferred content settings when deciding what to + transfer. + * --copies=group:number can now be used to match files that are present + in a specified number of repositories in a group. + * Added --smallerthan, --largerthan, and --inall limits. + * Only build-depend on libghc-clientsession-dev on arches that will have + the webapp. + * uninit: Unset annex.version. Closes: #689852 + + -- Joey Hess <joeyh@debian.org> Tue, 09 Oct 2012 15:13:23 -0400 + +git-annex (3.20121001) unstable; urgency=low + + * fsck: Now has an incremental mode. Start a new incremental fsck pass + with git annex fsck --incremental. Now the fsck can be interrupted + as desired, and resumed with git annex fsck --more. + Thanks, Justin Azoff + * New --time-limit option, makes long git-annex commands stop after + a specified amount of time. + * fsck: New --incremental-schedule option which is nice for scheduling + eg, monthly incremental fsck runs in cron jobs. + * Fix fallback to ~/Desktop when xdg-user-dir is not available. + Closes: #688833 + * S3: When using a shared cipher, S3 credentials are not stored encrypted + in the git repository, as that would allow anyone with access to + the repository access to the S3 account. Instead, they're stored + in a 600 mode file in the local git repo. + * webapp: Avoid crashing when ssh-keygen -F chokes on an invalid known_hosts + file. + * Always do a system wide installation when DESTDIR is set. Closes: #689052 + * The Makefile now builds with the new yesod by default. + Systems like Debian that have the old yesod 1.0.1 should set + GIT_ANNEX_LOCAL_FEATURES=-DWITH_OLD_YESOD + * copy: Avoid updating the location log when no copy is performed. + * configure: Test that uuid -m works, falling back to plain uuid if not. + * Avoid building the webapp on Debian architectures that do not yet + have template haskell and thus yesod. (Should be available for arm soonish + I hope). + + -- Joey Hess <joeyh@debian.org> Mon, 01 Oct 2012 13:56:55 -0400 + +git-annex (3.20120924) unstable; urgency=low + + * assistant: New command, a daemon which does everything watch does, + as well as automatically syncing file contents between repositories. + * webapp: An interface for managing and configuring the assistant. + * The default backend used when adding files to the annex is changed + from SHA256 to SHA256E, to simplify interoperability with OSX, media + players, and various programs that needlessly look at symlink targets. + To get old behavior, add a .gitattributes containing: * annex.backend=SHA256 + * init: If no description is provided for a new repository, one will + automatically be generated, like "joey@gnu:~/foo" + * test: Set a lot of git environment variables so testing works in strange + environments that normally need git config to set names, etc. + Closes: #682351 Thanks, gregor herrmann + * Disable ssh connection caching if the path to the control socket would be + too long (and use relative path to minimise path to the control socket). + * migrate: Check content before generating the new key, to avoid generating + a key for corrupt data. + * Support repositories created with --separate-git-dir. Closes: #684405 + * reinject: When the provided file doesn't match, leave it where it is, + rather than moving to .git/annex/bad/ + * Avoid crashing on encoding errors in filenames when writing transfer info + files and reading from checksum commands. + * sync: Pushes the git-annex branch to remote/synced/git-annex, rather + than directly to remote/git-annex. + * Now supports matching files that are present on a number of remotes + with a specified trust level. Example: --copies=trusted:2 + Thanks, Nicolas Pouillard + + -- Joey Hess <joeyh@debian.org> Mon, 24 Sep 2012 13:47:48 -0400 + +git-annex (3.20120825) unstable; urgency=low + + * S3: Add fileprefix setting. + * Pass --use-agent to gpg when in no tty mode. Thanks, Eskild Hustvedt. + * Bugfix: Fix fsck in SHA*E backends, when the key contains composite + extensions, as added in 3.20120721. + + -- Joey Hess <joeyh@debian.org> Sat, 25 Aug 2012 10:00:10 -0400 + +git-annex (3.20120807) unstable; urgency=low + + * initremote: Avoid recording remote's description before checking + that its config is valid. + * unused, status: Avoid crashing when ran in bare repo. + * Avoid crashing when "git annex get" fails to download from one + location, and falls back to downloading from a second location. + + -- Joey Hess <joeyh@debian.org> Tue, 07 Aug 2012 13:35:07 -0400 + +git-annex (3.20120721) unstable; urgency=low + + * get, move, copy: Now refuse to do anything when the requested file + transfer is already in progress by another process. + * status: Lists transfers that are currently in progress. + * Fix passing --uuid to git-annex-shell. + * When shaNsum commands cannot be found, use the Haskell SHA library + (already a dependency) to do the checksumming. This may be slower, + but avoids portability problems. + * Use SHA library for files less than 50 kb in size, at which point it's + faster than forking the more optimised external program. + * SHAnE backends are now smarter about composite extensions, such as + .tar.gz Closes: #680450 + * map: Write map.dot to .git/annex, which avoids watch trying to annex it. + + -- Joey Hess <joeyh@debian.org> Sat, 21 Jul 2012 16:52:48 -0400 + +git-annex (3.20120629) unstable; urgency=low + + * cabal: Only try to use inotify on Linux. + * Version build dependency on STM, and allow building without it, + which disables the watch command. + * Avoid ugly failure mode when moving content from a local repository + that is not available. + * Got rid of the last place that did utf8 decoding. + * Accept arbitrarily encoded repository filepaths etc when reading + git config output. This fixes support for remotes with unusual characters + in their names. + * sync: Automatically resolves merge conflicts. + + -- Joey Hess <joeyh@debian.org> Fri, 29 Jun 2012 10:17:49 -0400 + +git-annex (3.20120624) unstable; urgency=low + + * watch: New subcommand, a daemon which notices changes to + files and automatically annexes new files, etc, so you don't + need to manually run git commands when manipulating files. + Available on Linux, BSDs, and OSX! + * Enable diskfree on kfreebsd, using kqueue. + * unused: Fix crash when key names contain invalid utf8. + * sync: Avoid recent git's interactive merge. + + -- Joey Hess <joeyh@debian.org> Sun, 24 Jun 2012 12:36:50 -0400 + +git-annex (3.20120614) unstable; urgency=medium + + * addurl: Was broken by a typo introduced 2 released ago, now fixed. + Closes: #677576 + * Install man page when run by cabal, in a location where man will + find it, even when installing under $HOME. Thanks, Nathan Collins + + -- Joey Hess <joeyh@debian.org> Thu, 14 Jun 2012 20:21:29 -0400 + +git-annex (3.20120611) unstable; urgency=medium + + * add: Prevent (most) modifications from being made to a file while it + is being added to the annex. + * initremote: Automatically describe a remote when creating it. + * uninit: Refuse to run in a subdirectory. Closes: #677076 + + -- Joey Hess <joeyh@debian.org> Mon, 11 Jun 2012 10:32:01 -0400 + +git-annex (3.20120605) unstable; urgency=low + + * sync: Show a nicer message if a user tries to sync to a special remote. + * lock: Reset unlocked file to index, rather than to branch head. + * import: New subcommand, pulls files from a directory outside the annex + and adds them. + * Fix display of warning message when encountering a file that uses an + unsupported backend. + * Require that the SHA256 backend can be used when building, since it's the + default. + * Preserve parent environment when running hooks of the hook special remote. + + -- Joey Hess <joeyh@debian.org> Tue, 05 Jun 2012 14:03:39 -0400 + +git-annex (3.20120522) unstable; urgency=low + + * Pass -a to cp even when it supports --reflink=auto, to preserve + permissions. + * Clean up handling of git directory and git worktree. + * Add support for core.worktree, and fix support for GIT_WORK_TREE and + GIT_DIR. + + -- Joey Hess <joeyh@debian.org> Tue, 22 May 2012 11:16:13 -0400 + +git-annex (3.20120511) unstable; urgency=low + + * Rsync special remotes can be configured with shellescape=no + to avoid shell quoting that is normally done when using rsync over ssh. + This is known to be needed for certian rsync hosting providers + (specificially hidrive.strato.com) that use rsync over ssh but do not + pass it through the shell. + * dropunused: Allow specifying ranges to drop. + * addunused: New command, the opposite of dropunused, it relinks unused + content into the git repository. + * Fix use of several config settings: annex.ssh-options, + annex.rsync-options, annex.bup-split-options. (And adjust types to avoid + the bugs that broke several config settings.) + + -- Joey Hess <joeyh@debian.org> Fri, 11 May 2012 12:29:30 -0400 + +git-annex (3.20120430) unstable; urgency=low + + * Fix use of annex.diskreserve config setting. + * Directory special remotes now check annex.diskreserve. + * Support git's core.sharedRepository configuration. + * Add annex.http-headers and annex.http-headers-command config + settings, to allow custom headers to be sent with all HTTP requests. + (Requested by the Internet Archive) + * uninit: Clear annex.uuid from .git/config. Closes: #670639 + * Added shared cipher mode to encryptable special remotes. This option + avoids gpg key distribution, at the expense of flexability, and with + the requirement that all clones of the git repository be equally trusted. + + -- Joey Hess <joeyh@debian.org> Mon, 30 Apr 2012 13:16:10 -0400 + +git-annex (3.20120418) unstable; urgency=low + + * bugfix: Adding a dotfile also caused all non-dotfiles to be added. + * bup: Properly handle key names with spaces or other things that are + not legal git refs. + * 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. + * Renamed diskfree.c to avoid OSX case insensativity bug. + * cabal now installs git-annex-shell as a symlink to git-annex. + * cabal file now autodetects whether S3 support is available. + + -- Joey Hess <joeyh@debian.org> Wed, 18 Apr 2012 12:11:32 -0400 + +git-annex (3.20120406) unstable; urgency=low + + * Disable diskfree on kfreebsd, as I have a build failure on kfreebsd-i386 + that is quite likely caused by it. + + -- Joey Hess <joeyh@debian.org> Sat, 07 Apr 2012 15:50:36 -0400 + +git-annex (3.20120405) unstable; urgency=low + + * Rewrote free disk space checking code, moving the portability + handling into a small C library. + * status: Display amount of free disk space. + + -- Joey Hess <joeyh@debian.org> Thu, 05 Apr 2012 16:19:10 -0400 + +git-annex (3.20120315) unstable; urgency=low + + * fsck: Fix up any broken links and misplaced content caused by the + directory hash calculation bug fixed in the last release. + * sync: Sync to lower cost remotes first. + * status: Fixed to run in constant space. + * status: More accurate display of sizes of tmp and bad keys. + * unused: Now uses a bloom filter, and runs in constant space. + Use of a bloom filter does mean it will not notice a small + number of unused keys. For repos with up to half a million keys, + it will miss one key in 1000. + * Added annex.bloomcapacity and annex.bloomaccuracy, which can be + adjusted as desired to tune the bloom filter. + * status: Display amount of memory used by bloom filter, and + detect when it's too small for the number of keys in a repository. + * git-annex-shell: Runs hooks/annex-content after content is received + or dropped. + * Work around a bug in rsync (IMHO) introduced by openSUSE's SIP patch. + * 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. + + -- Joey Hess <joeyh@debian.org> Thu, 15 Mar 2012 11:05:28 -0400 + +git-annex (3.20120309) unstable; urgency=low + + * Fix key directory hash calculation code to behave as it did before + version 3.20120227 when a key contains non-ascii characters (only + WORM backend is likely to have been affected). + + -- Joey Hess <joeyh@debian.org> Fri, 09 Mar 2012 20:05:09 -0400 + +git-annex (3.20120230) unstable; urgency=low + + * "here" can be used to refer to the current repository, + which can read better than the old "." (which still works too). + * Directory special remotes now support chunking files written to them, + avoiding writing files larger than a specified size. + * Add progress bar display to the directory special remote. + * Add configurable hooks that are run when git-annex starts and stops + using a remote: remote.name.annex-start-command and + remote.name.annex-stop-command + * Fix a bug in symlink calculation code, that triggered in rare + cases where an annexed file is in a subdirectory that nearly + matched to the .git/annex/object/xx/yy subdirectories. + + -- Joey Hess <joeyh@debian.org> Mon, 05 Mar 2012 13:38:13 -0400 + +git-annex (3.20120229) unstable; urgency=low + + * Fix test suite to not require a unicode locale. + * Fix cabal build failure. Thanks, Sergei Trofimovich + + -- Joey Hess <joeyh@debian.org> Wed, 29 Feb 2012 02:31:31 -0400 + +git-annex (3.20120227) unstable; urgency=low + + * Modifications to support ghc 7.4's handling of filenames. + This version can only be built with ghc 7.4 or newer. See the ghc7.0 + branch for older ghcs. + * S3: Fix irrefutable pattern failure when accessing encrypted S3 + credentials. + * Use the haskell IfElse library. + * Fix teardown of stale cached ssh connections. + * Fixed to use the strict state monad, to avoid leaking all kinds of memory + due to lazy state update thunks when adding/fixing many files. + * Fixed some memory leaks that occurred when committing journal files. + * Added a annex.queuesize setting, useful when adding hundreds of thousands + of files on a system with plenty of memory. + * whereis: Prints the urls of files that the web special remote knows about. + * addurl --fast: Verifies that the url can be downloaded (only getting + its head), and records the size in the key. + * When checking that an url has a key, verify that the Content-Length, + if available, matches the size of the key. + * addurl: Added a --file option, which can be used to specify what + file the url is added to. This can be used to override the default + filename that is used when adding an url, which is based on the url. + Or, when the file already exists, the url is recorded as another + location of the file. + * addurl: Normalize badly encoded urls. + * addurl: Add --pathdepth option. + * rekey: New plumbing level command, can be used to change the keys used + for files en masse. + * Store web special remote url info in a more efficient location. + (Urls stored with this version will not be visible to older versions.) + * Deal with NFS problem that caused a failure to remove a directory + when removing content from the annex. + * Make a single location log commit after a remote has received or + dropped files. Uses a new "git-annex-shell commit" command when available. + * 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. + * configure: Check if ssh connection caching is supported by the installed + version of ssh and default annex.sshcaching accordingly. + * move --from, copy --from: Now 10 times faster when scanning to find + files in a remote on a local disk; rather than go through the location log + to see which files are present on the remote, it simply looks at the + disk contents directly. + + -- Joey Hess <joeyh@debian.org> Mon, 27 Feb 2012 12:58:21 -0400 + +git-annex (3.20120123) unstable; urgency=low + + * fsck --from: Fscking a remote is now supported. It's done by retrieving + the contents of the specified files from the remote, and checking them, + so can be an expensive operation. Still, if the remote is a special + remote, or a git repository that you cannot run fsck in locally, it's + nice to have the ability to fsck it. + * If you have any directory special remotes, now would be a good time to + fsck them, in case you were hit by the data loss bug fixed in the + previous release! + * fsck --from remote --fast: Avoids expensive file transfers, at the + expense of not checking file size and/or contents. + * Ssh connection caching is now enabled automatically by git-annex. + Only one ssh connection is made to each host per git-annex run, which + can speed some things up a lot, as well as avoiding repeated password + prompts. Concurrent git-annex processes also share ssh connections. + Cached ssh connections are shut down when git-annex exits. + * To disable the ssh caching (if for example you have your own broader + ssh caching configuration), set annex.sshcaching=false. + + -- Joey Hess <joeyh@debian.org> Mon, 23 Jan 2012 13:48:48 -0400 + +git-annex (3.20120116) unstable; urgency=medium + + * Fix data loss bug in directory special remote, when moving a file + to the remote failed, and partially transferred content was left + behind in the directory, re-running the same move would think it + succeeded and delete the local copy. + + -- Joey Hess <joeyh@debian.org> Mon, 16 Jan 2012 16:43:45 -0400 + +git-annex (3.20120115) unstable; urgency=low + + * Add a sanity check for bad StatFS results. On architectures + where StatFS does not currently work (s390, mips, powerpc, sparc), + this disables the diskreserve checking code, and attempting to + configure an annex.diskreserve will result in an error. + * Fix QuickCheck dependency in cabal file. + * Minor optimisations. + + -- Joey Hess <joeyh@debian.org> Sun, 15 Jan 2012 13:54:20 -0400 + +git-annex (3.20120113) unstable; urgency=low + + * log: Add --gource mode, which generates output usable by gource. + * map: Fix display of remote repos + * Add annex-trustlevel configuration settings, which can be used to + override the trust level of a remote. + * git-annex, git-union-merge: Support GIT_DIR and GIT_WORK_TREE. + * Add libghc-testpack-dev to build depends on all arches. + + -- Joey Hess <joeyh@debian.org> Fri, 13 Jan 2012 15:35:17 -0400 + +git-annex (3.20120106) unstable; urgency=low + + * Support unescaped repository urls, like git does. + * log: New command that displays the location log for files, + showing each repository they were added to and removed from. + * Fix overbroad gpg --no-tty fix from last release. + + -- Joey Hess <joeyh@debian.org> Sat, 07 Jan 2012 13:16:23 -0400 + +git-annex (3.20120105) unstable; urgency=low + + * Added annex-web-options configuration settings, which can be + used to provide parameters to whichever of wget or curl git-annex uses + (depends on which is available, but most of their important options + suitable for use here are the same). + * Dotfiles, and files inside dotdirs are not added by "git annex add" + unless the dotfile or directory is explicitly listed. So "git annex add ." + will add all untracked files in the current directory except for those in + dotdirs. + * Added quickcheck to build dependencies, and fail if test suite cannot be + built. + * fsck: Do backend-specific check before checking numcopies is satisfied. + * Run gpg with --no-tty. Closes: #654721 + + -- Joey Hess <joeyh@debian.org> Thu, 05 Jan 2012 13:44:12 -0400 + +git-annex (3.20111231) unstable; urgency=low + + * sync: Improved to work well without a central bare repository. + Thanks to Joachim Breitner. + * Rather than manually committing, pushing, pulling, merging, and git annex + merging, we encourage you to give "git annex sync" a try. + * sync --fast: Selects some of the remotes with the lowest annex.cost + and syncs those, in addition to any specified at the command line. + * Union merge now finds the least expensive way to represent the merge. + * reinject: Add a sanity check for using an annexed file as the source file. + * Properly handle multiline git config values. + * Fix the hook special remote, which bitrotted a while ago. + * map: --fast disables use of dot to display map + * Test suite improvements. Current top-level test coverage: 75% + * Improve deletion of files from rsync special remotes. Closes: #652849 + * Add --include, which is the same as --not --exclude. + * Format strings can be specified using the new --format option, to control + what is output by git annex find. + * Support git annex find --json + * Fixed behavior when multiple insteadOf configs are provided for the + same url base. + * Can now be built with older git versions (before 1.7.7); the resulting + binary should only be used with old git. + * Updated to build with monad-control 0.3. + + -- Joey Hess <joeyh@debian.org> Sat, 31 Dec 2011 14:55:29 -0400 + +git-annex (3.20111211) unstable; urgency=medium + + * Fix bug in last version in getting contents from bare repositories. + * Ensure that git-annex branch changes are merged into git-annex's index, + which fixes a bug that could cause changes that were pushed to the + git-annex branch to get reverted. As a side effect, it's now safe + for users to check out and commit changes directly to the git-annex + branch. + * map: Fix a failure to detect a loop when both repositories are local + and refer to each other with relative paths. + * Prevent key names from containing newlines. + * add: If interrupted, add can leave files converted to symlinks but not + yet added to git. Running the add again will now clean up this situtation. + * Fix caching of decrypted ciphers, which failed when drop had to check + multiple different encrypted special remotes. + * unannex: Can be run on files that have been added to the annex, but not + yet committed. + * sync: New command that synchronises the local repository and default + remote, by running git commit, pull, and push for you. + * Version monad-control dependency in cabal file. + + -- Joey Hess <joeyh@debian.org> Sun, 11 Dec 2011 21:24:39 -0400 + +git-annex (3.20111203) unstable; urgency=low + + * The VFAT filesystem on recent versions of Linux, when mounted with + shortname=mixed, does not get along well with git-annex's mixed case + .git/annex/objects hash directories. To avoid this problem, new content + is now stored in all-lowercase hash directories. Except for non-bare + repositories which would be a pain to transition and cannot be put on FAT. + (Old mixed-case hash directories are still tried for backwards + compatibility.) + * Flush json output, avoiding a buffering problem that could result in + doubled output. + * Avoid needing haskell98 and other fixes for new ghc. Thanks, Mark Wright. + * Bugfix: dropunused did not drop keys with two spaces in their name. + * Support for storing .git/annex on a different device than the rest of the + git repository. + * --inbackend can be used to make git-annex only operate on files + whose content is stored using a specified key-value backend. + * dead: A command which says that a repository is gone for good + and you don't want git-annex to mention it again. + + -- Joey Hess <joeyh@debian.org> Sat, 03 Dec 2011 21:01:45 -0400 + +git-annex (3.20111122) unstable; urgency=low + + * merge: Improve commit messages to mention what was merged. + * Avoid doing auto-merging in commands that don't need fully current + information from the git-annex branch. In particular, git annex add + no longer needs to auto-merge. + * init: When run in an already initalized repository, and without + a description specified, don't delete the old description. + * Optimised union merging; now only runs git cat-file once, and runs + in constant space. + * status: Now displays trusted, untrusted, and semitrusted repositories + separately. + * status: Include all special remotes in the list of repositories. + * status: Fix --json mode. + * status: --fast is back + * Fix support for insteadOf url remapping. Closes: #644278 + * When not run in a git repository, git-annex can still display a usage + message, and "git annex version" even works. + * migrate: Don't fall over a stale temp file. + * Avoid excessive escaping for rsync special remotes that are not accessed + over ssh. + * find: Support --print0 + + -- Joey Hess <joeyh@debian.org> Tue, 22 Nov 2011 14:31:45 -0400 + +git-annex (3.20111111) unstable; urgency=low + + * Handle a case where an annexed file is moved into a gitignored directory, + by having fix --force add its change. + * Avoid cyclic drop problems. + * Optimized copy --from and get --from to avoid checking the location log + for files that are already present. + * Automatically fix up badly formatted uuid.log entries produced by + 3.20111105, whenever the uuid.log is changed (ie, by init or describe). + * map: Support remotes with /~/ and /~user/ + + -- Joey Hess <joeyh@debian.org> Fri, 11 Nov 2011 13:44:18 -0400 + +git-annex (3.20111107) unstable; urgency=low + + * merge: Use fast-forward merges when possible. + Thanks Valentin Haenel for a test case showing how non-fast-forward + merges could result in an ongoing pull/merge/push cycle. + * Don't try to read config from repos with annex-ignore set. + * Bugfix: In the past two releases, git-annex init has written the uuid.log + in the wrong format, with the UUID and description flipped. + + -- Joey Hess <joeyh@debian.org> Mon, 07 Nov 2011 12:47:44 -0400 + +git-annex (3.20111105) unstable; urgency=low + + * The default backend used when adding files to the annex is changed + from WORM to SHA256. + To get old behavior, add a .gitattributes containing: * annex.backend=WORM + * Sped up some operations on remotes that are on the same host. + * copy --to: Fixed leak when copying many files to a remote on the same + host. + * uninit: Add guard against being run with the git-annex branch checked out. + * Fail if --from or --to is passed to commands that do not support them. + * drop --from is now supported to remove file content from a remote. + * status: Now always shows the current repository, even when it does not + appear in uuid.log. + * fsck: Now works in bare repositories. Checks location log information, + and file contents. Does not check that numcopies is satisfied, as + .gitattributes information about numcopies is not available in a bare + repository. + * unused, dropunused: Now work in bare repositories. + * Removed the setkey command, and added a reinject command with a more + useful interface. + * The fromkey command now takes the key as its first parameter. The --key + option is no longer used. + * Built without any filename containing .git being excluded. Closes: #647215 + * Record uuid when auto-initializing a remote so it shows in status. + * Bugfix: Fixed git-annex init crash in a bare repository when there was + already an existing git-annex branch. + * Pass -t to rsync to preserve timestamps. + + -- Joey Hess <joeyh@debian.org> Sat, 05 Nov 2011 15:47:52 -0400 + +git-annex (3.20111025) unstable; urgency=low + + * A remote can have a annexUrl configured, that is used by git-annex + instead of its usual url. (Similar to pushUrl.) + * migrate: Copy url logs for keys when migrating. + * git-annex-shell: GIT_ANNEX_SHELL_READONLY and GIT_ANNEX_SHELL_LIMITED + environment variables can be set to limit what commands can be run. + This is used by gitolite's new git-annex support! + + -- Joey Hess <joeyh@debian.org> Tue, 25 Oct 2011 13:03:08 -0700 + +git-annex (3.20111011) unstable; urgency=low + + * This version of git-annex only works with git 1.7.7 and newer. + The breakage with old versions is subtle, and affects the + annex.numcopies settings in .gitattributes, so be sure to upgrade git + to 1.7.7. (Debian package now depends on that version.) + * Don't pass absolute paths to git show-attr, as it started following + symlinks when that's done in 1.7.7. Instead, use relative paths, + which show-attr only handles 100% correctly in 1.7.7. Closes: #645046 + * Fix referring to remotes by uuid. + * New or changed repository descriptions in uuid.log now have a timestamp, + which is used to ensure the newest description is used when the uuid.log + has been merged. + * Note that older versions of git-annex will display the timestamp as part + of the repository description, which is ugly but otherwise harmless. + * Add timestamps to trust.log and remote.log too. + * git-annex-shell: Added the --uuid option. + * git-annex now asks git-annex-shell to verify that it's operating in + the expected repository. + * Note that this git-annex will not interoperate with remotes using + older versions of git-annex-shell. + * Now supports git's insteadOf configuration, to modify the url + used to access a remote. Note that pushInsteadOf is not used; + that and pushurl are reserved for actual git pushes. Closes: #644278 + * status: List all known repositories. + * When displaying a list of repositories, show git remote names + in addition to their descriptions. + * Add locking to avoid races when changing the git-annex branch. + * Various speed improvements gained by using ByteStrings. + * Contain the zombie hordes. + + -- Joey Hess <joeyh@debian.org> Tue, 11 Oct 2011 23:00:02 -0400 + +git-annex (3.20110928) unstable; urgency=low + + * --in can be used to make git-annex only operate on files + believed to be present in a given repository. + * Arbitrarily complex expressions can be built to limit the files git-annex + operates on, by combining the options --not --and --or -( and -) + Example: git annex get --exclude '*.mp3' --and --not -( --in usbdrive --or --in archive -) + * --copies=N can be used to make git-annex only operate on files with + the specified number of copies. (And --not --copies=N for the inverse.) + * find: Rather than only showing files whose contents are present, + when used with --exclude --copies or --in, displays all files that + match the specified conditions. + * Note that this is a behavior change for git-annex find! Old behavior + can be gotten by using: git-annex find --in . + * status: Massively sped up; remove --fast mode. + * unused: File contents used by branches and tags are no longer + considered unused, even when not used by the current branch. This is + the final piece of the puzzle needed for git-annex to to play nicely + with branches. + + -- Joey Hess <joeyh@debian.org> Wed, 28 Sep 2011 18:14:02 -0400 + +git-annex (3.20110915) unstable; urgency=low + + * whereis: Show untrusted locations separately and do not include in + location count. + * Fix build without S3. + * addurl: Always use whole url as destination filename, rather than + only its file component. + * get, drop, copy: Added --auto option, which decides whether + to get/drop content as needed to work toward the configured numcopies. + * bugfix: drop and fsck did not honor --exclude + + -- Joey Hess <joeyh@debian.org> Thu, 15 Sep 2011 22:25:46 -0400 + +git-annex (3.20110906) unstable; urgency=low + + * Improve display of newlines around error and warning messages. + * Fix Makefile to work with cabal again. + + -- Joey Hess <joeyh@debian.org> Tue, 06 Sep 2011 13:45:16 -0400 + +git-annex (3.20110902) unstable; urgency=low + + * Set EMAIL when running test suite so that git does not need to be + configured first. Closes: #638998 + * The wget command will now be used in preference to curl, if available. + * init: Make description an optional parameter. + * unused, status: Sped up by avoiding unnecessary stats of annexed files. + * unused --remote: Reduced memory use to 1/4th what was used before. + * Add --json switch, to produce machine-consumable output. + + -- Joey Hess <joeyh@debian.org> Fri, 02 Sep 2011 21:20:37 -0400 + +git-annex (3.20110819) unstable; urgency=low + + * Now "git annex init" only has to be run once, when a git repository + is first being created. Clones will automatically notice that git-annex + is in use and automatically perform a basic initalization. It's + still recommended to run "git annex init" in any clones, to describe them. + * Added annex-cost-command configuration, which can be used to vary the + cost of a remote based on the output of a shell command. + * Fix broken upgrade from V1 repository. Closes: #638584 + + -- Joey Hess <joeyh@debian.org> Fri, 19 Aug 2011 20:34:09 -0400 + +git-annex (3.20110817) unstable; urgency=low + + * Fix shell escaping in rsync special remote. + * addurl: --fast can be used to avoid immediately downloading the url. + * Added support for getting content from git remotes using http (and https). + * Added curl to Debian package dependencies. + + -- Joey Hess <joeyh@debian.org> Wed, 17 Aug 2011 01:29:02 -0400 + +git-annex (3.20110719) unstable; urgency=low + + * add: Be even more robust to avoid ever leaving the file seemingly deleted. + Closes: #634233 + * Bugfix: Make add ../ work. + * Support the standard git -c name=value + * unannex: Clean up use of git commit -a. + + -- Joey Hess <joeyh@debian.org> Tue, 19 Jul 2011 23:39:53 -0400 + +git-annex (3.20110707) unstable; urgency=low + + * Fix sign bug in disk free space checking. + * Bugfix: Forgot to de-escape keys when upgrading. Could result in + bad location log data for keys that contain [&:%] in their names. + (A workaround for this problem is to run git annex fsck.) + * add: Avoid a failure mode that resulted in the file seemingly being + deleted (content put in the annex but no symlink present). + + -- Joey Hess <joeyh@debian.org> Thu, 07 Jul 2011 19:29:39 -0400 + +git-annex (3.20110705) unstable; urgency=low + + * uninit: Delete the git-annex branch and .git/annex/ + * unannex: In --fast mode, file content is left in the annex, and a + hard link made to it. + * uninit: Use unannex in --fast mode, to support unannexing multiple + files that link to the same content. + * Drop the dependency on the haskell curl bindings, use regular haskell HTTP. + * Fix a pipeline stall when upgrading (caused by #624389). + + -- Joey Hess <joeyh@debian.org> Tue, 05 Jul 2011 14:37:39 -0400 + +git-annex (3.20110702) unstable; urgency=low + + * Now the web can be used as a special remote. + This feature replaces the old URL backend. + * addurl: New command to download an url and store it in the annex. + * Sped back up fsck, copy --from, and other commands that often + have to read a lot of information from the git-annex branch. Such + commands are now faster than they were before introduction of the + git-annex branch. + * Always ensure git-annex branch exists. + * Modify location log parser to allow future expansion. + * --force will cause add, etc, to operate on ignored files. + * Avoid mangling encoding when storing the description of repository + and other content. + * cabal can now be used to build git-annex. This is substantially + slower than using make, does not build or install documentation, + does not run the test suite, and is not particularly recommended, + but could be useful to some. + + -- Joey Hess <joeyh@debian.org> Sat, 02 Jul 2011 15:00:18 -0400 + +git-annex (3.20110624) experimental; urgency=low + + * New repository format, annex.version=3. Use `git annex upgrade` to migrate. + * git-annex now stores its logs in a git-annex branch. + * merge: New subcommand. Auto-merges the new git-annex branch. + * Improved handling of bare git repos with annexes. Many more commands will + work in them. + * git-annex is now more robust; it will never leave state files + uncommitted when some other git process comes along and locks the index + at an inconvenient time. + * rsync is now used when copying files from repos on other filesystems. + cp is still used when copying file from repos on the same filesystem, + since --reflink=auto can make it significantly faster on filesystems + such as btrfs. + * Allow --trust etc to specify a repository by name, for temporarily + trusting repositories that are not configured remotes. + * unlock: Made atomic. + * git-union-merge: New git subcommand, that does a generic union merge + operation, and operates efficiently without touching the working tree. + + -- Joey Hess <joeyh@debian.org> Fri, 24 Jun 2011 14:32:18 -0400 + +git-annex (0.20110610) unstable; urgency=low + + * Add --numcopies option. + * Add --trust, --untrust, and --semitrust options. + * get --from is the same as copy --from + * Bugfix: Fix fsck to not think all SHAnE keys are bad. + + -- Joey Hess <joeyh@debian.org> Fri, 10 Jun 2011 11:48:40 -0400 + +git-annex (0.20110601) unstable; urgency=low + + * Minor bugfixes and error message improvements. + * Massively sped up `git annex lock` by avoiding use of the uber-slow + `git reset`, and only running `git checkout` once, even when many files + are being locked. + * Fix locking of files with staged changes. + * Somewhat sped up `git commit` of modifications to unlocked files. + * Build fix for older ghc. + + -- Joey Hess <joeyh@debian.org> Wed, 01 Jun 2011 11:50:47 -0400 + +git-annex (0.20110522) unstable; urgency=low + + * Closer emulation of git's behavior when told to use "foo/.git" as a + git repository instead of just "foo". Closes: #627563 + * Fix bug in --exclude introduced in 0.20110516. + + -- Joey Hess <joeyh@debian.org> Fri, 27 May 2011 20:20:41 -0400 + +git-annex (0.20110521) unstable; urgency=low + + * status: New subcommand to show info about an annex, including its size. + * --backend now overrides any backend configured in .gitattributes files. + * Add --debug option. Closes: #627499 + + -- Joey Hess <joeyh@debian.org> Sat, 21 May 2011 11:52:53 -0400 + +git-annex (0.20110516) unstable; urgency=low + + * Add a few tweaks to make it easy to use the Internet Archive's variant + of S3. In particular, munge key filenames to comply with the IA's filename + limits, disable encryption, support their nonstandard way of creating + buckets, and allow x-archive-* headers to be specified in initremote to + set item metadata. + * Added filename extension preserving variant backends SHA1E, SHA256E, etc. + * migrate: Use current filename when generating new key, for backends + where the filename affects the key name. + * Work around a bug in Network.URI's handling of bracketed ipv6 addresses. + + -- Joey Hess <joeyh@debian.org> Mon, 16 May 2011 14:16:52 -0400 + +git-annex (0.20110503) unstable; urgency=low + + * Fix hasKeyCheap setting for bup and rsync special remotes. + * Add hook special remotes. + * Avoid crashing when an existing key is readded to the annex. + * unused: Now also lists files fsck places in .git/annex/bad/ + * S3: When encryption is enabled, the Amazon S3 login credentials + are stored, encrypted, in .git-annex/remotes.log, so environment + variables need not be set after the remote is initialized. + + -- Joey Hess <joeyh@debian.org> Tue, 03 May 2011 20:56:01 -0400 + +git-annex (0.20110427) unstable; urgency=low + + * Switch back to haskell SHA library, so git-annex remains buildable on + Debian stable. + * Added rsync special remotes. This could be used, for example, to + store annexed content on rsync.net (encrypted naturally). Or anywhere else. + * Bugfix: Avoid pipeline stall when running git annex drop or fsck on a + lot of files. Possibly only occured with ghc 7. + + -- Joey Hess <joeyh@debian.org> Wed, 27 Apr 2011 22:50:26 -0400 + +git-annex (0.20110425) unstable; urgency=low + + * Use haskell Crypto library instead of haskell SHA library. + * Remove testpack from build depends for non x86 architectures where it + is not available. The test suite will not be run if it cannot be compiled. + * Avoid using absolute paths when staging location log, as that can + confuse git when a remote's path contains a symlink. Closes: #621386 + + -- Joey Hess <joeyh@debian.org> Mon, 25 Apr 2011 15:47:00 -0400 + +git-annex (0.20110420) unstable; urgency=low + + * Update Debian build dependencies for ghc 7. + * Debian package is now built with S3 support. + Thanks Joachim Breitner for making this possible. + * Somewhat improved memory usage of S3, still work to do. + Thanks Greg Heartsfield for ongoing work to improve the hS3 library + for git-annex. + + -- Joey Hess <joeyh@debian.org> Thu, 21 Apr 2011 15:00:48 -0400 + +git-annex (0.20110419) unstable; urgency=low + + * Don't run gpg in batch mode, so it can prompt for passphrase when + there is no agent. + * Add missing build dep on dataenc. + * S3: Fix stalls when transferring encrypted data. + * bup: Avoid memory leak when transferring encrypted data. + + -- Joey Hess <joeyh@debian.org> Tue, 19 Apr 2011 21:26:51 -0400 + +git-annex (0.20110417) unstable; urgency=low + + * bup is now supported as a special type of remote. + * The data sent to special remotes (Amazon S3, bup, etc) can be encrypted + using GPG for privacy. + * Use lowercase hash directories for locationlog files, to avoid + some issues with git on OSX with the mixed-case directories. + No migration is needed; the old mixed case hash directories are still + read; new information is written to the new directories. + * Unused files on remotes, particulary special remotes, can now be + identified and dropped, by using "--from remote" with git annex unused + and git annex dropunused. + * Clear up short option confusion between --from and --force (-f is now + --from, and there is no short option for --force). + * Add build depend on perlmagick so docs are consistently built. + Closes: #621410 + * Add doc-base file. Closes: #621408 + * Periodically flush git command queue, to avoid boating memory usage + too much. + * Support "sha1" and "sha512" commands on FreeBSD, and allow building + if any/all SHA commands are not available. Thanks, Fraser Tweedale + + -- Joey Hess <joeyh@debian.org> Sun, 17 Apr 2011 12:00:24 -0400 + +git-annex (0.20110401) experimental; urgency=low + + * Amazon S3 is now supported as a special type of remote. + Warning: Encrypting data before sending it to S3 is not yet supported. + * Note that Amazon S3 support is not built in by default on Debian yet, + as hS3 is not packaged. + * fsck: Ensure that files and directories in .git/annex/objects + have proper permissions. + * Added a special type of remote called a directory remote, which + simply stores files in an arbitrary local directory. + * Bugfix: copy --to --fast never really copied, fixed. + + -- Joey Hess <joeyh@debian.org> Fri, 01 Apr 2011 21:27:22 -0400 + +git-annex (0.20110328) experimental; urgency=low + + * annex.diskreserve can be given in arbitrary units (ie "0.5 gigabytes") + * Generalized remotes handling, laying groundwork for remotes that are + not regular git remotes. (Think Amazon S3.) + * Provide a less expensive version of `git annex copy --to`, enabled + via --fast. This assumes that location tracking information is correct, + rather than contacting the remote for every file. + * Bugfix: Keys could be received into v1 annexes from v2 annexes, via + v1 git-annex-shell. This results in some oddly named keys in the v1 + annex. Recognise and fix those keys when upgrading, instead of crashing. + + -- Joey Hess <joeyh@debian.org> Mon, 28 Mar 2011 10:47:29 -0400 + +git-annex (0.20110325) experimental; urgency=low + + * Free space checking is now done, for transfers of data for keys + that have free space metadata. (Notably, not for SHA* keys generated + with git-annex 0.2x or earlier.) The code is believed to work on + Linux, FreeBSD, and OSX; check compile-time messages to see if it + is not enabled for your OS. + * Add annex.diskreserve config setting, to control how much free space + to reserve for other purposes and avoid using (defaults to 1 mb). + * Add --fast flag, that can enable less expensive, but also less thorough + versions of some commands. + * fsck: In fast mode, avoid checking checksums. + * unused: In fast mode, just show all existing temp files as unused, + and avoid expensive scan for other unused content. + * migrate: Support migrating v1 SHA keys to v2 SHA keys with + size information that can be used for free space checking. + * Fix space leak in fsck and drop commands. + * migrate: Bugfix for case when migrating a file results in a key that + is already present in .git/annex/objects. + * dropunused: Significantly sped up; only read unused log file once. + + -- Joey Hess <joeyh@debian.org> Fri, 25 Mar 2011 00:47:37 -0400 + +git-annex (0.20110320) experimental; urgency=low + + * Fix dropping of files using the URL backend. + * Fix support for remotes with '.' in their names. + * Add version command to show git-annex version as well as repository + version information. + * No longer auto-upgrade to repository format 2, to avoid accidental + upgrades, etc. Use git-annex upgrade when you're ready to run this + version. + + -- Joey Hess <joeyh@debian.org> Sun, 20 Mar 2011 16:36:33 -0400 + +git-annex (0.20110316) experimental; urgency=low + + * New repository format, annex.version=2. + * The first time git-annex is run in an old format repository, it + will automatically upgrade it to the new format, staging all + necessary changes to git. Also added a "git annex upgrade" command. + * Colons are now avoided in filenames, so bare clones of git repos + can be put on USB thumb drives formatted with vFAT or similar + filesystems. + * Added two levels of hashing to object directory and .git-annex logs, + to improve scalability with enormous numbers of annexed + objects. (With one hundred million annexed objects, each + directory would contain fewer than 1024 files.) + * The setkey, fromkey, and dropkey subcommands have changed how + the key is specified. --backend is no longer used with these. + + -- Joey Hess <joeyh@debian.org> Wed, 16 Mar 2011 16:20:23 -0400 + +git-annex (0.24) unstable; urgency=low + + Branched the 0.24 series, which will be maintained for a while to + support v1 git-annex repos, while main development moves to the 0.2011 + series, with v2 git-annex repos. + + * Add Suggests on graphviz. Closes: #618039 + * When adding files to the annex, the symlinks pointing at the annexed + content are made to have the same mtime as the original file. + While git does not preserve that information, this allows a tool + like metastore to be used with annexed files. + (Currently this is only done on systems supporting POSIX 200809.) + + -- Joey Hess <joeyh@debian.org> Wed, 16 Mar 2011 18:35:13 -0400 + +git-annex (0.23) unstable; urgency=low + + * Support ssh remotes with a port specified. + * whereis: New subcommand to show where a file's content has gotten to. + * Rethink filename encoding handling for display. Since filename encoding + may or may not match locale settings, any attempt to decode filenames + will fail for some files. So instead, do all output in binary mode. + + -- Joey Hess <joeyh@debian.org> Sat, 12 Mar 2011 15:02:49 -0400 + +git-annex (0.22) unstable; urgency=low + + * Git annexes can now be attached to bare git repositories. + (Both the local and remote host must have this version of git-annex + installed for it to work.) + * Support filenames that start with a dash; when such a file is passed + to a utility it will be escaped to avoid it being interpreted as an + option. (I went a little overboard and got the type checker involved + in this, so such files are rather comprehensively supported now.) + * New backends: SHA512 SHA384 SHA256 SHA224 + (Supported on systems where corresponding shaNsum commands are available.) + * describe: New subcommand that can set or change the description of + a repository. + * Fix test suite to reap zombies. + (Zombies can be particularly annoying on OSX; thanks to Jimmy Tang + for his help eliminating the infestation... for now.) + * Make test suite not rely on a working cp -pr. + (The Unix wars are still ON!) + * Look for dir.git directories the same as git does. + * Support remote urls specified as relative paths. + * Support non-ssh remote paths that contain tilde expansions. + * fsck: Check for and repair location log damage. + * Bugfix: When fsck detected and moved away corrupt file content, it did + not update the location log. + + -- Joey Hess <joeyh@debian.org> Fri, 04 Mar 2011 15:10:57 -0400 + +git-annex (0.21) unstable; urgency=low + + * test: Don't rely on chmod -R working. + * unannex: Fix recently introduced bug when attempting to unannex more + than one file at a time. + * test: Set git user name and email in case git can't guess values. + * Fix display of unicode filenames. + + -- Joey Hess <joeyh@debian.org> Fri, 11 Feb 2011 23:21:08 -0400 + +git-annex (0.20) unstable; urgency=low + + * Preserve specified file ordering when instructed to act on multiple + files or directories. For example, "git annex get a b" will now always + get "a" before "b". Previously it could operate in either order. + * unannex: Commit staged changes at end, to avoid some confusing behavior + with the pre-commit hook, which would see some types of commits after + an unannex as checking in of an unlocked file. + * map: New subcommand that uses graphviz to display a nice map of + the git repository network. + * Deal with the mtl/monads-fd conflict. + * configure: Check for sha1sum. + + -- Joey Hess <joeyh@debian.org> Tue, 08 Feb 2011 18:57:24 -0400 + +git-annex (0.19) unstable; urgency=low + + * configure: Support using the uuidgen command if the uuid command is + not available. + * Allow --exclude to be specified more than once. + * There are now three levels of repository trust. + * untrust: Now marks the current repository as untrusted. + * semitrust: Now restores the default trust level. (What untrust used to do.) + * fsck, drop: Take untrusted repositories into account. + * Bugfix: Files were copied from trusted remotes first even if their + annex.cost was higher than other remotes. + * Improved temp file handling. Transfers of content can now be resumed + from temp files later; the resume does not have to be the immediate + next git-annex run. + * unused: Include partially transferred content in the list. + * Bugfix: Running a second git-annex while a first has a transfer in + progress no longer deletes the first processes's temp file. + + -- Joey Hess <joeyh@debian.org> Fri, 28 Jan 2011 14:31:37 -0400 + +git-annex (0.18) unstable; urgency=low + + * Bugfix: `copy --to` and `move --to` forgot to stage location log changes + after transferring the file to the remote repository. + (Did not affect ssh remotes.) + * fsck: Fix bug in moving of corrupted files to .git/annex/bad/ + * migrate: Fix support for --backend option. + * unlock: Fix behavior when file content is not present. + * Test suite improvements. Current top-level test coverage: 80% + + -- Joey Hess <joeyh@debian.org> Fri, 14 Jan 2011 14:17:44 -0400 + +git-annex (0.17) unstable; urgency=low + + * unannex: Now skips files whose content is not present, rather than + it being an error. + * New migrate subcommand can be used to switch files to using a different + backend, safely and with no duplication of content. + * bugfix: Fix crash caused by empty key name. (Thanks Henrik for reporting.) + + -- Joey Hess <joeyh@debian.org> Sun, 09 Jan 2011 10:04:11 -0400 + +git-annex (0.16) unstable; urgency=low + + * git-annex-shell: Avoid exposing any git repo config except for the + annex.uuid when doing configlist. + * bugfix: Running `move --to` with a remote whose UUID was not yet known + could result in git-annex not recording on the local side where the + file was moved to. This could not result in data loss, or even a + significant problem, since the remote *did* record that it had the file. + * Also, add a general guard to detect attempts to record information + about repositories with missing UUIDs. + * bugfix: Running `move --to` with a non-ssh remote failed. + * bugfix: Running `copy --to` with a non-ssh remote actually did a move. + * Many test suite improvements. Current top-level test coverage: 65% + + -- Joey Hess <joeyh@debian.org> Fri, 07 Jan 2011 14:33:13 -0400 + +git-annex (0.15) unstable; urgency=low + + * Support scp-style urls for remotes (host:path). + * Support ssh urls containing "~". + * Add trust and untrust subcommands, to allow configuring repositories + that are trusted to retain files without explicit checking. + * Fix bug in numcopies handling when multiple remotes pointed to the + same repository. + * Introduce the git-annex-shell command. It's now possible to make + a user have it as a restricted login shell, similar to git-shell. + * Note that git-annex will always use git-annex-shell when accessing + a ssh remote, so all of your remotes need to be upgraded to this + version of git-annex at the same time. + * Now rsync is exclusively used for copying files to and from remotes. + scp is not longer supported. + + -- Joey Hess <joeyh@debian.org> Fri, 31 Dec 2010 22:00:52 -0400 + +git-annex (0.14) unstable; urgency=low + + * Bugfix to git annex unused in a repository with nothing yet annexed. + * Support upgrading from a v0 annex with nothing in it. + * Avoid multiple calls to git ls-files when passed eg, "*". + + -- Joey Hess <joeyh@debian.org> Fri, 24 Dec 2010 17:38:48 -0400 + +git-annex (0.13) unstable; urgency=low + + * Makefile: Install man page and html (when built). + * Makefile: Add GHCFLAGS variable. + * Fix upgrade from 0.03. + * Support remotes using git+ssh and ssh+git as protocol. + Closes: #607056 + + -- Joey Hess <joeyh@debian.org> Tue, 14 Dec 2010 13:05:10 -0400 + +git-annex (0.12) unstable; urgency=low + + * Add --exclude option to exclude files from processing. + * mwdn2man: Fix a bug in newline supression. Closes: #606578 + * Bugfix to git annex add of an unlocked file in a subdir. Closes: #606579 + * Makefile: Add PREFIX variable. + + -- Joey Hess <joeyh@debian.org> Sat, 11 Dec 2010 17:32:00 -0400 + +git-annex (0.11) unstable; urgency=low + + * If available, rsync will be used for file transfers from remote + repositories. This allows resuming interrupted transfers. + * Added remote.annex-rsync-options. + * Avoid deleting temp files when rsync fails. + * Improve detection of version 0 repos. + * Add uninit subcommand. Closes: #605749 + + -- Joey Hess <joeyh@debian.org> Sat, 04 Dec 2010 17:27:42 -0400 + +git-annex (0.10) unstable; urgency=low + + * In .gitattributes, the annex.numcopies attribute can be used + to control the number of copies to retain of different types of files. + * Bugfix: Always correctly handle gitattributes when in a subdirectory of + the repository. (Had worked ok for ones like "*.mp3", but failed for + ones like "dir/*".) + * fsck: Fix warning about not enough copies of a file, when locations + are known, but are not available in currently configured remotes. + * precommit: Optimise to avoid calling git-check-attr more than once. + * The git-annex-backend attribute has been renamed to annex.backend. + + -- Joey Hess <joeyh@debian.org> Sun, 28 Nov 2010 19:28:05 -0400 + +git-annex (0.09) unstable; urgency=low + + * Add copy subcommand. + * Fix bug in setkey subcommand triggered by move --to. + + -- Joey Hess <joeyh@debian.org> Sat, 27 Nov 2010 17:14:59 -0400 + +git-annex (0.08) unstable; urgency=low + + * Fix `git annex add ../foo` (when ran in a subdir of the repo). + * Add configure step to build process. + * Only use cp -a if it is supported, falling back to cp -p or plain cp + as needed for portability. + * cp --reflink=auto is used if supported, and will make git annex unlock + much faster on filesystems like btrfs that support copy on write. + + -- Joey Hess <joeyh@debian.org> Sun, 21 Nov 2010 13:45:44 -0400 + +git-annex (0.07) unstable; urgency=low + + * find: New subcommand. + * unused: New subcommand, finds unused data. (Split out from fsck.) + * dropunused: New subcommand, provides for easy dropping of unused keys + by number, as listed by the unused subcommand. + * fsck: Print warnings to stderr; --quiet can now be used to only see + problems. + + -- Joey Hess <joeyh@debian.org> Mon, 15 Nov 2010 18:41:50 -0400 + +git-annex (0.06) unstable; urgency=low + + * fsck: Check if annex.numcopies is satisfied. + * fsck: Verify the sha1 of files when the SHA1 backend is used. + * fsck: Verify the size of files when the WORM backend is used. + * fsck: Allow specifying individual files if fscking everything + is not desired. + * fsck: Fix bug, introduced in 0.04, in detection of unused data. + + -- Joey Hess <joeyh@debian.org> Sat, 13 Nov 2010 16:24:29 -0400 + +git-annex (0.05) unstable; urgency=low + + * Optimize both pre-commit and lock subcommands to not call git diff + on every file being committed/locked. + (This actually also works around a bug in ghc, that caused + git-annex 0.04 pre-commit to sometimes corrupt filename being read + from git ls-files and fail. + See <http://hackage.haskell.org/trac/ghc/ticket/4493> + The excessive number of calls made by pre-commit exposed the ghc bug. + Thanks Josh Triplett for the debugging.) + * Build with -O2. + + -- Joey Hess <joeyh@debian.org> Thu, 11 Nov 2010 18:31:09 -0400 + +git-annex (0.04) unstable; urgency=low + + * Add unlock subcommand, which replaces the symlink with a copy of + the file's content in preparation of changing it. The "edit" subcommand + is an alias for unlock. + * Add lock subcommand. + * Unlocked files will now automatically be added back into the annex when + committed (and the updated symlink committed), by some magic in the + pre-commit hook. + * The SHA1 backend is now fully usable. + * Add annex.version, which will be used to automate upgrades + between incompatible versions. + * Reorganised the layout of .git/annex/ + * The new layout will be automatically upgraded to the first time + git-annex is used in a repository with the old layout. + * Note that git-annex 0.04 cannot transfer content from old repositories + that have not yet been upgraded. + * Annexed file contents are now made unwritable and put in unwriteable + directories, to avoid them accidentially being removed or modified. + (Thanks Josh Triplett for the idea.) + * Add build dep on libghc6-testpack-dev. Closes: #603016 + * Avoid using runghc to run test suite as it is not available on all + architectures. Closes: #603006 + + -- Joey Hess <joeyh@debian.org> Wed, 10 Nov 2010 14:23:23 -0400 + +git-annex (0.03) unstable; urgency=low + + * Fix support for file:// remotes. + * Add --verbose + * Fix SIGINT handling. + * Fix handling of files with unusual characters in their name. + * Fixed memory leak; git-annex no longer reads the whole file list + from git before starting, and will be much faster with large repos. + * Fix crash on unknown symlinks. + * Added remote.annex-scp-options and remote.annex-ssh-options. + * The backends to use when adding different sets of files can be configured + via gitattributes. + * In .gitattributes, the git-annex-backend attribute can be set to the + names of backends to use when adding different types of files. + * Add fsck subcommand. (For now it only finds unused key contents in the + annex.) + + -- Joey Hess <joeyh@debian.org> Sun, 07 Nov 2010 18:26:04 -0400 + +git-annex (0.02) unstable; urgency=low + + * Can scp annexed files from remote hosts, and check remote hosts for + file content when dropping files. + * New move subcommand, that makes it easy to move file contents from + or to a remote. + * New fromkey subcommand, for registering urls, etc. + * git-annex init will now set up a pre-commit hook that fixes up symlinks + before they are committed, to ensure that moving symlinks around does not + break them. + * More intelligent and fast staging of modified files; git add coalescing. + * Add remote.annex-ignore git config setting to allow completly disabling + a given remote. + * --from/--to can be used to control the remote repository that git-annex + uses. + * --quiet can be used to avoid verbose output + * New plumbing-level dropkey and addkey subcommands. + * Lots of bug fixes. + + -- Joey Hess <joeyh@debian.org> Wed, 27 Oct 2010 16:39:29 -0400 + +git-annex (0.01) unstable; urgency=low + + * First prerelease. + + -- Joey Hess <joeyh@debian.org> Wed, 20 Oct 2010 12:54:24 -0400 diff --git a/COPYRIGHT b/COPYRIGHT index 9060ce820..6620962b6 120000..100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -1 +1,786 @@ -debian/copyright
\ No newline at end of file +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Source: native package + +Files: * +Copyright: © 2010-2016 Joey Hess <id@joeyh.name> +License: GPL-3+ + +Files: Assistant/WebApp.hs Assistant/WebApp/* templates/* static/* +Copyright: © 2012-2016 Joey Hess <id@joeyh.name> + © 2014 Sören Brunk +License: AGPL-3+ + +Files: Remote/Ddar.hs +Copyright: © 2011 Joey Hess <id@joeyh.name> + © 2014 Robie Basak <robie@justgohome.co.uk> +License: GPL-3+ + +Files: Utility/ThreadScheduler.hs +Copyright: 2011 Bas van Dijk & Roel van Dijk + 2012, 2013 Joey Hess <id@joeyh.name> +License: BSD-2-clause + +Files: Utility/* +Copyright: 2012-2016 Joey Hess <id@joeyh.name> +License: BSD-2-clause + +Files: Utility/Gpg.hs Utility/DirWatcher* +Copyright: © 2010-2014 Joey Hess <id@joeyh.name> +License: GPL-3+ + +Files: doc/logo* */favicon.ico standalone/osx/git-annex.app/Contents/Resources/git-annex.icns standalone/android/icons/* +Copyright: 2007 Henrik Nyh <http://henrik.nyh.se/> + 2010 Joey Hess <id@joeyh.name> + 2013 John Lawrence +License: other + Free to modify and redistribute with due credit, and obviously free to use. + +Files: Annex/DirHashes.hs +Copyright: 2001 Ian Lynagh + 2010-2015 Joey Hess <id@joeyh.name> +License: GPL-3+ + +Files: doc/tips/automatically_adding_metadata/pre-commit-annex +Copyright: 2014 Joey Hess <id@joeyh.name> + 2016 Klaus Ethgen <Klaus@Ethgen.ch> +License: GPL-3+ + +Files: static/jquery* +Copyright: © 2005-2011 by John Resig, Branden Aaron & Jörn Zaefferer + © 2011 The Dojo Foundation +License: MIT or GPL-2 + The full text of version 2 of the GPL is distributed in + /usr/share/common-licenses/GPL-2 on Debian systems. The text of the MIT + license follows: + . + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + . + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Files: static/*/bootstrap* static/*/glyphicons-halflings* +Copyright: 2012-2014 Twitter, Inc. +License: MIT-twitter + Copyright (c) 2011-2014 Twitter, Inc + . + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +License: GPL-3+ + The full text of version 3 of the GPL is distributed as doc/license/GPL in + this package's source, or in /usr/share/common-licenses/GPL-3 on + Debian systems. + +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY AUTHORS AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +License: AGPL-3+ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + . + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + . + Preamble + . + The GNU Affero General Public License is a free, copyleft license for + software and other kinds of works, specifically designed to ensure + cooperation with the community in the case of network server software. + . + The licenses for most software and other practical works are designed + to take away your freedom to share and change the works. By contrast, + our General Public Licenses are intended to guarantee your freedom to + share and change all versions of a program--to make sure it remains free + software for all its users. + . + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + them if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs, and that you know you can do these things. + . + Developers that use our General Public Licenses protect your rights + with two steps: (1) assert copyright on the software, and (2) offer + you this License which gives you legal permission to copy, distribute + and/or modify the software. + . + A secondary benefit of defending all users' freedom is that + improvements made in alternate versions of the program, if they + receive widespread use, become available for other developers to + incorporate. Many developers of free software are heartened and + encouraged by the resulting cooperation. However, in the case of + software used on network servers, this result may fail to come about. + The GNU General Public License permits making a modified version and + letting the public access it on a server without ever releasing its + source code to the public. + . + The GNU Affero General Public License is designed specifically to + ensure that, in such cases, the modified source code becomes available + to the community. It requires the operator of a network server to + provide the source code of the modified version running there to the + users of that server. Therefore, public use of a modified version, on + a publicly accessible server, gives the public access to the source + code of the modified version. + . + An older license, called the Affero General Public License and + published by Affero, was designed to accomplish similar goals. This is + a different license, not a version of the Affero GPL, but Affero has + released a new version of the Affero GPL which permits relicensing under + this license. + . + The precise terms and conditions for copying, distribution and + modification follow. + . + TERMS AND CONDITIONS + . + 0. Definitions. + . + "This License" refers to version 3 of the GNU Affero General Public License. + . + "Copyright" also means copyright-like laws that apply to other kinds of + works, such as semiconductor masks. + . + "The Program" refers to any copyrightable work licensed under this + License. Each licensee is addressed as "you". "Licensees" and + "recipients" may be individuals or organizations. + . + To "modify" a work means to copy from or adapt all or part of the work + in a fashion requiring copyright permission, other than the making of an + exact copy. The resulting work is called a "modified version" of the + earlier work or a work "based on" the earlier work. + . + A "covered work" means either the unmodified Program or a work based + on the Program. + . + To "propagate" a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well. + . + To "convey" a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user through + a computer network, with no transfer of a copy, is not conveying. + . + An interactive user interface displays "Appropriate Legal Notices" + to the extent that it includes a convenient and prominently visible + feature that (1) displays an appropriate copyright notice, and (2) + tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the + work under this License, and how to view a copy of this License. If + the interface presents a list of user commands or options, such as a + menu, a prominent item in the list meets this criterion. + . + 1. Source Code. + . + The "source code" for a work means the preferred form of the work + for making modifications to it. "Object code" means any non-source + form of a work. + . + A "Standard Interface" means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that + is widely used among developers working in that language. + . + The "System Libraries" of an executable work include anything, other + than the work as a whole, that (a) is included in the normal form of + packaging a Major Component, but which is not part of that Major + Component, and (b) serves only to enable use of the work with that + Major Component, or to implement a Standard Interface for which an + implementation is available to the public in source code form. A + "Major Component", in this context, means a major essential component + (kernel, window system, and so on) of the specific operating system + (if any) on which the executable work runs, or a compiler used to + produce the work, or an object code interpreter used to run it. + . + The "Corresponding Source" for a work in object code form means all + the source code needed to generate, install, and (for an executable + work) run the object code and to modify the work, including scripts to + control those activities. However, it does not include the work's + System Libraries, or general-purpose tools or generally available free + programs which are used unmodified in performing those activities but + which are not part of the work. For example, Corresponding Source + includes interface definition files associated with source files for + the work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to require, + such as by intimate data communication or control flow between those + subprograms and other parts of the work. + . + The Corresponding Source need not include anything that users + can regenerate automatically from other parts of the Corresponding + Source. + . + The Corresponding Source for a work in source code form is that + same work. + . + 2. Basic Permissions. + . + All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program. The output from running a + covered work is covered by this License only if the output, given its + content, constitutes a covered work. This License acknowledges your + rights of fair use or other equivalent, as provided by copyright law. + . + You may make, run and propagate covered works that you do not + convey, without conditions so long as your license otherwise remains + in force. You may convey covered works to others for the sole purpose + of having them make modifications exclusively for you, or provide you + with facilities for running those works, provided that you comply with + the terms of this License in conveying all material for which you do + not control copyright. Those thus making or running the covered works + for you must do so exclusively on your behalf, under your direction + and control, on terms that prohibit them from making any copies of + your copyrighted material outside their relationship with you. + . + Conveying under any other circumstances is permitted solely under + the conditions stated below. Sublicensing is not allowed; section 10 + makes it unnecessary. + . + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + . + No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article + 11 of the WIPO copyright treaty adopted on 20 December 1996, or + similar laws prohibiting or restricting circumvention of such + measures. + . + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such circumvention + is effected by exercising rights under this License with respect to + the covered work, and you disclaim any intention to limit operation or + modification of the work as a means of enforcing, against the work's + users, your or third parties' legal rights to forbid circumvention of + technological measures. + . + 4. Conveying Verbatim Copies. + . + You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; + keep intact all notices stating that this License and any + non-permissive terms added in accord with section 7 apply to the code; + keep intact all notices of the absence of any warranty; and give all + recipients a copy of this License along with the Program. + . + You may charge any price or no price for each copy that you convey, + and you may offer support or warranty protection for a fee. + . + 5. Conveying Modified Source Versions. + . + You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the + terms of section 4, provided that you also meet all of these conditions: + . + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + . + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + . + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + . + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + . + A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, + and which are not combined with it such as to form a larger program, + in or on a volume of a storage or distribution medium, is called an + "aggregate" if the compilation and its resulting copyright are not + used to limit the access or legal rights of the compilation's users + beyond what the individual works permit. Inclusion of a covered work + in an aggregate does not cause this License to apply to the other + parts of the aggregate. + . + 6. Conveying Non-Source Forms. + . + You may convey a covered work in object code form under the terms + of sections 4 and 5, provided that you also convey the + machine-readable Corresponding Source under the terms of this License, + in one of these ways: + . + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + . + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + . + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + . + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + . + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + . + A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be + included in conveying the object code work. + . + A "User Product" is either (1) a "consumer product", which means any + tangible personal property which is normally used for personal, family, + or household purposes, or (2) anything designed or sold for incorporation + into a dwelling. In determining whether a product is a consumer product, + doubtful cases shall be resolved in favor of coverage. For a particular + product received by a particular user, "normally used" refers to a + typical or common use of that class of product, regardless of the status + of the particular user or of the way in which the particular user + actually uses, or expects or is expected to use, the product. A product + is a consumer product regardless of whether the product has substantial + commercial, industrial or non-consumer uses, unless such uses represent + the only significant mode of use of the product. + . + "Installation Information" for a User Product means any methods, + procedures, authorization keys, or other information required to install + and execute modified versions of a covered work in that User Product from + a modified version of its Corresponding Source. The information must + suffice to ensure that the continued functioning of the modified object + code is in no case prevented or interfered with solely because + modification has been made. + . + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as + part of a transaction in which the right of possession and use of the + User Product is transferred to the recipient in perpetuity or for a + fixed term (regardless of how the transaction is characterized), the + Corresponding Source conveyed under this section must be accompanied + by the Installation Information. But this requirement does not apply + if neither you nor any third party retains the ability to install + modified object code on the User Product (for example, the work has + been installed in ROM). + . + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or updates + for a work that has been modified or installed by the recipient, or for + the User Product in which it has been modified or installed. Access to a + network may be denied when the modification itself materially and + adversely affects the operation of the network or violates the rules and + protocols for communication across the network. + . + Corresponding Source conveyed, and Installation Information provided, + in accord with this section must be in a format that is publicly + documented (and with an implementation available to the public in + source code form), and must require no special password or key for + unpacking, reading or copying. + . + 7. Additional Terms. + . + "Additional permissions" are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall + be treated as though they were included in this License, to the extent + that they are valid under applicable law. If additional permissions + apply only to part of the Program, that part may be used separately + under those permissions, but the entire Program remains governed by + this License without regard to the additional permissions. + . + When you convey a copy of a covered work, you may at your option + remove any additional permissions from that copy, or from any part of + it. (Additional permissions may be written to require their own + removal in certain cases when you modify the work.) You may place + additional permissions on material, added by you to a covered work, + for which you have or can give appropriate copyright permission. + . + Notwithstanding any other provision of this License, for material you + add to a covered work, you may (if authorized by the copyright holders of + that material) supplement the terms of this License with terms: + . + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + . + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + . + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + . + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + . + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + . + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + . + All other non-permissive additional terms are considered "further + restrictions" within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further + restriction, you may remove that term. If a license document contains + a further restriction but permits relicensing or conveying under this + License, you may add to a covered work material governed by the terms + of that license document, provided that the further restriction does + not survive such relicensing or conveying. + . + If you add terms to a covered work in accord with this section, you + must place, in the relevant source files, a statement of the + additional terms that apply to those files, or a notice indicating + where to find the applicable terms. + . + Additional terms, permissive or non-permissive, may be stated in the + form of a separately written license, or stated as exceptions; + the above requirements apply either way. + . + 8. Termination. + . + You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or + modify it is void, and will automatically terminate your rights under + this License (including any patent licenses granted under the third + paragraph of section 11). + . + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly and + finally terminates your license, and (b) permanently, if the copyright + holder fails to notify you of the violation by some reasonable means + prior to 60 days after the cessation. + . + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from that + copyright holder, and you cure the violation prior to 30 days after + your receipt of the notice. + . + Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10. + . + 9. Acceptance Not Required for Having Copies. + . + You are not required to accept this License in order to receive or + run a copy of the Program. Ancillary propagation of a covered work + occurring solely as a consequence of using peer-to-peer transmission + to receive a copy likewise does not require acceptance. However, + nothing other than this License grants you permission to propagate or + modify any covered work. These actions infringe copyright if you do + not accept this License. Therefore, by modifying or propagating a + covered work, you indicate your acceptance of this License to do so. + . + 10. Automatic Licensing of Downstream Recipients. + . + Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify and + propagate that work, subject to this License. You are not responsible + for enforcing compliance by third parties with this License. + . + An "entity transaction" is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered + work results from an entity transaction, each party to that + transaction who receives a copy of the work also receives whatever + licenses to the work the party's predecessor in interest had or could + give under the previous paragraph, plus a right to possession of the + Corresponding Source of the work from the predecessor in interest, if + the predecessor has it or can get it with reasonable efforts. + . + You may not impose any further restrictions on the exercise of the + rights granted or affirmed under this License. For example, you may + not impose a license fee, royalty, or other charge for exercise of + rights granted under this License, and you may not initiate litigation + (including a cross-claim or counterclaim in a lawsuit) alleging that + any patent claim is infringed by making, using, selling, offering for + sale, or importing the Program or any portion of it. + . + 11. Patents. + . + A "contributor" is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The + work thus licensed is called the contributor's "contributor version". + . + A contributor's "essential patent claims" are all patent claims + owned or controlled by the contributor, whether already acquired or + hereafter acquired, that would be infringed by some manner, permitted + by this License, of making, using, or selling its contributor version, + but do not include claims that would be infringed only as a + consequence of further modification of the contributor version. For + purposes of this definition, "control" includes the right to grant + patent sublicenses in a manner consistent with the requirements of + this License. + . + Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to + make, use, sell, offer for sale, import and otherwise run, modify and + propagate the contents of its contributor version. + . + In the following three paragraphs, a "patent license" is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To "grant" such a patent license to a + party means to make such an agreement or commitment not to enforce a + patent against the party. + . + If you convey a covered work, knowingly relying on a patent license, + and the Corresponding Source of the work is not available for anyone + to copy, free of charge and under the terms of this License, through a + publicly available network server or other readily accessible means, + then you must either (1) cause the Corresponding Source to be so + available, or (2) arrange to deprive yourself of the benefit of the + patent license for this particular work, or (3) arrange, in a manner + consistent with the requirements of this License, to extend the patent + license to downstream recipients. "Knowingly relying" means you have + actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work + in a country, would infringe one or more identifiable patents in that + country that you have reason to believe are valid. + . + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties + receiving the covered work authorizing them to use, propagate, modify + or convey a specific copy of the covered work, then the patent license + you grant is automatically extended to all recipients of the covered + work and works based on it. + . + A patent license is "discriminatory" if it does not include within + the scope of its coverage, prohibits the exercise of, or is + conditioned on the non-exercise of one or more of the rights that are + specifically granted under this License. You may not convey a covered + work if you are a party to an arrangement with a third party that is + in the business of distributing software, under which you make payment + to the third party based on the extent of your activity of conveying + the work, and under which the third party grants, to any of the + parties who would receive the covered work from you, a discriminatory + patent license (a) in connection with copies of the covered work + conveyed by you (or copies made from those copies), or (b) primarily + for and in connection with specific products or compilations that + contain the covered work, unless you entered into that arrangement, + or that patent license was granted, prior to 28 March 2007. + . + Nothing in this License shall be construed as excluding or limiting + any implied license or other defenses to infringement that may + otherwise be available to you under applicable patent law. + . + 12. No Surrender of Others' Freedom. + . + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey a + covered work so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you may + not convey it at all. For example, if you agree to terms that obligate you + to collect a royalty for further conveying from those to whom you convey + the Program, the only way you could satisfy both those terms and this + License would be to refrain entirely from conveying the Program. + . + 13. Remote Network Interaction; Use with the GNU General Public License. + . + Notwithstanding any other provision of this License, if you modify the + Program, your modified version must prominently offer all users + interacting with it remotely through a computer network (if your version + supports such interaction) an opportunity to receive the Corresponding + Source of your version by providing access to the Corresponding Source + from a network server at no charge, through some standard or customary + means of facilitating copying of software. This Corresponding Source + shall include the Corresponding Source for any work covered by version 3 + of the GNU General Public License that is incorporated pursuant to the + following paragraph. + . + Notwithstanding any other provision of this License, you have + permission to link or combine any covered work with a work licensed + under version 3 of the GNU General Public License into a single + combined work, and to convey the resulting work. The terms of this + License will continue to apply to the part which is the covered work, + but the work with which it is combined will remain governed by version + 3 of the GNU General Public License. + . + 14. Revised Versions of this License. + . + The Free Software Foundation may publish revised and/or new versions of + the GNU Affero General Public License from time to time. Such new versions + will be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + . + Each version is given a distinguishing version number. If the + Program specifies that a certain numbered version of the GNU Affero General + Public License "or any later version" applies to it, you have the + option of following the terms and conditions either of that numbered + version or of any later version published by the Free Software + Foundation. If the Program does not specify a version number of the + GNU Affero General Public License, you may choose any version ever published + by the Free Software Foundation. + . + If the Program specifies that a proxy can decide which future + versions of the GNU Affero General Public License can be used, that proxy's + public statement of acceptance of a version permanently authorizes you + to choose that version for the Program. + . + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version. + . + 15. Disclaimer of Warranty. + . + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY + OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF + ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + . + 16. Limitation of Liability. + . + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS + THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY + GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE + USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF + DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF + SUCH DAMAGES. + . + 17. Interpretation of Sections 15 and 16. + . + If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee. + . + END OF TERMS AND CONDITIONS + . + How to Apply These Terms to Your New Programs + . + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + . + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + state the exclusion of warranty; and each file should have at least + the "copyright" line and a pointer to where the full notice is found. + . + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + . + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + . + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + . + Also add information on how to contact you by electronic and paper mail. + . + If your software can interact with users remotely through a computer + network, you should also make sure that it provides a way for users to + get its source. For example, if your program is a web application, its + interface could display a "Source" link that leads users to an archive + of the code. There are many ways you could offer source, and different + solutions will be better for different programs; see section 13 for the + specific requirements. + . + You should also get your employer (if you work as a programmer) or school, + if any, to sign a "copyright disclaimer" for the program, if necessary. + For more information on this, and how to apply and follow the GNU AGPL, see + <http://www.gnu.org/licenses/>. diff --git a/INSTALL b/INSTALL deleted file mode 120000 index 67566818f..000000000 --- a/INSTALL +++ /dev/null @@ -1 +0,0 @@ -doc/install.mdwn
\ No newline at end of file @@ -15,7 +15,7 @@ endif build: $(all) -Build/SysConfig.hs: configure.hs Build/TestConfig.hs Build/Configure.hs +Build/SysConfig.hs: Build/TestConfig.hs Build/Configure.hs if [ "$(BUILDER)" = ./Setup ]; then ghc --make Setup; fi if [ "$(BUILDER)" = stack ]; then \ $(BUILDER) build $(BUILDEROPTIONS); \ @@ -86,15 +86,19 @@ man: mkdir -p man docs: mans - LC_ALL=C TZ=UTC $(IKIWIKI) doc html -v --wikiname git-annex \ - --plugin=goodstuff \ - --no-usedirs --disable-plugin=openid --plugin=sidebar \ - --underlaydir=/dev/null --set deterministic=1 \ - --disable-plugin=shortcut --disable-plugin=smiley \ - --plugin=comments --set comments_pagespec="*" \ - --exclude='news/.*' --exclude='design/assistant/blog/*' \ - --exclude='bugs/*' --exclude='todo/*' --exclude='forum/*' \ - --exclude='users/*' --exclude='devblog/*' --exclude='thanks' + @if [ ! -e doc/index.mdwn ]; then \ + echo "** doc/index.mdwn does not exist, skipping building docs (clone git-annex source to enable full docs build)" >&2; \ + else \ + LC_ALL=C TZ=UTC $(IKIWIKI) doc html -v --wikiname git-annex \ + --plugin=goodstuff \ + --no-usedirs --disable-plugin=openid --plugin=sidebar \ + --underlaydir=/dev/null --set deterministic=1 \ + --disable-plugin=shortcut --disable-plugin=smiley \ + --plugin=comments --set comments_pagespec="*" \ + --exclude='news/.*' --exclude='design/assistant/blog/*' \ + --exclude='bugs/*' --exclude='todo/*' --exclude='forum/*' \ + --exclude='users/*' --exclude='devblog/*' --exclude='thanks'; \ + fi clean: if [ "$(BUILDER)" != ./Setup ] && [ "$(BUILDER)" != cabal ]; then $(BUILDER) clean; fi @@ -118,11 +122,9 @@ Build/OSXMkLibs: Build/OSXMkLibs.hs Build/LinuxMkLibs: Build/LinuxMkLibs.hs $(GHC) --make $@ -Wall -fno-warn-tabs -sdist: clean mans - ./Build/make-sdist.sh - # Upload to hackage. -hackage: sdist +hackage: + @cabal sdist @cabal upload dist/*.tar.gz LINUXSTANDALONE_DEST=tmp/git-annex.linux @@ -170,7 +172,7 @@ prep-standalone: undo-standalone: test -e .git - git checkout debian/changelog + git checkout debian/changelog CHANGELOG quilt pop -a || true commit-standalone: @@ -1 +1,44 @@ -debian/NEWS
\ No newline at end of file +git-annex (4.20131002) unstable; urgency=low + + The layout of gcrypt repositories has changed, and + if you created one you must manually upgrade it. + See /usr/share/doc/git-annex/html/upgrades/gcrypt.html + + -- Joey Hess <joeyh@debian.org> Tue, 24 Sep 2013 13:55:23 -0400 + +git-annex (3.20120123) unstable; urgency=low + + There was a bug in the handling of directory special remotes that + could cause partial file contents to be stored in them. If you use + a directory special remote, you should fsck it, to avoid potential + data loss. + + Example: git annex fsck --from mydirectory + + -- Joey Hess <joeyh@debian.org> Thu, 19 Jan 2012 15:24:23 -0400 + +git-annex (3.20110624) experimental; urgency=low + + There has been another change to the git-annex data store. + Use `git annex upgrade` to migrate your repositories to the new + layout. See <http://git-annex.branchable.com/upgrades/> or + /usr/share/doc/git-annex/html/upgrades.html + + The significant change this time is that the .git-annex/ directory + is gone; instead there is a git-annex branch that is automatically + maintained by git-annex, and encapsulates all its state nicely out + of your way. + + You should make sure you include the git-annex branch when + git pushing and pulling. + + -- Joey Hess <joeyh@debian.org> Tue, 21 Jun 2011 20:18:00 -0400 + +git-annex (0.20110316) experimental; urgency=low + + This version reorganises the layout of git-annex's files in your repository. + There is an upgrade process to convert a repository from the old git-annex + to this version. See <http://git-annex.branchable.com/upgrades/> or + /usr/share/doc/git-annex/html/upgrades.html + + -- Joey Hess <joeyh@debian.org> Wed, 16 Mar 2011 15:49:15 -0400 @@ -19,6 +19,7 @@ import qualified System.Info import qualified Build.DesktopFile as DesktopFile import qualified Build.Configure as Configure +import Utility.SafeCommand main :: IO () main = defaultMainWithHooks simpleUserHooks @@ -44,24 +45,19 @@ installGitAnnexShell copyDest verbosity pkg lbi = where dstBinDir = bindir $ absoluteInstallDirs pkg lbi copyDest -{- See http://www.haskell.org/haskellwiki/Cabal/Developer-FAQ#Installing_manpages - - - - Man pages are provided prebuilt in the tarball in cabal, - - but may not be available otherwise, in which case, skip installing them. - -} +{- See http://www.haskell.org/haskellwiki/Cabal/Developer-FAQ#Installing_manpages -} installManpages :: CopyDest -> Verbosity -> PackageDescription -> LocalBuildInfo -> IO () installManpages copyDest verbosity pkg lbi = installOrdinaryFiles verbosity dstManDir =<< srcManpages where dstManDir = mandir (absoluteInstallDirs pkg lbi copyDest) </> "man1" srcManpages = do - havemans <- doesDirectoryExist srcManDir + havemans <- boolSystem "make" [Param "mans"] if havemans - then zip (repeat srcManDir) + then zip (repeat "man") . filter (".1" `isSuffixOf`) - <$> getDirectoryContents srcManDir + <$> getDirectoryContents "man" else return [] - srcManDir = "man" installDesktopFile :: CopyDest -> Verbosity -> PackageDescription -> LocalBuildInfo -> IO () installDesktopFile copyDest _verbosity pkg lbi diff --git a/configure.hs b/configure.hs deleted file mode 100644 index 15833e62a..000000000 --- a/configure.hs +++ /dev/null @@ -1,6 +0,0 @@ -{- configure program -} - -import Build.Configure - -main :: IO () -main = run tests diff --git a/debian/NEWS b/debian/NEWS index 1266bae20..0fae0f802 100644..120000 --- a/debian/NEWS +++ b/debian/NEWS @@ -1,44 +1 @@ -git-annex (4.20131002) unstable; urgency=low - - The layout of gcrypt repositories has changed, and - if you created one you must manually upgrade it. - See /usr/share/doc/git-annex/html/upgrades/gcrypt.html - - -- Joey Hess <joeyh@debian.org> Tue, 24 Sep 2013 13:55:23 -0400 - -git-annex (3.20120123) unstable; urgency=low - - There was a bug in the handling of directory special remotes that - could cause partial file contents to be stored in them. If you use - a directory special remote, you should fsck it, to avoid potential - data loss. - - Example: git annex fsck --from mydirectory - - -- Joey Hess <joeyh@debian.org> Thu, 19 Jan 2012 15:24:23 -0400 - -git-annex (3.20110624) experimental; urgency=low - - There has been another change to the git-annex data store. - Use `git annex upgrade` to migrate your repositories to the new - layout. See <http://git-annex.branchable.com/upgrades/> or - /usr/share/doc/git-annex/html/upgrades.html - - The significant change this time is that the .git-annex/ directory - is gone; instead there is a git-annex branch that is automatically - maintained by git-annex, and encapsulates all its state nicely out - of your way. - - You should make sure you include the git-annex branch when - git pushing and pulling. - - -- Joey Hess <joeyh@debian.org> Tue, 21 Jun 2011 20:18:00 -0400 - -git-annex (0.20110316) experimental; urgency=low - - This version reorganises the layout of git-annex's files in your repository. - There is an upgrade process to convert a repository from the old git-annex - to this version. See <http://git-annex.branchable.com/upgrades/> or - /usr/share/doc/git-annex/html/upgrades.html - - -- Joey Hess <joeyh@debian.org> Wed, 16 Mar 2011 15:49:15 -0400 +../NEWS
\ No newline at end of file diff --git a/debian/changelog b/debian/changelog index bae23f40e..a53599471 100644..120000 --- a/debian/changelog +++ b/debian/changelog @@ -1,4615 +1 @@ -git-annex (6.20160512) UNRELEASED; urgency=medium - - * Change git annex info remote encryption description to use wording - closer to what's used in initremote. - * webapp: Avoid confusing display of dead remotes. - * adjust: If the adjusted branch already exists, avoid overwriting it, - since it might contain changes that have not yet been propigated to the - original branch. - * assistant: Fix bug that caused v6 pointer files to be annexed by the - assistant. - * assistant: Fix race in v6 mode that caused downloaded file content to - sometimes not replace pointer files. - * add: Adding a v6 pointer file used to annex it; now the pointer file is - added to git as-is. (git add of a pointer file already did the right - thing) - * adjust: Add --fix adjustment, which is useful when the git directory - is in a nonstandard place. - * Work around git weirdness in handling of relative path to GIT_INDEX_FILE - when in a subdirectory of the repository. This affected git annex view. - * Fix crash when entering/changing view in a subdirectory of a repo that - has a dotfile in its root. - * Support building with ghc 8.0.1. - * Pass the various gnupg-options configs to gpg in several cases where - they were not before. Most notably, gnupg-decrypt-options is now - passed when decrypting an encrypted cipher. - - -- Joey Hess <id@joeyh.name> Wed, 11 May 2016 16:08:38 -0400 - -git-annex (6.20160511) unstable; urgency=medium - - * Fix bug that sometimes prevented git-annex smudge --clean from consuming - all its input, which resulted in git add bypassing git-annex. - * Fix build with directory-1.2.6.2. - * Improve behavior when a just added http remote is not available - during uuid probe. Do not mark it as annex-ignore, so it will be tried - again later. - * Android: Icon refresh. - Thanks, freewheelinfranks. - * Added DIRHASH-LOWER to external special remote protocol. - * git-annex.cabal: Add Setup-Depends. - * stack.yaml: Enable explicit-setup-deps. - * Windows: Fix several bugs in propigation of changes from the adjusted - branch back to the master branch. - * Windows: Fix an over-long temp directory name. - * map: Hide dead repositories that are not connected to the graph. - * map: Changed colors; red is used for untrusted repositories and grey - for dead. - * version: Display OS version and architecture too. - * Propigate GIT_DIR and GIT_WORK_TREE environment to external special - remotes. - * Added annex.gnupg-decrypt-options and - remote.<name>.annex-gnupg-decrypt-options, which are passed to gpg - when it's decrypting data. - * fsck: When a key is not previously known in the location log, - record something so that reinject --known will work. - * In the unusual configuration where annex.crippledfilesystem=true but - core.symlinks=true, store object contents in mixed case hash - directories so that symlinks will point to them. - * Added new encryption=sharedpubkey mode for special remotes. - This is useful for makking a special remote that anyone with a clone - of the repo and your public keys can upload files to, but only you can - decrypt the files stored in it. - - -- Joey Hess <id@joeyh.name> Wed, 11 May 2016 12:41:42 -0400 - -git-annex (6.20160419) unstable; urgency=medium - - * Fix bug that prevented resuming of uploads to encrypted special remotes - that used chunking. - * That bug could also expose the names of keys to such remotes, so it is a - minor security issue. - * Fix duplicate progress meter display when downloading from a git remote - over http with -J. - * reinject: When src file's content cannot be verified, leave it alone, - instead of deleting it. - * reinject: Added new mode which can reinject known files into the annex. - For example: git-annex reinject --known /mnt/backup/* - * calckey: New plumbing command, calculates the key that would be used - to refer to a file. - * Fix bug that prevented annex.sshcaching=false configuration from taking - effect when on a crippled filesystem. Thanks, divergentdave. - * git 2.9.0 is going to prevent git merge from merging in unrelated - branches. Since the webapp's pairing etc features often combine - together repositories with unrelated histories, work around - this behavior change when the assistant merges, by passing - --allow-unrelated-histories. Note though that this is not done - for git annex sync's merges, so it will follow git's default or - configured behavior. - * When git-annex is used with a git version older than 2.2.0, disable - support for adjusted branches, since GIT_COMMON_DIR is needed to update - them and was first added in that version of git. - * Avoid setting LOCPATH in linux standalone builds that are built with - a ghc that has been fixed to not hang when it cannot find locale files. - * Isolate test suite from global git config settings. - - -- Joey Hess <id@joeyh.name> Thu, 28 Apr 2016 09:31:14 -0400 - -git-annex (6.20160418) unstable; urgency=medium - - * smudge: Print a warning when annex.thin is set, as git's smudge - interface does not allow honoring that configuration. - * webapp: When $HOME is a git repository, and has been initialized for - use by git-annex, opening the webapp went ahead and ran the assistant - there, annexing all files. Since this is almost certianly not - desirable, especially when the user is just opening the webapp from - a dekstop menu which happens to run it in $HOME, the webapp will now not - treat such a $HOME git repository as a git-annex repository. - * webapp: Update url to add gitlab.com ssh key. - * Fix bug in v6 mode that prevented treating unlocked executable files - as annexed. If you have such files, run git annex init --version=6 - to update the cache after upgrading to this version of git-annex. - * Preserve execute bits of unlocked files in v6 mode. - * fsck: Warn when core.sharedRepository is set and an annex object file's - write bit is not set and cannot be set due to the file being owned - by a different user. - * Fix hang when dropping content needs to lock the content on a - ssh remote, which occurred when the remote has git-annex version - 5.20151019 or newer. (The bug was in the client side; the remote - git-annex-shell does not need to be upgraded.) - - -- Joey Hess <id@joeyh.name> Mon, 18 Apr 2016 18:33:52 -0400 - -git-annex (6.20160412) unstable; urgency=medium - - * adjust --unlock: Enters an adjusted branch in which all annexed files - are unlocked. The v6 equivilant of direct mode, but much cleaner! - * Upgrading a direct mode repository to v6 has changed to enter - an adjusted unlocked branch. This makes the direct mode to v6 upgrade - able to be performed in one clone of a repository without affecting - other clones, which can continue using v5 and direct mode. - * init --version=6: Automatically enter the adjusted unlocked branch - when filesystem doesn't support symlinks. - * ddar remote: fix ssh calls - Thanks, Robie Basak - * log: Display time with time zone. - * log --raw-date: Use to display seconds from unix epoch. - * v6: Close pointer file handles more quickly, to avoid problems on Windows. - * sync: Show output of git commit. - * annex.thin and annex.hardlink are now supported on Windows. - * unannex --fast now makes hard links on Windows. - * Fix bug in annex.largefiles mimetype= matching when git-annex - is run in a subdirectory of the repository. - * Fix build with ghc v7.11. Thanks, Gabor Greif. - - -- Joey Hess <id@joeyh.name> Tue, 12 Apr 2016 14:53:22 -0400 - -git-annex (6.20160318) unstable; urgency=medium - - * metadata: Added -r to remove all current values of a field. - * Fix data loss that can occur when annex.pidlock is set in a repository. - * Fix bug preventing moving files to/from a repository with annex.pidlock set. - * Fix shared lock file FD leak. - * Fix metadata hook behavior when multiple files are added at once. - Thanks, Klaus Ethgen. - * Added dependencies on haskell mountpoints and disk-free-space - libraries, removing FFI code from git-annex. - * dropkey: Add --batch and --json. - * Fix OSX dmg to include libraries needed by bundled gpg, - lost in last release. - * Always try to thaw content, even when annex.crippledfilesystem is set. - * Correct git-annex info to include unlocked files in v6 repository. - * Sped up git-annex add in direct mode and v6 by using - git hash-object --stdin-paths. - * Sped up git-annex merge by using git hash-object --stdin-paths. - - -- Joey Hess <id@joeyh.name> Fri, 18 Mar 2016 11:30:36 -0400 - -git-annex (6.20160229) unstable; urgency=medium - - * Update perlmagick build dependency. Closes: #789225 - * Fix memory leak in last release, which affected commands like - git-annex status when a large non-annexed file is present in the work - tree. - * fsck: When the only copy of a file is in a dead repository, mention - the repository. - * info: Mention when run in a dead repository. - * Linux and OSX standalone builds put the bundled gpg last in PATH, - so any system gpg will be preferred over it. - * Avoid crashing when built with MagicMime support, but when the magic - database cannot be loaded. - * Include magic database in the linux and OSX standalone builds. - * Fix memory leak when hashing files, which triggered during fsck - when an external hash program was not used. - (This leak was introduced in version 6.20160114.) - * Support --metadata field<number, --metadata field>number etc - to match ranges of numeric values. - * Similarly, support preferred content expressions like - metadata=field<number and metadata=field>number - * The pre-commit-annex hook script that automatically extracts - metadata has been updated to also use exiftool. - Thanks, Klaus Ethgen. - - -- Joey Hess <id@joeyh.name> Mon, 29 Feb 2016 12:41:49 -0400 - -git-annex (6.20160217) unstable; urgency=medium - - * Support getting files from read-only repositories. - * checkpresentkey: Allow to be run without an explicit remote. - * checkpresentkey: Added --batch. - * Work around problem with concurrent-output when in a non-unicode locale - by avoiding use of it in such a locale. Instead -J will behave as if - it was built without concurrent-output support in this situation. - * Fix storing of filenames of v6 unlocked files when the filename is not - representable in the current locale. - * fsck: Detect and fix missing associated file mappings in v6 repositories. - * fsck: Populate unlocked files in v6 repositories whose content is - present in annex/objects but didn't reach the work tree. - * When initializing a v6 repo on a crippled filesystem, don't force it - into direct mode. - * Windows: Fix v6 unlocked files to actually work. - * add, addurl, import, importfeed: When in a v6 repository on a crippled - filesystem, add files unlocked. - * annex.addunlocked: New configuration setting, makes files always be - added unlocked. (v6 only) - * Improve format of v6 unlocked pointer files to support keys containing - slashes. - - -- Joey Hess <id@joeyh.name> Wed, 17 Feb 2016 14:48:51 -0400 - -git-annex (6.20160211) unstable; urgency=medium - - * annex.addsmallfiles: New option controlling what is done when - adding files not matching annex.largefiles. - * Fix reversion in lookupkey, contentlocation, and examinekey which - caused them to sometimes output side messages. - * webapp: Fix deletion of current repository directory. - * Added "nothing" to preferred content expression syntax. - * annex.largefiles can be configured in .gitattributes too; - this is particulary useful for v6 repositories, since the - .gitattributes configuration will apply in all clones of the - repository. - * Limit annex.largefiles parsing to the subset of preferred content - expressions that make sense in its context. So, not "standard" - or "lackingcopies", etc. - * annex.largefiles: Add support for mimetype=text/* etc, when git-annex - is linked with libmagic. - * matchexpression: Added --largefiles option to parse an annex.largefiles - expression. - * Brought back the dbus and xmpp build flags, so build from source can be - done without C libraries that may be hard to install. - * init: Fix bugs in submodule .git symlink fixup, that occurred when - initializing in a subdirectory of a submodule and a submodule of a - submodule. - * WebDAV: Set depth 1 in PROPFIND request, for better compatibility with - some servers. Thanks, wzhd. - * WebDAV: Remove a bogus trailing slash from the end of the url to the - temporary store location for a key. Thanks, wzhd. - * S3: Allow configuring with requeststyle=path to use path-style bucket - access instead of the default DNS-style access. - - -- Joey Hess <id@joeyh.name> Thu, 11 Feb 2016 11:42:19 -0400 - -git-annex (6.20160126) unstable; urgency=medium - - * Fix nasty reversion in the last release that broke sync --content's - handling of many preferred content expressions. - * whereis --json: Urls are now listed inside the remote that claims them, - rather than all together at the end. - * info, add, whereis, find: Support --batch mode. - * Force output to be line-buffered, even when it's not connected to the - terminal. This is particuarly important for commands with --batch - output, which was not always being flushed at an appropriate time. - * add, import: Support --json output. - * addurl --json: Include field for added key (unless the file was - added directly to git due to annex.largefiles configuration.) - (Also done by add --json and import --json) - * registerurl: Check if a remote claims the url, same as addurl does. - * Bug fix: Git config settings passed to git-annex -c did not always take - effect. - * assistant: Use udisks2 dbus events to detect when disks are mounted, - instead of relying on gnome/kde stuff that is not stable. - * Fix build with QuickCheck 2.8.2 - * matchexpression: New plumbing command to check if a preferred content - expression matches some data. - * Removed the webapp-secure build flag, rolling it into the webapp build - flag. - * Removed the quvi, tahoe, feed, and tfds build flags, adding - aeson feed and regex-tdfa to the core dependencies. - * Roll the dns build flag into the assistant build flag. - * Debian: Avoid building debug package, since gdb is not often useful - to debug haskell programs. - - -- Joey Hess <id@joeyh.name> Tue, 26 Jan 2016 14:57:42 -0400 - -git-annex (6.20160114) unstable; urgency=medium - - "hexapodia as the key insight" - - * Added v6 repository mode, but v5 is still the default for now. - * unlock, lock: In v6 mode, unlocking a file changes it from a symlink to a - pointer file, and this change can be committed to the git repository. - For details, see http://git-annex.branchable.com/tips/unlocked_files/ - * The upgrade to version 6 is not done fully automatically yet, because - upgrading a direct mode repository to version 6 will prevent old - versions of git-annex from working in other clones of that repository. - For details, see http://git-annex.branchable.com/upgrades/ - * init: --version parameter added to control which supported repository - version to use. - * init, upgrade: Configure .git/info/attributes to use git-annex - as a smudge filter. In v6 repository mode, this makes git add - add files to the annex in unlocked mode, unless overridden by - annex.largefiles configuration. - * assistant: In v6 mode, adds files in unlocked mode, so they can - continue to be modified. - * Added annex.thin setting, which makes unlocked files in v6 repositories - be hard linked to their content, instead of a copy. This saves disk - space but means any modification of an unlocked file will lose the local - (and possibly only) copy of the old version. - * Enable annex.thin by default on upgrade from direct mode to v6, since - direct mode made the same tradeoff. - * fix: Adjusts unlocked files as configured by annex.thin. - * persistent-sqlite is now a hard build dependency, since v6 repository - mode needs it. - - - * status: On crippled filesystems, was displaying M for all annexed files - that were present. Probably caused by a change to what git status - displays in this situation. Fixed by treating files git thinks are - modified the same as typechanged files. - * addurl: Added --batch and --with-files options. - * addurl: Support --json, particularly useful in --batch mode. - * addurl: Refuse to overwrite any existing, non-annexed file. - * Debian: Adjust build dependencies for webapp, DAV. Now available on - mips, mipsel, but temporarily removed armel since build is failing - there. - * info: Fix "backend usage" numbers, which were counting present keys - twice. - * info --json: Improve json for "backend usage", using a nested object - with fields for each backend instead of the previous weird nested lists. - This may break existing parsers of this json output, if there were any. - * whereis --json: Make url list be included in machine-parseable form. - * test: Added --keep-failures option. - * unused: Bug fix when a new file was added to the annex, and then - removed (but not git rmed). git still has the add staged in this case, - so the content should not be unused and was wrongly treated as such. - * migrate: Copy over metadata to new key. - * rekey: No longer copies over urls from the old to the new key. - It makes sense for migrate to do that, but not for this low-level - (and little used) plumbing command to. - * view: Fix crash in non-unicode capable locale when entering a view - of metadata containing a slash or backslash. - * When annex.http-headers is used to set the User-Agent header, avoid - sending User-Agent: git-annex - * Windows: Fix rsync cross-drive hack to work with msys2 rsync. - Thanks, Pieter Kitslaar. - - -- Joey Hess <id@joeyh.name> Thu, 14 Jan 2016 10:14:19 -0400 - -git-annex (5.20151218) unstable; urgency=medium - - * Add S3 features to git-annex version output. - * webdav: When testing the WebDAV server, send a file with content. - The empty file it was sending tickled bugs in some php WebDAV server. - * fsck: Failed to honor annex.diskreserve when checking a remote. - * Debian: Build depend on concurrent-output. - * Fix insecure temporary permissions when git-annex repair is used in - in a corrupted git repository. - * Fix potential denial of service attack when creating temp dirs. - - -- Joey Hess <id@joeyh.name> Fri, 18 Dec 2015 12:09:33 -0400 - -git-annex (5.20151208) unstable; urgency=medium - - * Build with -j1 again to get reproducible build. - * Display progress meter in -J mode when copying from a local git repo, - to a local git repo, and from a remote git repo. - * Display progress meter in -J mode when downloading from the web. - * map: Improve display of git remotes with non-ssh urls, including http - and gcrypt. - * When core.sharedRepository is set, annex object files are not made mode - 444, since that prevents a user other than the file owner from locking - them. Instead, a mode such as 664 is used in this case. - * tahoe: Include tahoe capabilities in whereis display. - * import: Changed to honor annex.largefiles settings. - * addurl, importfeed: Changed to honor annex.largefiles settings, - when the content of the url is downloaded. (Not when using --fast or - --relaxed.) - * webapp: Fix bugs that could result in a relative path such as "." - being written to ~/.config/git-annex/autostart, and ignore any such - relative paths in the file. - This was a reversion caused by the relative path changes in 5.20150113. - * dropunused: Make more robust when trying to drop an object that has - already been dropped. - * Fix reversion in handling of long filenames, particularly when using - addurl/importfeed, which was introduced in the previous release. - - -- Joey Hess <id@joeyh.name> Tue, 08 Dec 2015 11:14:03 -0400 - -git-annex (5.20151116) unstable; urgency=medium - - * Use concurrent-output library when configured with -fConcurrentOutput. - This allows nicely displayed messages when using the -J flag. - * Additional commands now support the -J flag: - fsck, drop, add, addurl, import - * import: Avoid very ugly error messages when the directory files - are imported to is not a directort, but perhaps an annexed file. - * Concurrent progress bars are now displayed when using -J with a command - that moves file contents around. - * Fix race that could result in an annexed file's symlink not being - created, when eg, running concurrent git-annex adds. - * add: Fix error recovery rollback to not move the injested file content - out of the annex back to the file, because other files may point to - that same content. Instead, copy the injected file content out to - recover. - * quvi may output utf-8 encoded data when the conifigured locale doesn't - support that; avoid crashing on such invalid encoding. - * runshell: Avoid failing when $HOME/.ssh does not exist and cannot be - created. - * Make the git-annex-standalone.deb prevent runshell from installing - wrappers into $HOME/.ssh - * Make git-annex-standalone.deb include the git-annex html documentation, - desktop file, and base completion file, same as the regular git-annex.deb. - * fsck: When fscking a dead repo, avoid incorrect "fixing location log" - message, and display a warning about it being dead, since it's unusual - to have access to a dead repo. - * assistant: Pass ssh-options through 3 more git pull/push calls - that were missed before. - * Added annex.pidlock and annex.pidlocktimeout configuration to support - filesystems where POSIX fcntl locks cannot be used. - * init: Automatically enable annex.pidlock when necessary. - - -- Joey Hess <id@joeyh.name> Mon, 16 Nov 2015 14:17:40 -0400 - -git-annex (5.20151102.1) unstable; urgency=medium - - * Avoid installing desktop file and program file if cabal install - git-annex is run as root, since that is not a systemwide install, - but to /root, and so generating a systemwide desktop file is not right. - * When cabal install is run with the desktop file location not writable, - display a warning, but continue successfully. - - -- Joey Hess <id@joeyh.name> Tue, 03 Nov 2015 12:08:38 -0400 - -git-annex (5.20151102) unstable; urgency=medium - - * Use statvfs on OSX. - * Symlink timestamp preservation code uses functions - from unix-2.7.0 when available, which should be more portable. - * enableremote: List uuids and descriptions of remotes that can be - enabled, and accept either the uuid or the description in leu if the - name. - * Catch up with current git behavior when both repo and repo.git exist; - it seems it now prefers repo in this case, although historically it may - have preferred repo.git. - * Fix failure to build with aws-0.13.0. - * When built with aws-0.13.0, the S3 special remote can be used to create - google nearline buckets, by setting storageclass=NEARLINE. - - -- Joey Hess <id@joeyh.name> Mon, 02 Nov 2015 12:41:20 -0400 - -git-annex (5.20151019) unstable; urgency=medium - - * Fix a longstanding, but unlikely to occur bug, where dropping - a file from a remote could race with other drops of the same file, - and result in all copies of its content being lost. - * git-annex-shell: Added lockcontent command, to prevent dropping of - a key's content. This is necessary due to the above bugfix. - * In some cases, the above bugfix changes what git-annex allows you to - drop: - - When a file is present in several special remotes, - but not in any accessible git repositories, dropping it from one of - the special remotes will now fail. Instead, the file has to be - moved from one of the special remotes to the git repository, and can - then safely be dropped from the git repository. - - If a git remote has too old a version of git-annex-shell installed, - git-annex won't trust it to hold onto a copy of a file when dropping - that file from the local git repository. - * Changed drop ordering when using git annex sync --content or the - assistant, to drop from remotes first and from the local repo last. - This works better with the behavior changes to drop in many cases. - * Do verification of checksums of annex objects downloaded from remotes. - * When annex objects are received into git repositories from other git - repos, their checksums are verified then too. - * To get the old, faster, behavior of not verifying checksums, set - annex.verify=false, or remote.<name>.annex-verify=false. - * setkey, rekey: These commands also now verify that the provided file - matches the expected checksum of the key, unless annex.verify=false. - * reinject: Already verified content; this can now be disabled by - setting annex.verify=false. - * sync, merge, assistant: When git merge failed for a reason other - than a conflicted merge, such as a crippled filesystem not allowing - particular characters in filenames, git-annex would make a merge commit - that could omit such files or otherwise be bad. Fixed by aborting the - whole merge process when git merge fails for any reason other than a - merge conflict. - * Allow building with S3 disabled again. - * Ported disk free space checking code to work on Solaris. - * Windows webapp: Fix support for entering password when setting - up a ssh remote. - * copy --auto was checking the wrong repo's preferred content. - (--from was checking what --to should, and vice-versa.) - Fixed this bug, which was introduced in version 5.20150727. - * Avoid unncessary write to the location log when a file is unlocked - and then added back with unchanged content. - * S3: Fix support for using https. - * Avoid displaying network transport warning when a ssh remote - does not yet have an annex.uuid set. - * Debian: Add torrent library to build-depends as it's packaged now, - and stop recommending bittornado | bittorrent. - * Debian: Remove build dependency on transformers library, as it is now - included in ghc. - * Debian: Remove menu file, since a desktop file is provided and - lintian says there can be only one. - - -- Joey Hess <id@joeyh.name> Mon, 19 Oct 2015 13:59:01 -0400 - -git-annex (5.20150930) unstable; urgency=medium - - * Added new linux standalone "ancient" build to support kernels - like 2.6.32. - * info: Don't allow use in a non-git-annex repository, since it - uses the git-annex branch and would create it if it were missing. - * assistant: When updating ~/.ssh/config, preserve any symlinks. - * webapp: Remove the "disable remote" feature from the UI. - * S3: When built with aws-0.13.0, supports using more storage classes. - In particular, storageclass=STANDARD_IA to use Amazon's - new Infrequently Accessed storage, and storageclass=NEARLINE - to use Google's NearLine storage. - * Improve ~/.ssh/config modification code to not add trailing spaces - to lines it cannot parse. - * Fix a crash at direct mode merge time when .git/index doesn't exist - yet. Triggered by eg, git-annex sync --no-commit in a fresh clone of - a repository. - * status: Show added but not yet committed files. - * Added stack.yaml to support easy builds from source with stack. - - -- Joey Hess <id@joeyh.name> Wed, 30 Sep 2015 14:31:52 -0400 - -git-annex (5.20150916) unstable; urgency=medium - - * Fix Windows build to work with ghc 7.10. - * init: Fix reversion in detection of repo made with git clone --shared - * info: Support querying info of individual files in direct mode. - * unused: Fix reversion in 5.20150727 that broke parsing of the - --unused-refspec option. Thanks, Øyvind A. Holm. - * Make full option parsing be done when not in a git repo, so --help - can be displayed for commands that require a git repo, etc. - * fsck: Work around bug in persistent that broke display of - problematically encoded filenames on stderr when using --incremental. - * When gpg.program is configured, it's used to get the command to run - for gpg. Useful on systems that have only a gpg2 command or want to - use it instead of the gpg command. - * Windows: Switched to using git for Windows, rather than msysgit. - Using msysgit with git-annex is no longer supported. - * Windows: Even when the user neglects to tell the git installer to - add git to PATH, git-annex will still work from within the git bash - shell, and the webapp can be used too. - * sync: Add --no-commit, --no-pull, --no-push options to turn off parts of - the sync process, as well as supporting --commit, --pull, --push, and - --no-content options to specify the (current) default behavior. - * annex.hardlink extended to also try to use hard links when copying from - the repository to a remote. - * Improve bash completion, so it completes names of remotes and backends - in appropriate places. - * Special remotes configured with autoenable=true will be automatically - enabled when git-annex init is run. - * Fix bug in combination of preferred and required content settings. - When one was set to the empty string and the other set to some expression, - this bug caused all files to be wanted, instead of only files matching - the expression. - - -- Joey Hess <id@joeyh.name> Wed, 16 Sep 2015 10:31:24 -0400 - -git-annex (5.20150824) unstable; urgency=medium - - * Sped up downloads of files from ssh remotes, reducing the - non-data-transfer overhead 6x. - * sync: Support --jobs - * sync --content: Avoid unnecessary second pull from remotes when - no file transfers are made. - * External special remotes can now be built that can be used in readonly - mode, where git-annex downloads content from the remote using regular - http. - * Added WHEREIS to external special remote protocol. - * importfeed --relaxed: Avoid hitting the urls of items in the feed. - * Fix reversion in init when ran as root, introduced in version 5.20150731. - * Reorder declaration to fix build with yesod-core > 1.4.13. - Thanks, Michael Alan Dorman. - * Fix building without quvi and without database. - Thanks, Ben Boeckel. - * Avoid building the assistant on the hurd, since an inotify equivalent - is not yet implemented in git-annex for the hurd. - * --debug log messages are now timestamped with fractional seconds. - * --debug is passed along to git-annex-shell when git-annex is in debug mode. - * Makefile: Pass LDFLAGS, CFLAGS, and CPPFLAGS through ghc and on to - ld, cc, and cpp. - * As a result of the Makefile changes, the Debian package is built - with various hardening options. Although their benefit to a largely - haskell program is unknown. - - -- Joey Hess <id@joeyh.name> Mon, 24 Aug 2015 14:11:05 -0700 - -git-annex (5.20150812) unstable; urgency=medium - - * Added support for SHA3 hashed keys (in 8 varieties), when git-annex is - built using the cryptonite library. - * metadata: Fix reversion introduced in 5.20150727 that caused recursive - display of metadata to not work. - * Windows: Fix bug that caused git-annex sync to fail due to missing - environment variable. - * Fix setting/setting/viewing metadata that contains unicode or other - special characters, when in a non-unicode locale. - * Simplify setup process for a ssh remote. Now it suffices to run git - remote add, followed by git-annex sync. Now the remote is automatically - initialized for use by git-annex, where before the git-annex branch had - to manually be pushed before using git-annex sync. Note that this - involved changes to git-annex-shell, so if the remote is using an old - version, the manual push is still needed. - * git-annex-shell: Don't let configlist auto-init repository when in - readonly mode. - * Perform a clean shutdown when --time-limit is reached. - This includes running queued git commands, and cleanup actions normally - run when a command is finished. - * fsck: Commit incremental fsck database when --time-limit is reached. - Previously, some of the last files fscked did not make it into the - database when using --time-limit. - * fsck: Commit incremental fsck database after every 1000 files - fscked, or every 5 minutes, whichever comes first. Previously, - commits were made every 1000 files fscked. - * Linux standalone: Work around problem that prevented it from working - properly if unpacked into a directory that contains ":" or ";" in its - name. - * proxy: Fix proxy git commit of non-annexed files in direct mode. - * proxy: If a non-proxied git command, such as git revert - would normally fail because of unstaged files in the work tree, - make the proxied command fail the same way. - * proxy: Fix removal of files deleted by the proxied command. - * proxy: Fix behavior when run in subdirectory of git repo. - * Improve Setup.hs file so that cabal copy --destdir works. - Thanks, Magnus Therning. - * Tighten dependency on optparse-applicative to 0.11.0. - * Added back debian/cabal-wrapper, since it still seems needed after all. - - -- Joey Hess <id@joeyh.name> Wed, 12 Aug 2015 11:14:58 -0400 - -git-annex (5.20150731) unstable; urgency=medium - - * webapp: Support enabling known gitlab.com remotes. - * Fix rsync special remote to work when -Jn is used for concurrent - uploads. - * The last release accidentially removed a number of options from the - copy command. (-J, file matching options, etc). These have been added - back. - * init: Detect when the filesystem is crippled such that it ignores - attempts to remove the write bit from a file, and enable direct mode. - Seen with eg, NTFS fuse on linux. - * Fix man page installation by cabal install; all the new man pages are - now installed. - - -- Joey Hess <id@joeyh.name> Fri, 31 Jul 2015 11:34:36 -0400 - -git-annex (5.20150727) unstable; urgency=medium - - * Fix bug that prevented uploads to remotes using new-style chunking - from resuming after the last successfully uploaded chunk. - * Switched option parsing to use optparse-applicative. This was a very large - and invasive change, and may have caused some minor behavior changes to - edge cases of option parsing. (For example, the metadata command no - longer accepts the combination of --get and --set, which never actually - worked.) - * Bash completion file is now included in the git-annex source tree, - and installed into Debian package (and any other packages built using make - install). This bash completion is generated by the option parser, so it - covers all commands, all options, and will never go out of date! - * As well as tab completing "git-annex" commands, "git annex" will also tab - complete. However, git's bash completion script needs a patch, - which I've submitted, for this to work prefectly. - * version --raw now works when run outside a git repository. - * assistant --startdelay now works when run outside a git repository. - * dead now accepts multiple --key options. - * addurl now accepts --prefix and --suffix options to adjust the - filenames used. - * sync --content: Fix bug that caused files to be uploaded to eg, - more archive remotes than wanted copies, only to later be dropped - to satisfy the preferred content settings. - * importfeed: Improve detection of known items whose url has changed, - and avoid adding redundant files. Where before this only looked at - permalinks in rss feeds, it now also looks at guids. - * importfeed: Look at not only permalinks, but now also guids - to identify previously downloaded files. - * Webapp: Now features easy setup of git-annex repositories on gitlab.com. - * Adjust debian build deps: The webapp can now build on arm64, s390x - and hurd-i386. WebDAV support is also available on those architectures. - * Debian package now maintained by Richard Hartmann. - * Support building without persistent database on for systems that - lack TH. This removes support for incremental fsck. - - -- Joey Hess <id@joeyh.name> Mon, 27 Jul 2015 12:24:49 -0400 - -git-annex (5.20150710) unstable; urgency=medium - - * add: Stage symlinks the same as git add would, even if they are not a - link to annexed content. - * sync: When annex.autocommit=false, avoid making any commit of local - changes, while still merging with remote to the extent possible. - * unused: --used-refspec can now be configured to look at refs in the - reflog. 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. - * log: Fix reversion introduced in version 5.20150528 that broke this command. - * assistant --autostart: First stop any daemons that are already running, - which might be left over from a previous login session and so unable to - use the ssh agent of a new login session. - * assistant: Fix local pairing to not include newline in ssh pubkey, - which is rejected on the other end for security reasons. - * assistant: Fix ANNEX_SHELL_DIR written to ~/.ssh/authorized_keys - in local pairing to be the absolute path to the repository, not "." - This was a reversion caused by the relative path changes in 5.20150113. - * Brought back the setkey plumbing command that was removed in 2011, since - we found a use case for it. Note that the command's syntax was changed - for consistency. - * bugfix: Pass --full-tree when using git ls-files to get a list of files - on the git-annex branch, so it works when run in a subdirectory. - This bug affected git-annex unused, and potentially also transitions - running code and other things. - * Support git's undocumented core.sharedRepository=2 value, which - is equivalent to "world", and is set when a repo was created using - git init --shared=world. - * When building on linux, pass --as-needed to linker to avoid linking - with unused shared libraries including libyaml. - * import: Fix failure of cross-device import on Windows. - * merge: Avoid creating the synced/master branch. - * Removed support for optparse-applicative versions older than 0.10. - - -- Joey Hess <id@joeyh.name> Fri, 10 Jul 2015 16:36:42 -0400 - -git-annex (5.20150617) unstable; urgency=medium - - * Now supports git annex sync --all --content to sync all versions of all - files with all repos that want them. - * Added new "anything" preferred content expression, which matches all - versions of all files. - * Standard preferred content for client, backup, incremental backup, - and unwanted groups have been adjusted to work better when used - with git annex sync --all --content. - * fromkey, registerurl: Improve handling of urls that happen to also - be parsable as strange keys. - * sync, remotedaemon: Pass configured ssh-options even when - annex.sshcaching is disabled. - * assistant: Consume systemd-networkd dbus events to learn about - changes to network connections, as was already done with - network-manager and wicd. - Thanks to Sebastian Reuße for the patches. - * get --incomplete: New option to resume any interrupted downloads. - * dead --key: Can be used to mark a key as dead. - * fsck: Ignore keys that are known to be dead when running in - --all/--unused/--key mode or a in a bare repo. Closes: #753888 - Otherwise, still reports files with lost contents, even if the content - is dead. - * S3: Special remotes can be configured with public=yes to allow - the public to access the bucket's content. - * S3: Publically accessible buckets can be used without creds. - * import --clean-duplicates: Fix bug that didn't count local or trusted - repo's copy of a file as one of the necessary copies to allow removing - it from the import location. - * tahoe: Use ~/.tahoe-git-annex/ rather than ~/.tahoe/git-annex/ - when setting up a tahoe special remote to avoid old versions of - tahoe create-client choking. - * Fix bug that prevented enumerating locally present objects in repos - tuned with annex.tune.objecthash1=true. - Fixes: unused, object count in info, unannex. - * Improve url parsing to handle some urls containing illegal [] - characters in their paths. - * info: Added json output for "backend usage", "numcopies stats", - "repositories containing these files", and "transfers in progress". - * Fix incremental backup standard preferred content expression to match - its documentation, which says it does not want files that have reached - a backup repository. - * Increased the default annex.bloomaccuracy from 1000 to 10000000. - This makes git annex unused use up to 16 mb more memory than it did - before, but the massive increase in accuracy makes this worthwhile - for all but the smallest systems. - * Build documentation with deterministic=1 for reproducible builds. - (A new ikiwiki feature.) Closes: #785736 - * Re-remove dependency on obsolete hamlet package. Closes: #786659 - * debian/cabal-wrapper: Removed this hack which should not be needed anymore. - - -- Joey Hess <id@joeyh.name> Wed, 17 Jun 2015 13:50:35 -0400 - -git-annex (5.20150528) unstable; urgency=medium - - * fromkey, registerurl: Allow urls to be specified instead of keys, - and generate URL keys. - * Linux standalone, OSX app: Improve runshell script to always quote - shell vars, so that it will work when eg, untarred into a directory - path with spaces in its name. - * Revert removal dependency on obsolete hamlet package, since the - autobuilders are not ready for this change yet and it prevented them - from building the webapp. Reopens: #786659 - * fsck: When checksumming a file fails due to a hardware fault, - the file is now moved to the bad directory, and the fsck proceeds. - Before, the fsck immediately failed. - * Linux standalone: The webapp was not built in the previous release, - this release fixes that oversight. - - -- Joey Hess <id@joeyh.name> Thu, 28 May 2015 10:48:03 -0400 - -git-annex (5.20150522) unstable; urgency=medium - - * import: Refuse to import files that are within the work tree, as that - does not make sense and could cause data loss. - * drop: Now supports --all, --unused, and --key. - * drop: Now defaults to --all when run in a bare repository. - (Previously, did nothing when run in a bare repository.) - * get, move, copy, mirror: Concurrent transfers are now supported! - For example: git-annex get -J10 - However, progress bars are not yet displayed for concurrent transfers, - pending an updated version of the ascii-progress library. - * --quiet now makes progress output by rsync, wget, etc be quiet too. - * Take space that will be used by other running downloads into account when - checking annex.diskreserve. - * Avoid accumulating transfer failure log files unless the assistant is - being used. - * Fix an unlikely race that could result in two transfers of the same key - running at once. - * Stale transfer lock and info files will be cleaned up automatically - when get/unused/info commands are run. - * unused: Add --used-refspec option and annex.used-refspec, which can - specify a set of refs to consider used, rather than the default of - considering all refs used. - * webapp: Fix zombie xdg-open process left when opening file browser. - Closes: #785498 - * Safer posix fctnl locking implementation, using lock pools and STM. - * Build documentation with TZ=UTC for reproducible builds. See #785736. - * OSX: Corrected the location of trustedkeys.gpg, so the built-in - upgrade code will find it. Fixes OSX upgrade going forward, but - older versions won't upgrade themselves due to this problem. - * Remove dependency on obsolete hamlet package. Closes: #786659 - - -- Joey Hess <id@joeyh.name> Fri, 22 May 2015 14:20:18 -0400 - -git-annex (5.20150508.1) unstable; urgency=medium - - * Now builds cleanly using ghc 7.10 (as well as ghc back to 7.6). - * Imrovements to the git-annex-standalone.deb build process. - (Thanks, Yaroslav Halchenko) - - -- Joey Hess <id@joeyh.name> Mon, 11 May 2015 12:08:58 -0400 - -git-annex (5.20150508) unstable; urgency=medium - - * Improve behavior when a git-annex command is told to operate - on a file that doesn't exist. It will now continue to other - files specified after that on the command line, and only error out at - the end. - * S3: Enable debug logging when annex.debug or --debug is set. - * S3: git annex info will show additional information about a S3 remote - (endpoint, port, storage class) - * S3: Let git annex enableremote be used, without trying to recreate - a bucket that should already exist. - * S3: Fix incompatability with bucket names used by hS3; the aws library - cannot handle upper-case bucket names. git-annex now converts them to - lower case automatically. - * import: Check for gitignored files before moving them into the tree. - (Needs git 1.8.4 or newer.) - * import: Don't stop entire import when one file fails due to being - gitignored or conflicting with something in the work tree. - * import: Before removing a duplicate file in --deduplicate or - --clean-duplicates mode, verify that enough copies of its content still - exist. - * Improve integration with KDE's file manager to work with dolphin - version 14.12.3 while still being compatable with 4.14.2. - Thanks, silvio. - * assistant: Added --autostop to complement --autostart. - * Work around wget bug #784348 which could cause it to clobber git-annex - symlinks when downloading from ftp. - * Support checking ftp urls for file presence. - * Fix bogus failure of fsck --fast. - * fsck: Ignore error recording the fsck in the activity log, - which can happen when running fsck in a read-only repository. - Closes: #698559 - (fsck can still need to write to the repository if it find problems, - but a successful fsck can be done read-only) - * Improve quvi 0.4 output parsing to handle cases wher there is no known - filename extension. This is currently the case when using quvi with - youtube. In this case, the extension ".m" will be used. - * Dropped support for older versions of yesod, warp, and dbus than the ones - in Debian Jessie. - * Switch from the obsolete dataenc library for base64 encoding to sandi. - (Thanks, Magnus Therning) - * Debian's ghc now supports TH on arm! Adjust build dependencies - to build the webapp on arm, and enable DAV support on arm. \o/ - * Adjust some other arch specific build dependencies that are now - available on more architectures in Devian unstable. - * Windows: Remove cygwin ssh, the newer version of which has stopped - honoring the setting of HOME. Instead, copy msysgit's ssh into PATH. - Note that setting up a remote ssh server using password authentication - is known to be broken in this release on Windows. - * Windows: Roll back to an older version of rsync from cygwin. - The newer version has some dependency on a newer ssh from cygwin. - - -- Joey Hess <id@joeyh.name> Fri, 08 May 2015 13:42:30 -0400 - -git-annex (5.20150420) unstable; urgency=medium - - * Fix activity log parsing, which caused the log to not retain - activity from other uuids. - * Union merge could fall over if there was a file in the repository - with the same name as a git ref. Now fixed. - * info dir: Added information about repositories that - contain files in the specified directory. - * info: Added --bytes option. - * bittorrent: Fix handling of magnet links. - * When a key's size is unknown, still check the annex.diskreserve, - and avoid getting content if the disk is too full. - * Fix fsck --from a git remote in a local directory, and from - a directory special remote. - This was a reversion caused by the relative path changes in 5.20150113. - * fsck --from remote: When bad content is found in the remote, - and the local repo does not have a copy of the content, preserve - the bad content in .git/annex/bad/ to avoid further data loss. - * fsck --from remote: Avoid downloading a key if it would go over - the annex.diskreserve limit. - * required: New command, like wanted, but for required content. - * Removed dependency on haskell SHA library, - instead using cryptohash >= 0.11.0. - * Make repo init more robust. - * New debian/rules build-standalone target, which generates a - git-annex-standalone.deb that should work on many old Debian etc - systems. Thanks, Yaroslav Halchenko. - * Windows: Renamed start menu file to avoid loop in some versions - of Windows where the menu file is treated as a git-annex program. - * Windows: Fixed support of remotes on other drives. - (A reversion introduced in version 5.20150113.) - * Windows: Bundled versions of rsync, wget, ssh, and gpg from - cygwin all updated. Thanks, Yury V. Zaytsev. - - -- Joey Hess <id@joeyh.name> Mon, 20 Apr 2015 14:44:04 -0400 - -git-annex (5.20150409) unstable; urgency=medium - - * This fixes a bug in the assistant introduced by the literal pathspec - changes in version 5.20150406. - * --quiet now suppresses progress displays from eg, rsync. - (Second time's the charm..) - * fromkey, registerurl: When reading from stdin, allow the - filename and url, respectively, to contain whitespace. - * add: If annex.largefiles is set and does not match a file that's being - added, the file will be checked into git rather than being added to the - annex. Previously, git annex add skipped over such files; this new - behavior is more useful in direct mode. - * proxy: Made it work when run in a new repository before initial - commit. - * info: Display repository mode: bare when in a bare (non-direct mode) - repo. - * importfeed: Fix feed download when curl is used. - * importfeed: Error out when passed a non-url. - * webapp: When adding another local repository, and combining it - with the current repository, the new repository's remote path - was set to "." rather than the path to the current repository. - This was a reversion caused by the relative path changes in 5.20150113. - * contentlocationn: New plumbing command. - - -- Joey Hess <id@joeyh.name> Thu, 09 Apr 2015 15:06:38 -0400 - -git-annex (5.20150406.1) unstable; urgency=medium - - * Fixes a bug in the last release that caused rsync and possibly - other commands to hang at the end of a file transfer. - (--quiet is back to not blocking progress displays until - that code can be fixed properly.) - - -- Joey Hess <id@joeyh.name> Mon, 06 Apr 2015 17:13:13 -0400 - -git-annex (5.20150406) unstable; urgency=medium - - * Prevent git-ls-files from double-expanding wildcards when an - unexpanded wildcard is passed to a git-annex command like add or find. - * Fix make build target. Thanks, Justin Geibel. - * Fix GETURLS in external special remote protocol to strip - downloader prefix from logged url info before checking for the - specified prefix. - * importfeed: Avoid downloading a redundant item from a feed whose - permalink has been seen before, even when the url has changed. - * importfeed: Always store itemid in metadata; before this was only - done when annex.genmetadata was set. - * Relax debian package dependencies to git >= 1:1.8.1 rather - than needing >= 1:2.0. - * test: Fix --list-tests - * addurl --file: When used with a special remote that claims - urls and checks their contents, don't override the user's provided - filename with filenames that the special remote suggests. Also, - don't allow adding the url if the special remote says it contains - multiple files. - * import: --deduplicate and --cleanduplicates now output the keys - corresponding to duplicated files they process. - * expire: New command, for expiring inactive repositories. - * fsck: Record fsck activity for use by expire command. - * Fix truncation of parameters that could occur when using xargs git-annex. - * Significantly sped up processing of large numbers of directories - passed to a single git-annex command. - * version: Add --raw - * init: Improve fifo test to detect NFS systems that support fifos - but not well enough for sshcaching. - * --quiet now suppresses progress displays from eg, rsync. - (The option already suppressed git-annex's own built-in progress - displays.) - - -- Joey Hess <id@joeyh.name> Mon, 06 Apr 2015 12:48:48 -0400 - -git-annex (5.20150327) unstable; urgency=medium - - * readpresentkey: New plumbing command for checking location log. - * checkpresentkey: New plumbing command to check if a key can be verified - to be present on a remote. - * Added a post-update-annex hook, which is run after the git-annex branch - is updated. Needed for git update-server-info. - * migrate: --force will force migration of keys already using the - destination backend. Useful in rare cases. - * Man pages for individual commands now available, and can be - opened using "git annex help <command>" - * --auto is no longer a global option; only get, drop, and copy - accept it. (Not a behavior change unless you were passing it to a - command that ignored it.) - * Improve error message when --in @date is used and there is no - reflog for the git-annex branch. - * assistant: Committing a whole lot of files at once could overflow - command-line length limits and cause the commit to fail. This - only happened when using the assistant in an indirect mode repository. - * Work around curl bug when asked to download an empty url to a file. - * Fix bug introduced in the last release that broke git-annex sync - when git-annex was installed from the standalone tarball. - - -- Joey Hess <id@joeyh.name> Fri, 27 Mar 2015 13:10:59 -0400 - -git-annex (5.20150317) unstable; urgency=medium - - * fsck: Incremental fsck uses sqlite to store its records, instead - of abusing the sticky bit. Existing sticky bits are ignored; - incremental fscks started by old versions won't be resumed by - this version. - * fsck: Multiple incremental fscks of different repos (including remotes) - can now be running at the same time in the same repo without it - getting confused about which files have been checked for which remotes. - * unannex: Refuse to unannex when repo is too new to have a HEAD, - since in this case there must be staged changes in the index - (if there is anything to unannex), and the unannex code path - needs to run with a clean index. - * Linux standalone: Set LOCPATH=/dev/null to work around - https://ghc.haskell.org/trac/ghc/ticket/7695 - This prevents localization from working, but git-annex - is not localized anyway. - * sync: As well as the synced/git-annex push, attempt a - git-annex:git-annex push, as long as the remote branch - is an ancestor of the local branch, to better support bare git repos. - (This used to be done, but it forgot to do it since version 4.20130909.) - * When re-execing git-annex, use current program location, rather than - ~/.config/git-annex/program, when possible. - * Submodules are now supported by git-annex! - * metadata: Fix encoding problem that led to mojibake when storing - metadata strings that contained both unicode characters and a space - (or '!') character. - * Also potentially fixes encoding problem when embedding credentials - that contain unicode characters. - * sync: Fix committing when in a direct mode repo that has no HEAD ref. - (For example, a newly checked out git submodule.) - * Added SETURIPRESENT and SETURIMISSING to external special remote protocol, - useful for things like ipfs that don't use regular urls. - * addurl: Added --raw option, which bypasses special handling of quvi, - bittorrent etc urls. - * git-annex-shell: Improve error message when the specified repository - doesn't exist or git config fails for some reason. - * fromkey --force: Skip test that the key has its content in the annex. - * fromkey: Add stdin mode. - * registerurl: New plumbing command for mass-adding urls to keys. - * remotedaemon: Fixed support for notifications of changes to gcrypt - remotes, which was never tested and didn't quite work before. - - -- Joey Hess <id@joeyh.name> Tue, 17 Mar 2015 13:02:36 -0400 - -git-annex (5.20150219) unstable; urgency=medium - - * glacier: Detect when the glacier command in PATH is the wrong one, - from boto, rather than from glacier-cli, and refuse to use it, - since the boto program fails to fail when passed - parameters it does not understand. - * groupwanted: New command to set the groupwanted preferred content - expression. - * import: Support file matching options such as --exclude, --include, - --smallerthan, --largerthan - * The file matching options are now only accepted by commands that - can actually use them, instead of by all commands. - * import: Avoid checksumming file twice when run in the default - or --duplicate mode. - * Windows: Fix bug in dropping an annexed file, which - caused a symlink to be staged that contained backslashes. - * webapp: Fix reversion in opening webapp when starting it manually - inside a repository. - * assistant: Improve sanity check for control characters when pairing. - * Improve race recovery code when committing to git-annex branch. - * addurl: Avoid crash if quvi is not installed, when git-annex was - built with process-1.2 - * bittorrent: Fix mojibake introduced in parsing arai2c progress output. - * fsck --from: If a download from a remote fails, propagate the failure. - * metadata: When setting metadata, do not recurse into directories by - default, since that can be surprising behavior and difficult to recover - from. The old behavior is available by using --force. - * sync, assistant: Include repository name in head branch commit message. - * The ssh-options git config is now used by gcrypt, rsync, and ddar - special remotes that use ssh as a transport. - * sync, assistant: Use the ssh-options git config when doing git pull - and push. - * remotedaemon: Use the ssh-options git config. - * Linux standalone: Improved process names of linker shimmed programs. - - -- Joey Hess <id@joeyh.name> Thu, 19 Feb 2015 14:16:03 -0400 - -git-annex (5.20150205) unstable; urgency=medium - - * info: Can now display info about a given uuid. - * Added to remote/uuid info: Count of the number of keys present - on the remote, and their size. This is rather expensive to calculate, - so comes last and --fast will disable it. - * info remote: Include the date of the last sync with the remote. - * sync: Added --message/-m option like git commit. - * remotedaemon: Fix problem that could prevent ssh connections being - made after two LOSTNET messages were received in a row (perhaps due to - two different network interfaces being brought down). - * Fix build failure when wget is not installed. - * Fix wording of message displayed when unable to get a file that - is available in untrusted repositories. - * addurl: When a Content-Disposition header suggests a filename to use, - addurl will consider using it, if it's reasonable and doesn't conflict - with an existing file. (--file overrides this) - * Fix default repository description created by git annex init, - which got broken by the relative path changes in the last release. - * init: Repository tuning parameters can now be passed when initializing a - repository for the first time. For details, see - http://git-annex.branchable.com/tuning/ - * merge: Refuse to merge changes from a git-annex branch of a repo - that has been tuned in incompatible ways. - * Support annex.tune.objecthash1, annex.tune.objecthashlower, and - annex.tune.branchhash1. - * Remove support for building without cryptohash. - * Added MD5 and MD5E backends. - * assistant: Fix local pairing when ssh pubkey comment contains spaces. - * Avoid using fileSize which maxes out at just 2 gb on Windows. - Instead, use hFileSize, which doesn't have a bounded size. - Fixes support for files > 2 gb on Windows. - * Windows: Fix running of the pre-commit-annex hook. - * Windows: Fix S3 special remote; need to call withSocketsDo. Thanks, Trent. - - -- Joey Hess <id@joeyh.name> Thu, 05 Feb 2015 14:08:33 -0400 - -git-annex (5.20150113) unstable; urgency=medium - - * unlock: Don't allow unlocking files that have never been committed to git - before, to avoid an intractable problem that prevents the pre-commit - hook from telling if such a file is intended to be an annexed file or not. - * Avoid re-checksumming when migrating from hash to hashE backend. - Closes: #774494 - * Fix build with process 1.2.1.0. - * Android: Provide a version built with -fPIE -pie to support Android 5.0. - * sync: Fix an edge case where syncing in a bare repository would try to - merge and so fail. - * Check git version at runtime, rather than assuming it will be the same - as the git version used at build time when running git-checkattr and - git-branch remove. - * Switch to using relative paths to the git repository. - - 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. - * Generate shorter keys for WORM and URL, avoiding keys that are longer - than used for SHA256, so as to not break on systems like Windows that - have very small maximum path length limits. - * Bugfix: A file named HEAD in the work tree could confuse some git commands - run by git-annex. - - -- Joey Hess <id@joeyh.name> Tue, 13 Jan 2015 12:10:08 -0400 - -git-annex (5.20141231) unstable; urgency=medium - - * vicfg: Avoid crashing on badly encoded config data. - * Work around statfs() overflow on some XFS systems. - * sync: Now supports remote groups, the same way git remote update does. - * setpresentkey: A new plumbing-level command. - * Run shutdown cleanup actions even if there were failures processing - the command. Among other fixes, this means that addurl will stage - added files even if adding one of the urls fails. - * bittorrent: Fix locking problem when using addurl file:// - * Windows: Fix local rsync filepath munging (fixes 26 test suite failures). - * Windows: Got the rsync special remote working. - * Windows: Fix handling of views of filenames containing '%' - * OSX: Switched away from deprecated statfs64 interface. - - -- Joey Hess <id@joeyh.name> Wed, 31 Dec 2014 15:15:46 -0400 - -git-annex (5.20141219) unstable; urgency=medium - - * Webapp: When adding a new box.com remote, use the new style chunking. - Thanks, Jon Ander Peñalba. - * External special remote protocol now includes commands for setting - and getting the urls associated with a key. - * Urls can now be claimed by remotes. This will allow creating, - for example, a external special remote that handles magnet: and - *.torrent urls. - * Use wget -q --show-progress for less verbose wget output, - when built with wget 1.16. - * Added bittorrent special remote. - * addurl behavior change: When downloading an url ending in .torrent, - it will download files from bittorrent, instead of the old behavior - of adding the torrent file to the repository. - * Added Recommends on aria2. - * When possible, build with the haskell torrent library for parsing - torrent files. As a fallback, can instead use btshowmetainfo from - bittornado | bittorrent. - * Fix build with -f-S3. - - -- Joey Hess <id@joeyh.name> Fri, 19 Dec 2014 16:53:26 -0400 - -git-annex (5.20141203) unstable; urgency=medium - - * proxy: New command for direct mode repositories, allows bypassing - the direct mode guard in a safe way to do all sorts of things - including git revert, git mv, git checkout ... - * undo: New command to undo the most recent change to a file - or to the contents of a directory. - * Add undo action to nautilus and konqueror integration. - * diffdriver: New git-annex command, to make git external diff drivers - work with annexed files. - * pre-commit: Block partial commit of unlocked annexed file, since - that left a typechange staged in index due to some infelicity of git's - handling of partial commits. - * Work around behavior change in lsof 4.88's -F output format. - * S3: Switched to using the haskell aws library. - * S3: No longer buffers entire files in memory when uploading without - chunking. - * S3: When built with a new enough version of the haskell aws library, - supports doing multipart uploads, in order to store extremely large - files in S3 when not using chunking. - * Don't show "(gpg)" when decrypting the remote encryption cipher, - since this could be taken to read that's the only time git-annex - runs gpg, which is not the case. - * Debian package is now maintained by Gergely Nagy. - * Windows: Remove Alt+A keyboard shortcut, which turns out to have scope - outside the menus. - * Windows: Install ssh and other bundled programs to Git/cmd, - instead of Git/bin, since the latter is not in the default msysgit PATH. - - -- Joey Hess <id@joeyh.name> Wed, 03 Dec 2014 15:16:52 -0400 - -git-annex (5.20141125) unstable; urgency=medium - - * Remove fixup code for bad bare repositories created by - versions 5.20131118 through 5.20131127. That fixup code would - accidentially fire when --git-dir was incorrectly - pointed at the working tree of a git-annex repository, - possibly resulting in data loss. Closes: #768093 - * Windows: Fix crash when user.name is not set in git config. - - -- Joey Hess <joeyh@debian.org> Wed, 05 Nov 2014 11:41:51 -0400 - -git-annex (5.20141024) unstable; urgency=medium - - * vicfg: Deleting configurations now resets to the default, where - before it has no effect. - * Remove hurd stuff from cabal file, since hackage currently rejects - it, and the test suite fails on hurd. - * initremote: Don't allow creating a special remote that has the same - name as an existing git remote. - * Windows: Use haskell setenv library to clean up several ugly workarounds - for inability to manipulate the environment on windows. This includes - making git-annex not re-exec itself on start on windows, and making the - test suite on Windows run tests without forking. - * glacier: Fix pipe setup when calling glacier-cli to retrieve an object. - * info: When run on a single annexed file, displays some info about the - file, including its key and size. - * info: When passed the name or uuid of a remote, displays info about that - remote. Remotes that support encryption, chunking, or embedded - creds will include that in their info. - * enableremote: When the remote has creds, update the local creds cache - file. Before, the old version of the creds could be left there, and - would continue to be used. - - -- Joey Hess <joeyh@debian.org> Fri, 24 Oct 2014 13:03:29 -0400 - -git-annex (5.20141013) unstable; urgency=medium - - * Adjust cabal file to support building w/o assistant on the hurd. - * Support building with yesod 1.4. - * S3: Fix embedcreds=yes handling for the Internet Archive. - * map: Handle .git prefixed remote repos. Closes: #614759 - * repair: Prevent auto gc from happening when fetching from a remote. - - -- Joey Hess <joeyh@debian.org> Mon, 13 Oct 2014 10:13:06 -0400 - -git-annex (5.20140927) unstable; urgency=medium - - * Really depend (not just build-depend) on new enough git for --no-gpg-sign - to work. Closes: #763057 - * Add temporary workaround for bug #763078 which broke building on armel - and armhf. - - -- Joey Hess <joeyh@debian.org> Sat, 27 Sep 2014 14:25:09 -0400 - -git-annex (5.20140926) unstable; urgency=high - - * Depend on new enough git for --no-gpg-sign to work. Closes: #762446 - * Work around failure to build on mips by using cabal, not Setup, - to build in debian/rules. - - -- Joey Hess <joeyh@debian.org> Fri, 26 Sep 2014 15:09:02 -0400 - -git-annex (5.20140919) unstable; urgency=high - - * Security fix for S3 and glacier when using embedcreds=yes with - encryption=pubkey or encryption=hybrid. CVE-2014-6274 - The creds embedded in the git repo were *not* encrypted. - git-annex enableremote will warn when used on a remote that has - this problem. For details, see: - https://git-annex.branchable.com/upgrades/insecure_embedded_creds/ - * assistant: Detect when repository has been deleted or moved, and - automatically shut down the assistant. Closes: #761261 - * Windows: Avoid crashing trying to list gpg secret keys, for gcrypt - which is not yet supported on Windows. - * WebDav: Fix enableremote crash when the remote already exists. - (Bug introduced in version 5.20140817.) - * add: In direct mode, adding an annex symlink will check it into git, - as was already done in indirect mode. - - -- Joey Hess <joeyh@debian.org> Fri, 19 Sep 2014 12:53:42 -0400 - -git-annex (5.20140915) unstable; urgency=medium - - * New annex.hardlink setting. Closes: #758593 - * init: Automatically detect when a repository was cloned with --shared, - and set annex.hardlink=true, as well as marking the repository as - untrusted. - * Fix parsing of ipv6 address in git remote address when it was not - formatted as an url. - * The annex-rsync-transport configuration is now also used when checking - if a key is present on a rsync remote, and when dropping a key from - the remote. - * Promote file not found warning message to an error. - * Fix transfer lock file FD leak that could occur when two separate - git-annex processes were both working to perform the same set of - transfers. - * sync: Ensure that pending changes to git-annex branch are committed - before push when in direct mode. (Fixing a very minor reversion.) - * WORM backend: Switched to include the relative path to the file inside - the repository, rather than just the file's base name. Note that if you're - relying on such things to keep files separate with WORM, you should really - be using a better backend. - * Rather than crashing when there's a problem with the requested bloomfilter - capacity/accuracy, fall back to a reasonable default bloom filter size. - * Fix build with optparse-applicative 0.10. Closes: #761484 - * webapp: Fixed visual glitch in xmpp pairing that was reported live by a - user who tracked me down in front of a coffee cart in Portland. - (New bug reporting method of choice?) - - -- Joey Hess <joeyh@debian.org> Mon, 15 Sep 2014 10:45:00 -0400 - -git-annex (5.20140831) unstable; urgency=medium - - * Make --help work when not in a git repository. Closes: #758592 - * Ensure that all lock fds are close-on-exec, fixing various problems with - them being inherited by child processes such as git commands. - * When accessing a local remote, shut down git-cat-file processes - afterwards, to ensure that remotes on removable media can be unmounted. - Closes: #758630 - * Fix handing of autocorrection when running outside a git repository. - * Fix stub git-annex test support when built without tasty. - * Do not preserve permissions and acls when copying files from - one local git repository to another. Timestamps are still preserved - as long as cp --preserve=timestamps is supported. Closes: #729757 - - -- Joey Hess <joeyh@debian.org> Sun, 31 Aug 2014 12:30:08 -0700 - -git-annex (5.20140817) unstable; urgency=medium - - * New chunk= option to chunk files stored in special remotes. - Supported by: directory, S3, webdav, gcrypt, rsync, and all external - and hook special remotes. - * Partially transferred files are automatically resumed when using - chunked remotes! - * The old chunksize= option is deprecated. Do not use for new remotes. - * Legacy code for directory remotes using the old chunksize= option - will keep them working, but more slowly than before. - * webapp: Automatically install Konqueror integration scripts - to get and drop files. - * repair: Removing bad objects could leave fsck finding no more - unreachable objects, but some branches no longer accessible. - Fix this, including support for fixing up repositories that - were incompletely repaired before. - * Fix cost calculation for non-encrypted remotes. - * Display exception message when a transfer fails due to an exception. - * WebDAV: Sped up by avoiding making multiple http connections - when storing a file. - * WebDAV: Avoid buffering whole file in memory when uploading and - downloading. - * WebDAV: Dropped support for DAV before 1.0. - * testremote: New command to test uploads/downloads to a remote. - * Dropping an object from a bup special remote now deletes the git branch - for the object, although of course the object's content cannot be deleted - due to the nature of bup. - * unlock: Better error handling; continue past files that are not available - or cannot be unlocked due to disk space, and try all specified files. - * Windows: Now uses actual inode equivilants in new direct mode - repositories, for safer detection of eg, renaming of files with the same - size and mtime. - * direct: Fix ugly warning messages. - * WORM backend: When adding a file in a subdirectory, avoid including the - subdirectory in the key name. - * S3, Glacier, WebDAV: Fix bug that prevented accessing the creds - when the repository was configured with encryption=shared embedcreds=yes. - * direct: Avoid leaving file content in misctemp if interrupted. - * git-annex-shell sendkey: Don't fail if a remote asks for a key to be sent - that already has a transfer lock file indicating it's being sent to that - remote. The remote may have moved between networks, or reconnected. - * Switched from the old haskell HTTP library to http-conduit. - - -- Joey Hess <joeyh@debian.org> Sun, 17 Aug 2014 10:30:58 -0400 - -git-annex (5.20140717) unstable; urgency=high - - * Fix minor FD leak in journal code. Closes: #754608 - * direct: Fix handling of case where a work tree subdirectory cannot - be written to due to permissions. - * migrate: Avoid re-checksumming when migrating from hashE to hash backend. - * uninit: Avoid failing final removal in some direct mode repositories - due to file modes. - * S3: Deal with AWS ACL configurations that do not allow creating or - checking the location of a bucket, but only reading and writing content to - it. - * resolvemerge: New plumbing command that runs the automatic merge conflict - resolver. - * Deal with change in git 2.0 that made indirect mode merge conflict - resolution leave behind old files. - * sync: Fix git sync with local git remotes even when they don't have an - annex.uuid set. (The assistant already did so.) - * Set gcrypt-publish-participants when setting up a gcrypt repository, - to avoid unncessary passphrase prompts. - This is a security/usability tradeoff. To avoid exposing the gpg key - ids who can decrypt the repository, users can unset - gcrypt-publish-participants. - * Install nautilus hooks even when ~/.local/share/nautilus/ does not yet - exist, since it is not automatically created for Gnome 3 users. - * Windows: Move .vbs files out of git\bin, to avoid that being in the - PATH, which caused some weird breakage. (Thanks, divB) - * Windows: Fix locking issue that prevented the webapp starting - (since 5.20140707). - - -- Joey Hess <joeyh@debian.org> Thu, 17 Jul 2014 11:27:25 -0400 - -git-annex (5.20140709) unstable; urgency=medium - - * Fix race in direct mode merge code that could cause all files in the - repository to be removed. It should be able to recover repositories - experiencing this bug without data loss. See: - http://git-annex.branchable.com/bugs/bad_merge_commit_deleting_all_files/ - * Fix git version that supported --no-gpg-sign. - * Fix bug in automatic merge conflict resolution, when one side is an - annexed symlink, and the other side is a non-annexed symlink. - * Really fix bug that caused the assistant to make many unncessary - empty merge commits. - - -- Joey Hess <joeyh@debian.org> Wed, 09 Jul 2014 15:28:03 -0400 - -git-annex (5.20140707) unstable; urgency=medium - - * assistant: Fix bug, introduced in last release, that caused the assistant - to make many unncessary empty merge commits. - * assistant: Fix one-way assistant->assistant sync in direct mode. - * Fix bug in annex.queuesize calculation that caused much more - queue flushing than necessary. - * importfeed: When annex.genmetadata is set, metadata from the feed - is added to files that are imported from it. - * Support users who have set commit.gpgsign, by disabling gpg signatures - for git-annex branch commits and commits made by the assistant. - * Fix memory leak when committing millions of changes to the git-annex - branch, eg after git-annex add has run on 2 million files in one go. - * Support building with bloomfilter 2.0.0. - * Run standalone install process when the assistant is started - (was only being run when the webapp was opened). - * Android: patch git to avoid fchmod, which fails on /sdcard. - * Windows: Got rid of that pesky DOS box when starting the webapp. - * Windows: Added Startup menu item so assistant starts automatically - on login. - * Windows: Fix opening file browser from webapp when repo is in a - directory with spaces. - * Windows: Assistant now logs to daemon.log. - - -- Joey Hess <joeyh@debian.org> Mon, 07 Jul 2014 12:24:13 -0400 - -git-annex (5.20140613) unstable; urgency=medium - - * Ignore setsid failures. - * Avoid leaving behind .tmp files when failing in some cases, including - importing files to a disk that is full. - * Avoid bad commits after interrupted direct mode sync (or merge). - * Fix build with wai 0.3.0. - * Deal with FAT's low resolution timestamps, which in combination with - Linux's caching of higher res timestamps while a FAT is mounted, caused - direct mode repositories on FAT to seem to have modified files after - they were unmounted and remounted. - * Windows: Fix opening webapp when repository is in a directory with - spaces in the path. - * Detect when Windows has lost its mind in a timezone change, and - automatically apply a delta to the timestamps it returns, to get back to - sane values. - - -- Joey Hess <joeyh@debian.org> Fri, 13 Jun 2014 09:58:07 -0400 - -git-annex (5.20140606) unstable; urgency=medium - - * webapp: When adding a new local repository, fix bug that caused its - group and preferred content to be set in the current repository, - even when not combining. - * webapp: Avoid stomping on existing description, group and - preferred content settings when enabling or combining with - an already existing remote. - * assistant: Make sanity checker tmp dir cleanup code more robust. - * unused: Avoid checking view branches for unused files. - * webapp: Include ssh port in mangled hostname. - * Windows: Fix bug introduced in last release that caused files - in the git-annex branch to have lines teminated with \r. - * Windows: Fix retrieving of files from local bare git repositories. - - -- Joey Hess <joeyh@debian.org> Fri, 06 Jun 2014 12:54:06 -0400 - -git-annex (5.20140529) unstable; urgency=medium - - * Fix encoding of data written to git-annex branch. Avoid truncating - unicode characters to 8 bits. Allow any encoding to be used, as with - filenames (but utf8 is the sane choice). Affects metadata and repository - descriptions, and preferred content expressions. - * assistant: When there are multiple remotes giving different ways - to access the same repository, honor remote cost settings and use - the cheapest available. - * webapp: More robust startup when annex directory is not a git repo. - * initremote/enableremote: Basic support for using with regular git remotes; - initremote stores the location of an already existing git remote, - and enableremote setups up a remote using its stored location. - * webapp: Support for enabling known git repositories on ssh servers. - The repository must have been added using initremote. - * webapp: When setting up a ssh remote, record it using initremote, - so that it can be easily enabled elsewhere. - * webapp: When setting up a ssh remote, if the user inputs ~/foo, - normalize that to foo, since it's in the home directory by default. - * Use exceptions in place of deprecated MonadCatchIO-transformers - Thanks, Ben Gamari. - * android: Run busybox install with -s, since some versions of Android - prohibit making hard links. - * Android webapp: Fix EvilSplicer bugs that mangled the css files, - preventing icons from displaying, and also slightly broke the js files. - - -- Joey Hess <joeyh@debian.org> Thu, 29 May 2014 14:41:56 -0400 - -git-annex (5.20140517) unstable; urgency=medium - - * webapp: Switched to bootstrap 3. - Thanks, Sören Brunk. - * Standalone builds now check gpg signatures before upgrading. - * Simplified repository description line format. The remote name, - if any, is always in square brackets after the description. - * assistant: Clean up stale tmp files on startup. - * webapp: Better ssh password prompting. - * Depend on git-remote-gcrypt 0.20130908-6. Older versions - fail when the assistant is run with no controlling tty. - * Added ddar special remote. - Thanks, Robie Basak. - * webapp: Fixed drag and drop to reorder the list of remotes. - * group: When no groups are specified to set, lists the current groups - of a repository. - * Add remote.$name.annex-shell configuration. - Thanks, Fraser Tweedale - * Support symlinking git-annex and git-annex-shell - from the Linux standalone bundle into PATH. - Thanks, jlebar. - - -- Joey Hess <joeyh@debian.org> Sat, 17 May 2014 13:30:39 -0400 - -git-annex (5.20140421) unstable; urgency=medium - - * assistant: Now detects immediately when other repositories push - changes to a ssh remote, and pulls. - ** XMPP is no longer needed in this configuration! ** - This requires the remote server have git-annex-shell with - notifychanges support (>= 5.20140405) - * webapp: Show a network signal icon next to ssh and xmpp remotes that - it's currently connected with. - * webapp: Rework xmpp nudge to prompt for either xmpp or a ssh remote - to be set up. - * sync, assistant, remotedaemon: Use ssh connection caching for git pushes - and pulls. - * remotedaemon: When network connection is lost, close all cached ssh - connections. - * Improve handling of monthly/yearly scheduling. - * Avoid depending on shakespeare except for when building the webapp. - * uninit: Avoid making unncessary copies of files. - * info: Allow use in a repository where annex.uuid is not set. - * reinit: New command that can initialize a new repository using - the configuration of a previously known repository. - Useful if a repository got deleted and you want - to clone it back the way it was. - * drop --from: When local repository is untrusted, its copy of a file does - not count. - * Bring back rsync -p, but only when git-annex is running on a non-crippled - file system. This is a better approach to fix #700282 while not - unncessarily losing file permissions on non-crippled systems. - * webapp: Start even if the current directory is listed in - ~/.config/git-annex/autostart but no longer has a git repository in it. - * findref: New command, like find but shows files in a specified git ref. - * webapp: Fix UI for removing XMPP connection. - * When init detects that git is not configured to commit, and sets - user.email to work around the problem, also make it set user.name. - * webapp: Support using git-annex on a remote server, which was installed - from the standalone tarball or OSX app, and so does not have - git-annex in PATH (and may also not have git or rsync in PATH). - * standalone tarball, OSX app: Install a ~/.ssh/git-annex-wrapper, which - can be used to run git-annex, git, rsync, etc. - - -- Joey Hess <joeyh@debian.org> Sun, 20 Apr 2014 19:43:14 -0400 - -git-annex (5.20140412) unstable; urgency=high - - * Last release didn't quite fix the high cpu issue in all cases, this should. - - -- Joey Hess <joeyh@debian.org> Fri, 11 Apr 2014 17:14:38 -0400 - -git-annex (5.20140411) unstable; urgency=high - - * importfeed: Filename template can now contain an itempubdate variable. - Needs feed 0.3.9.2. - * Fix rsync progress parsing in locales that use comma in number display. - Closes: #744148 - * assistant: Fix high CPU usage triggered when a monthly fsck is scheduled, - and the last time the job ran was a day of the month > 12. This caused a - runaway loop. Thanks to Anarcat for his assistance, and to Maximiliano - Curia for identifying the cause of this bug. - * Remove wget from OSX dmg, due to issues with cert paths that broke - git-annex automatic upgrading. Instead, curl is used, unless the - OSX system has wget installed, which will then be used. - - -- Joey Hess <joeyh@debian.org> Fri, 11 Apr 2014 14:59:49 -0400 - -git-annex (5.20140405) unstable; urgency=medium - - * git-annex-shell: Added notifychanges command. - * Improve display of dbus notifications. Thanks, Johan Kiviniemi. - * Fix nautilus script installation to not crash when the nautilus script dir - does not exist. Instead, only install scripts when the directory already - exists. - - -- Joey Hess <joeyh@debian.org> Sat, 05 Apr 2014 16:54:33 -0400 - -git-annex (5.20140402) unstable; urgency=medium - - * unannex, uninit: Avoid committing after every file is unannexed, - for massive speedup. - * --notify-finish switch will cause desktop notifications after each - file upload/download/drop completes - (using the dbus Desktop Notifications Specification) - * --notify-start switch will show desktop notifications when each - file upload/download starts. - * webapp: Automatically install Nautilus integration scripts - to get and drop files. - * tahoe: Pass -d parameter before subcommand; putting it after - the subcommand no longer works with tahoe-lafs version 1.10. - (Thanks, Alberto Berti) - * forget --drop-dead: Avoid removing the dead remote from the trust.log, - so that if git remotes for it still exist anywhere, git annex info - will still know it's dead and not show it. - * git-annex-shell: Make configlist automatically initialize - a remote git repository, as long as a git-annex branch has - been pushed to it, to simplify setup of remote git repositories, - including via gitolite. - * add --include-dotfiles: New option, perhaps useful for backups. - * Version 5.20140227 broke creation of glacier repositories, - not including the datacenter and vault in their configuration. - This bug is fixed, but glacier repositories set up with the broken - version of git-annex need to have the datacenter and vault set - in order to be usable. This can be done using git annex enableremote - to add the missing settings. For details, see - http://git-annex.branchable.com/bugs/problems_with_glacier/ - * Added required content configuration. - * assistant: Improve ssh authorized keys line generated in local pairing - or for a remote ssh server to set environment variables in an - alternative way that works with the non-POSIX fish shell, as well - as POSIX shells. - - -- Joey Hess <joeyh@debian.org> Wed, 02 Apr 2014 16:42:53 -0400 - -git-annex (5.20140320) unstable; urgency=medium - - * Fix zombie leak and general inneficiency when copying files to a - local git repo. - * Fix ssh connection caching stop method to work with openssh 6.5p1, - which broke the old method. - * webapp: Added a "Sync now" item to each repository's menu. - * webapp: Use securemem for constant time auth token comparisons. - * copy --fast --to remote: Avoid printing anything for files that - are already believed to be present on the remote. - * Commands that allow specifying which repository to act on using - the repository's description will now fail when multiple repositories - match, rather than picking a repository at random. - (So will --in=) - * Better workaround for problem umasks when eg, setting up ssh keys. - * "standard" can now be used as a first-class keyword in preferred content - expressions. For example "standard or (include=otherdir/*)" - * groupwanted can be used in preferred content expressions. - * vicfg: Allows editing preferred content expressions for groups. - * Improve behavior when unable to parse a preferred content expression - (thanks, ion). - * metadata: Add --get - * metadata: Support --key option (and some other ones like --all) - * For each metadata field, there's now an automatically maintained - "$field-lastchanged" that gives the date of the last change to that - field. Also the "lastchanged" field for the date of the last change - to any of a file's metadata. - * unused: In direct mode, files that are deleted from the work tree - and so have no content present are no longer incorrectly detected as - unused. - * Avoid encoding errors when using the unused log file. - * map: Fix crash when one of the remotes of a repo is a local directory - that does not exist, or is not a git repo. - * repair: Improve memory usage when git fsck finds a great many broken - objects. - * Windows: Fix some filename encoding bugs. - * rsync special remote: Fix slashes when used on Windows. - - -- Joey Hess <joeyh@debian.org> Thu, 20 Mar 2014 13:21:12 -0400 - -git-annex (5.20140306) unstable; urgency=high - - * sync: Fix bug in direct mode that caused a file that was not - checked into git to be deleted when there was a conflicting - merge with a remote. - * webapp: Now supports HTTPS. - * webapp: No longer supports a port specified after --listen, since - it was buggy, and that use case is better supported by setting up HTTPS. - * annex.listen can be configured, instead of using --listen - * annex.startupscan can be set to false to disable the assistant's startup - scan. - * Probe for quvi version at run time. - * webapp: Filter out from Switch Repository list any - repositories listed in autostart file that don't have a - git directory anymore. (Or are bare) - * webapp: Refuse to start in a bare git repository. - * assistant --autostart: Refuse to start in a bare git repository. - * webapp: Don't list the public repository group when editing a - git repository; it only makes sense for special remotes. - * view, vfilter: Add support for filtering tags and values out of a view, - using !tag and field!=value. - * vadd: Allow listing multiple desired values for a field. - * view: Refuse to enter a view when no branch is currently checked out. - * metadata: To only set a field when it's not already got a value, use - -s field?=value - * Run .git/hooks/pre-commit-annex whenever a commit is made. - * sync: Automatically resolve merge conflict between and annexed file - and a regular git file. - * glacier: Pass --region to glacier checkpresent. - * webdav: When built with a new enough haskell DAV (0.6), disable - the http response timeout, which was only 5 seconds. - * webapp: Include no-pty in ssh authorized_keys lines. - * assistant: Smarter log file rotation, which takes free disk space - into account. - - -- Joey Hess <joeyh@debian.org> Thu, 06 Mar 2014 12:28:04 -0400 - -git-annex (5.20140227) unstable; urgency=medium - - * metadata: Field names limited to alphanumerics and a few whitelisted - punctuation characters to avoid issues with views, etc. - * metadata: Field names are now case insensative. - * When constructing views, metadata is available about the location of the - file in the view's reference branch. Allows incorporating parts of the - directory hierarchy in a view. - For example `git annex view tag=* podcasts/=*` makes a view in the form - tag/showname. - * --metadata field=value can now use globs to match, and matches - case insensatively, the same as git annex view field=value does. - * annex.genmetadata can be set to make git-annex automatically set - metadata (year and month) when adding files. - * Make annex.web-options be used in several places that call curl. - * Fix handling of rsync remote urls containing a username, - including rsync.net. - * Preserve metadata when staging a new version of an annexed file. - * metadata: Support --json - * webapp: Fix creation of box.com and Amazon S3 and Glacier - repositories, broken in 5.20140221. - * webdav: When built with DAV 0.6.0, use the new DAV monad to avoid - locking files, which is not needed by git-annex's use of webdav, and - does not work on Box.com. - * webdav: Fix path separator bug when used on Windows. - * repair: Optimise unpacking of pack files, and avoid repeated error - messages about corrupt pack files. - * Add build dep on regex-compat to fix build on mipsel, which lacks - regex-tdfa. - * Disable test suite on sparc, which is missing optparse-applicative. - * Put non-object tmp files in .git/annex/misctmp, leaving .git/annex/tmp - for only partially transferred objects. - - -- Joey Hess <joeyh@debian.org> Thu, 27 Feb 2014 11:34:19 -0400 - -git-annex (5.20140221) unstable; urgency=medium - - * metadata: New command that can attach metadata to files. - * --metadata can be used to limit commands to acting on files - that have particular metadata. - * Preferred content expressions can use metadata=field=value - to limit them to acting on files that have particular metadata. - * view: New command that creates and checks out a branch that provides - a structured view of selected metadata. - * vfilter, vadd, vpop, vcycle: New commands for operating within views. - * pre-commit: Update metadata when committing changes to locations - of annexed files within a view. - * Add progress display for transfers to/from external special remotes. - * unused: Fix to actually detect unused keys when in direct mode. - * fsck: When run with --all or --unused, while .gitattributes - annex.numcopies cannot be honored since it's operating on keys - instead of files, make it honor the global numcopies setting, - and the annex.numcopies git config setting. - * trust, untrust, semitrust, dead: Warn when the trust level is - overridden in .git/config. - * glacier: Do not try to run glacier value create when an existing glacier - remote is enabled. - * fsck: Refuse to do anything if more than one of --incremental, --more, - and --incremental-schedule are given, since it's not clear which option - should win. - * Windows webapp: Can set up box.com, Amazon S3, and rsync.net remotes - * Windows webapp: Can create repos on removable drives. - * Windows: Ensure HOME is set, as needed by bundled cygwin utilities. - - -- Joey Hess <joeyh@debian.org> Fri, 21 Feb 2014 11:23:59 -0400 - -git-annex (5.20140210) unstable; urgency=medium - - * --in can now refer to files that were located in a repository at - some past date. For example, --in="here@{yesterday}" - * Fixed direct mode annexed content locking code, which is used to - guard against recursive file drops. - * This is the first beta-level release of the Windows port with important - fixes (see below). - (The webapp and assistant are still alpha-level on Windows.) - * sync --content: Honor annex-ignore configuration. - * sync: Don't try to sync with xmpp remotes, which are only currently - supported when using the assistant. - * sync --content: Re-pull from remotes after downloading content, - since that can take a while and other changes may be pushed in the - meantime. - * sync --content: Reuse smart copy code from copy command, including - handling and repairing out of date location tracking info. - Closes: #737480 - * sync --content: Drop files from remotes that don't want them after - getting them. - * sync: Fix bug in automatic merge conflict resolution code when used - on a filesystem not supporting symlinks, which resulted in it losing - track of the symlink bit of annexed files. - * Added ways to configure rsync options to be used only when uploading - or downloading from a remote. Useful to eg limit upload bandwidth. - * Fix initremote with encryption=pubkey to work with S3, glacier, webdav, - and external special remotes. - * Avoid building with DAV 0.6 which is badly broken (see #737902). - * Fix dropping of unused keys with spaces in their name. - * Fix build on platforms not supporting the webapp. - * Document in man page that sshcaching uses ssh ControlMaster. - Closes: #737476 - * Windows: It's now safe to run multiple git-annex processes concurrently - on Windows; the lock files have been sorted out. - * Windows: Avoid using unix-compat's rename, which refuses to rename - directories. - * Windows: Fix deletion of repositories by test suite and webapp. - * Windows: Test suite 100% passes again. - * Windows: Fix bug in symlink calculation code. - * Windows: Fix handling of absolute unix-style git repository paths. - * Android: Avoid crashing when unable to set file mode for ssh config file - due to Android filesystem horribleness. - - -- Joey Hess <joeyh@debian.org> Mon, 10 Feb 2014 12:54:57 -0400 - -git-annex (5.20140127) unstable; urgency=medium - - * sync --content: New option that makes the content of annexed files be - transferred. Similar to the assistant, this honors any configured - preferred content expressions. - * Remove --json option from commands not supporting it. - * status: Support --json. - * list: Fix specifying of files to list. - * Allow --all to be mixed with matching options like --copies and --in - (but not --include and --exclude). - * numcopies: New command, sets global numcopies value that is seen by all - clones of a repository. - * The annex.numcopies git config setting is deprecated. Once the numcopies - command is used to set the global number of copies, any annex.numcopies - git configs will be ignored. - * assistant: Make the prefs page set the global numcopies. - * Add lackingcopies, approxlackingcopies, and unused to - preferred content expressions. - * Client, transfer, incremental backup, and archive repositories - now want to get content that does not yet have enough copies. - * Client, transfer, and source repositories now do not want to retain - unused file contents. - * assistant: Checks daily for unused file contents, and when possible - moves them to a repository (such as a backup repository) that - wants to retain them. - * assistant: annex.expireunused can be configured to cause unused - file contents to be deleted after some period of time. - * webapp: Nudge user to see if they want to expire old unused file - contents when a lot of them seem to be piling up in the repository. - * repair: Check git version at run time. - * assistant: Run the periodic git gc in batch mode. - * added annex.secure-erase-command config option. - * test suite: Use tasty-rerun, and expose tasty command-line options. - * Optimise non-bare http remotes; no longer does a 404 to the wrong - url every time before trying the right url. Needs annex-bare to be - set to false, which is done when initially probing the uuid of a - http remote. - * webapp: After upgrading a git repository to git-annex, fix - bug that made it temporarily not be synced with. - * whereis: Support --all. - * All commands that support --all also support a --key option, - which limits them to acting on a single key. - - -- Joey Hess <joeyh@debian.org> Mon, 27 Jan 2014 13:43:28 -0400 - -git-annex (5.20140117) unstable; urgency=medium - - * Really fix FTBFS on mipsel and sparc due to test suite not being available - on those architectures. - - -- Joey Hess <joeyh@debian.org> Fri, 17 Jan 2014 14:46:27 -0400 - -git-annex (5.20140116) unstable; urgency=medium - - * Added tahoe special remote. - * external special remote protocol: Added GETGITDIR, and GETAVAILABILITY. - * Refuse to build with git older than 1.7.1.1, which is needed for - git checkout -B - * map: Fix display of v5 direct mode repos. - * repair: Support old git versions from before git fsck --no-dangling was - implemented. - * Fix a long-standing bug that could cause the wrong index file to be used - when committing to the git-annex branch, if GIT_INDEX_FILE is set in the - environment. This typically resulted in git-annex branch log files being - committed to the master branch and later showing up in the work tree. - (These log files can be safely removed.) - * assistant: Detect if .git/annex/index is corrupt at startup, and - recover. - * repair: Fix bug in packed refs file exploding code that caused a .gitrefs - directory to be created instead of .git/refs - * Fix FTBFS on mipsel and sparc due to test suite not being available - on those architectures. - * Android: Avoid passing --clobber to busybox wget. - - -- Joey Hess <joeyh@debian.org> Thu, 16 Jan 2014 11:34:54 -0400 - -git-annex (5.20140107) unstable; urgency=medium - - * mirror: Support --all (and --unused). - * external special remote protocol: Added GETUUID, GETWANTED, SETWANTED, - SETSTATE, GETSTATE, DEBUG. - * Windows: Fix bug in direct mode merge code that could cause files - in subdirectories to go missing. - * Windows: Avoid eating stdin when running ssh to add a authorized key, - since this is used for password prompting. - * Avoid looping if long-running git cat-file or git hash-object crashes - and keeps crashing when restarted. - * Assistant: Remove stale MERGE_HEAD files in lockfile cleanup. - * Remotes can now be made read-only, by setting remote.<name>.annex-readonly - * wanted, schedule: Avoid printing "ok" after requested value. - * assistant: Ensure that .ssh/config and .ssh/authorized_keys are not - group or world writable when writing to those files, as that can make - ssh refuse to use them, if it allows another user to write to them. - * addurl, importfeed: Honor annex.diskreserve as long as the size of the - url can be checked. - * add: Fix rollback when disk is completely full. - * assistant: Fixed several minor memory leaks that manifested when - adding a large number of files. - * assistant: Start a new git-annex transferkeys process - after a network connection change, so that remotes that use a persistent - network connection are restarted. - * Adjust Debian build deps to match current state of sparc, mipsel. - - -- Joey Hess <joeyh@debian.org> Tue, 07 Jan 2014 12:22:18 -0400 - -git-annex (5.20131230) unstable; urgency=medium - - * Added new external special remote interface. - * importfeed: Support youtube playlists. - * Add tasty to build-depends, so that test suite builds again. - (tasty was stuck in incoming.) - * Fix typo in test suite. - * Fix bug in Linux standalone build's shimming that broke git-annex-shell. - * Include git-receive-pack, git-upload-pack, git, and git-shell wrappers - in the Linux standalone build, and OSX app, so they will be available - when it's added to PATH. - * addurl, importfeed: Sanitize | and some other symbols and special - characters. - * Auto-upgrade v3 indirect repos to v5 with no changes. - This also fixes a problem when a direct mode repo was somehow set to v3 - rather than v4, and so the automatic direct mode upgrade to v5 was not - done. - * Android: Avoid trying to use Android's own ionice, which does not - allow specifying a command to run. Fixes transferring files to/from - android and probably a few other things. - - -- Joey Hess <joeyh@debian.org> Mon, 30 Dec 2013 14:13:40 -0400 - -git-annex (5.20131221) unstable; urgency=low - - * assistant: Fix OSX-specific bug that caused the startup scan to try to - follow symlinks to other directories, and add their contents to the annex. - * assistant: Set StrictHostKeyChecking yes when creating ssh remotes, - and add it to the configuration for any ssh remotes previously created - by the assistant. This avoids repeated prompts by ssh if the host key - changes, instead syncing with such a remote will fail. Closes: #732602 - * Fix test suite to cover lock --force change. - * Add plumbing-level lookupkey and examinekey commands. - * find --format: Added hashdirlower, hashdirmixed, keyname, and mtime - format variables. - * assistant: Always batch changes found in startup scan. - * An armel Linux standalone build is now available, which includes the - webapp. - * Programs from Linux and OSX standalone builds can now be symlinked - into a directory in PATH as an alternative installation method, and will - use readlink to find where the build was unpacked. - * Include man pages in Linux and OSX standalone builds. - * Linux standalone build now includes its own glibc and forces the linker to - use it, to remove dependence on the host glibc. - - -- Joey Hess <joeyh@debian.org> Sat, 21 Dec 2013 12:00:17 -0400 - -git-annex (5.20131213) unstable; urgency=low - - * Avoid using git commit in direct mode, since in some situations - it will read the full contents of files in the tree. - * assistant: Batch jobs are now run with ionice and nocache, when - those commands are available. - * assistant: Run transferkeys as batch jobs. - * Automatically fix up bad bare repositories created by - versions 5.20131118 through 5.20131127. - * rsync special remote: Fix fallback mode for rsync remotes that - use hashDirMixed. Closes: #731142 - * copy --from, get --from: When --force is used, ignore the - location log and always try to get the file from the remote. - * Deal with box.com changing the url of their webdav endpoint. - * Android: Fix SRV record lookups for XMPP to use android getprop - command to find DNS server, since there is no resolv.conf. - * import: Add --skip-duplicates option. - * lock: Require --force. Closes: #731606 - * import: better handling of overwriting an existing file/directory/broken - link when importing - * Windows: assistant and webapp work! (very experimental) - * Windows: Support annex.diskreserve. - * Fix bad behavior in Firefox, which was caused by an earlier fix to - bad behavior in Chromium. - * repair: Improve repair of git-annex index file. - * repair: Remove damaged git-annex sync branches. - * status: Ignore new files that are gitignored. - * Fix direct mode's handling when modifications to non-annexed files - are pulled from a remote. A bug prevented the files from being updated - in the work tree, and this caused the modification to be reverted. - * OSX: Remove ssh and ssh-keygen from dmg as they're included in OSX by - default. - - -- Joey Hess <joeyh@debian.org> Fri, 13 Dec 2013 14:20:32 -0400 - -git-annex (5.20131130) unstable; urgency=low - - * init: Fix a bug that caused git annex init, when run in a bare - repository, to set core.bare=false. - - -- Joey Hess <joeyh@debian.org> Sat, 30 Nov 2013 16:32:35 -0400 - -git-annex (5.20131127.1) unstable; urgency=low - - * Rebuild that does not try to use quvi 0.9 from experimental. - - -- Joey Hess <joeyh@debian.org> Thu, 28 Nov 2013 07:57:36 -0400 - -git-annex (5.20131127) unstable; urgency=low - - * webapp: Detect when upgrades are available, and upgrade if the user - desires. - (Only when git-annex is installed using the prebuilt binaries - from git-annex upstream, not from eg Debian.) - * assistant: Detect when the git-annex binary is modified or replaced, - and either prompt the user to restart the program, or automatically - restart it. - * annex.autoupgrade configures both the above upgrade behaviors. - * Added support for quvi 0.9. Slightly suboptimal due to limitations in its - interface compared with the old version. - * Bug fix: annex.version did not get set on automatic upgrade to v5 direct - mode repo, so the upgrade was performed repeatedly, slowing commands down. - * webapp: Fix bug that broke switching between local repositories - that use the new guarded direct mode. - * Android: Fix stripping of the git-annex binary. - * Android: Make terminal app show git-annex version number. - * Android: Re-enable XMPP support. - * reinject: Allow to be used in direct mode. - * Futher improvements to git repo repair. Has now been tested in tens - of thousands of intentionally damaged repos, and successfully - repaired them all. - * Allow use of --unused in bare repository. - - -- Joey Hess <joeyh@debian.org> Wed, 27 Nov 2013 18:41:44 -0400 - -git-annex (5.20131120) unstable; urgency=low - - * Fix Debian package to not try to run test suite, since haskell-tasty - is not out of new or in Build-Depends yet. - * dropunused, addunused: Allow "all" instead of a range to - act on all unused data. - * Ensure execute bit is set on directories when core.sharedrepository is set. - * Ensure that core.sharedrepository is honored when creating the .git/annex - directory. - * Improve repair code in the case where the index file is corrupt, - and this hides other problems from git fsck. - - -- Joey Hess <joeyh@debian.org> Wed, 20 Nov 2013 12:54:18 -0400 - -git-annex (5.20131118) unstable; urgency=low - - * Direct mode repositories now have core.bare=true set, to prevent - accidentally running git commands that try to operate on the work tree, - and so do the wrong thing in direct mode. - * annex.version is now set to 5 for direct mode repositories. - This upgrade is handled fully automatically, no need to run - git annex upgrade - * The "status" command has been renamed to "info", to allow - "git annex status" to be used in direct mode repositories, now that - "git status" won't work in them. - * The -c option now not only modifies the git configuration seen by - git-annex, but it is passed along to every git command git-annex runs. - * watcher: Avoid loop when adding a file owned by someone else fails - in indirect mode because its permissions cannot be modified. - * webapp: Avoid encoding problems when displaying the daemon log file. - * webapp: Improve UI around remote that have no annex.uuid set, - either because setup of them is incomplete, or because the remote - git repository is not a git-annex repository. - * Include ssh-keygen in standalone bundle. - * Allow optionally configuring git-annex with -fEKG to enable awesome - remote monitoring interfaceat http://localhost:4242/ - * Fix bug that caused bad information to be written to the git-annex branch - when running describe or other commands with a remote that has no uuid. - * Work around Android linker problem that had prevented git-annex from - running on Android 4.3 and 4.4. - * repair: Handle case where index file is corrupt, but all objects are ok. - * assistant: Notice on startup when the index file is corrupt, and - auto-repair. - * Fix direct mode merge bug when a direct mode file was deleted and replaced - with a directory. An ordering problem caused the directory to not get - created in this case. - Thanks to Tim for the test case. - * Direct mode .git/annex/objects directories are no longer left writable, - because that allowed writing to symlinks of files that are not present, - which followed the link and put bad content in an object location. - Thanks to Tim for the test case. - * fsck: Fix up .git/annex/object directory permissions. - * Switched to the tasty test framework. - * Android: Adjust default .gitignore to ignore .thumbnails at any location - in the tree, not just at its top. - * webapp: Check annex.version. - - -- Joey Hess <joeyh@debian.org> Mon, 18 Nov 2013 10:45:43 -0400 - -git-annex (4.20131106) unstable; urgency=low - - * Improve local pairing behavior when two computers both try to start - the pairing process separately. - * sync: Work even when the local git repository is new and empty, - with no master branch. - * gcrypt, bup: Fix bug that prevented using these special remotes - with encryption=pubkey. - * Fix enabling of gcrypt repository accessed over ssh; - git-annex-shell gcryptsetup had a bug that caused it to fail - with permission denied. - * Fix zombie process that occurred when switching between repository - views in the webapp. - * map: Work when there are gcrypt remotes. - * Fix build w/o webapp. - * Fix exception handling bug that could cause .git/annex/index to be used - for git commits outside the git-annex branch. Known to affect git-annex - when used with the git shipped with Ubuntu 13.10. - - -- Joey Hess <joeyh@debian.org> Wed, 06 Nov 2013 11:17:47 -0400 - -git-annex (4.20131101) unstable; urgency=low - - * The "git annex content" command is renamed to "git annex wanted". - * New --want-get and --want-drop options which can be used to - test preferred content settings. - For example, "git annex find --in . --want-drop" - * assistant: When autostarted, wait 5 seconds before running the startup - scan, to avoid contending with the user's desktop login process. - * webapp: When setting up a bare shared repository, enable non-fast-forward - pushes. - * sync: Show a hint about receive.denyNonFastForwards when a push fails. - * directory, webdav: Fix bug introduced in version 4.20131002 that - caused the chunkcount file to not be written. Work around repositories - without such a file, so files can still be retreived from them. - * assistant: Automatically repair damanged git repository, if it can - be done without losing data. - * assistant: Support repairing git remotes that are locally accessible - (eg, on removable drives). - * add: Fix reversion in 4.20130827 when adding unlocked files that have - not yet been committed. - * unannex: New, much slower, but more safe behavior: Copies files out of - the annex. This avoids an unannex of one file breaking other files that - link to the same content. Also, it means that the content - remains in the annex using up space until cleaned up with - "git annex unused". - (The behavior of unannex --fast has not changed; it still hard links - to content in the annex. --fast was not made the default because it is - potentially unsafe; editing such a hard linked file can unexpectedly - change content stored in the annex.) - - -- Joey Hess <joeyh@debian.org> Fri, 01 Nov 2013 11:34:27 -0400 - -git-annex (4.20131024) unstable; urgency=low - - * webapp: Fix bug when adding a remote and git-remote-gcrypt - is not installed. - * The assitant can now run scheduled incremental fsck jobs on the local - repository and remotes. These can be configured using vicfg or with the - webapp. - * repair: New command, which can repair damaged git repositories - (even ones not using git-annex). - * webapp: When git repository damange is detected, repairs can be - done using the webapp UI. - * Automatically and safely detect and recover from dangling - .git/annex/index.lock files, which would prevent git from - committing to the git-annex branch, eg after a crash. - * assistant: Detect stale git lock files at startup time, and remove them. - * addurl: Better sanitization of generated filenames. - * Better sanitization of problem characters when generating URL and WORM - keys. - * The control socket path passed to ssh needs to be 17 characters - shorter than the maximum unix domain socket length, because ssh - appends stuff to it to make a temporary filename. Closes: #725512 - * status: Fix space leak in local mode, introduced in version 4.20130920. - * import: Skip .git directories. - * Remove bogus runshell loop check. - * addurl: Improve message when adding url with wrong size to existing file. - * Fixed handling of URL keys that have no recorded size. - * status: Fix a crash if a temp file went away while its size was - being checked for status. - * Deal with git check-attr -z output format change in git 1.8.5. - * Work around sed output difference that led to version containing a newline - on OSX. - * sync: Fix automatic resolution of merge conflicts where one side is an - annexed file, and the other side is a non-annexed file, or a directory. - * S3: Try to ensure bucket name is valid for archive.org. - * assistant: Bug fix: When run in a subdirectory, files from incoming merges - were wrongly added to that subdirectory, and removed from their original - locations. - * Windows: Deal with strange msysgit 1.8.4 behavior of not understanding - DOS formatted paths for --git-dir and --work-tree. - * Removed workaround for bug in git 1.8.4r0. - * Added git-recover-repository command to git-annex source - (not built by default; this needs to move to someplace else). - * webapp: Move sidebar to the right hand side of the screen. - - -- Joey Hess <joeyh@debian.org> Thu, 24 Oct 2013 12:59:55 -0400 - -git-annex (4.20131002) unstable; urgency=low - - * Note that the layout of gcrypt repositories has changed, and - if you created one you must manually upgrade it. - See http://git-annex.branchable.com/upgrades/gcrypt/ - * webapp: Support setting up and using encrypted git repositories on - any ssh server, as well as on rsync.net. - * git-annex-shell: Added support for operating inside gcrypt repositories. - * Disable receive.denyNonFastForwards when setting up a gcrypt special - remote, since gcrypt needs to be able to fast-forward the master branch. - * import: Preserve top-level directory structure. - * Use cryptohash rather than SHA for hashing when no external hash program - is available. This is a significant speedup for SHA256 on OSX, for - example. - * Added SKEIN256 and SKEIN512 backends. - * Android build redone from scratch, many dependencies updated, - and entire build can now be done using provided scripts. - * assistant: Clear the list of failed transfers when doing a full transfer - scan. This prevents repeated retries to download files that are not - available, or are not referenced by the current git tree. - * indirect, direct: Better behavior when a file is not owned by - the user running the conversion. - * add, import, assistant: Better preserve the mtime of symlinks, - when when adding content that gets deduplicated. - * Send a git-annex user-agent when downloading urls. - Overridable with --user-agent option. - (Not yet done for S3 or WebDAV due to limitations of libraries used.) - * webapp: Fixed a bug where when a new remote is added, one file - may fail to sync to or from it due to the transferrer process not - yet knowing about the new remote. - * OSX: Bundled gpg upgraded, now compatible with config files - written by MacGPG. - * assistant: More robust inotify handling; avoid crashing if a directory - cannot be read. - * Moved list of backends and remote types from status to version - command. - - -- Joey Hess <joeyh@debian.org> Wed, 02 Oct 2013 16:00:39 -0400 - -git-annex (4.20130920) unstable; urgency=low - - * webapp: Initial support for setting up encrypted removable drives. - * Recommend using my patched gcrypt, which fixes some bugs: - https://github.com/joeyh/git-remote-gcrypt - * Support hot-swapping of removable drives containing gcrypt repositories. - * list: New command, displays a compact table of remotes that - contain files. - (Thanks, anarcat for display code and mastensg for inspiration.) - * fsck: Fix detection and fixing of present direct mode files that are - wrongly represented as standin symlinks on crippled filesystems. - * sync: Fix bug that caused direct mode mappings to not be updated - when merging files into the tree on Windows. - * sync: Don't fail if the directory it is run in gets removed by the - sync. - * addurl: Fix quvi audodetection, broken in last release. - * status: In local mode, displays information about variance from configured - numcopies levels. (--fast avoids calculating these) - * gcrypt: Ensure that signing key is set to one of the participants keys. - * webapp: Show encryption information when editing a remote. - * Avoid unnecessarily catting non-symlink files from git, which can be - so large it runs out of memory. - - -- Joey Hess <joeyh@debian.org> Fri, 20 Sep 2013 10:34:51 -0400 - -git-annex (4.20130911) unstable; urgency=low - - * Fix problem with test suite in non-unicode locale. - - -- Joey Hess <joeyh@debian.org> Wed, 11 Sep 2013 12:14:16 -0400 - -git-annex (4.20130909) unstable; urgency=low - - * initremote: Syntax change when setting up an encrypted special remote. - Now use keyid=$KEYID rather than the old encryption=$KEYID - * forget: New command, causes git-annex branch history to be forgotten - in a way that will spread to other clones of the repository. - (As long as they're running this version or newer of git-annex.) - * forget --drop-dead: Completely removes mentions of repositories that - have been marked as dead from the git-annex branch. - * sync, assistant: Force push of the git-annex branch. Necessary - to ensure it gets pushed to remotes after being rewritten by forget. - * Added gcrypt support. This combines a fully encrypted git - repository (using git-remote-gcrypt) with an encrypted git-annex special - remote. - * sync: Support syncing with gcrypt remotes. - * importfeed: Also ignore transient problems with downloading content - from feeds. - * Honor core.sharedrepository when receiving and adding files in direct - mode. - * enableremote: gpg keys can be removed from those a remote encrypts - to by passing "keyid-=$KEYID". keyid+= is also provided. - (Thanks, guilhem for the patch.) - * Added encryption=pubkey scheme, which encrypts to public keys directly - rather than the hybrid approach. See documentation for advantages - and disadvantages, but encryption=hybrid is the recommended scheme still. - (Thanks, guilhem for the patch.) - * Fix Feeds display in build flags. - * Remind user when annex-ignore is set for some remotes, if unable to - get or drop a file, possibly because it's on an ignored remote. - * gpg: Force --no-textmode in case the user has it turned on in config. - * webapp: Improve javascript's handling of longpolling connection - failures, by reloading the current page in this case. - Works around chromium behavior where ajax connections to urls - that were already accessed are denied after navigating back to - a previous page. - * Allow building without quvi support. - - -- Joey Hess <joeyh@debian.org> Mon, 09 Sep 2013 09:47:02 -0400 - -git-annex (4.20130827) unstable; urgency=low - - * Youtube support! (And 53 other video hosts). When quvi is installed, - git-annex addurl automatically uses it to detect when an page is - a video, and downloads the video file. - * web special remote: Also support using quvi, for getting files, - or checking if files exist in the web. - * unused: Is now a minimum of 30 times faster, and typically many - more times than that (when a repository has several branches). - (Thanks, guilhem for the patch.) - * unused: Fix bugs in two edge cases involving manually staged changes. - (Thanks, guilhem for the patch.) - * Android: Fix bug in terminal app that caused it to spin using much - CPU and battery. This problem was introduced in version 4.20130601. - * sync, merge: Bug fix: Don't try to merge into master when in a bare repo. - * import: Add options to control handling of duplicate files: - --duplicate, --deduplicate, and --clean-duplicates - * mirror: New command, makes two repositories contain the same set of files. - * Set --clobber when running wget to ensure resuming works properly. - * Unescape characters in 'file://...' URIs. (Thanks, guilhem for the patch.) - * Better error message when trying to use a git remote that has annex.ignore - set. - * Fix bug that caused typechanged symlinks to be assumed to be unlocked - files, so they were added to the annex by the pre-commit hook. - * Debian: Run the builtin test suite as an autopkgtest. - * Debian: Recommend ssh-askpass, which ssh will use when the assistant - is run w/o a tty. Closes: #719832 - - -- Joey Hess <joeyh@debian.org> Tue, 27 Aug 2013 11:03:00 -0400 - -git-annex (4.20130815) unstable; urgency=low - - * assistant, watcher: .gitignore files and other git ignores are now - honored, when git 1.8.4 or newer is installed. - (Thanks, Adam Spiers, for getting the necessary support into git for this.) - * importfeed: Ignores transient problems with feeds. Only exits nonzero - when a feed has repeatedly had a problems for at least 1 day. - * importfeed: Fix handling of dots in extensions. - * Windows: Added support for encrypted special remotes. - * Windows: Fixed permissions problem that prevented removing files - from directory special remote. Directory special remotes now fully usable. - - -- Joey Hess <joeyh@debian.org> Thu, 15 Aug 2013 10:14:33 +0200 - -git-annex (4.20130802) unstable; urgency=low - - * dropunused behavior change: Now refuses to drop the last copy of a - file, unless you use the --force. - This was the last place in git-annex that could remove data referred - to by the git history, without being forced. - Like drop, dropunused checks remotes, and honors the global - annex.numcopies setting. (However, .gitattributes settings cannot - apply to unused files.) - * Fix inverted logic in last release's fix for data loss bug, - that caused git-annex sync on FAT or other crippled filesystems to add - symlink standin files to the annex. - * importfeed can be used to import files from podcast feeds. - * webapp: When setting up a dedicated ssh key to access the annex - on a host, set IdentitiesOnly to prevent the ssh-agent from forcing - use of a different ssh key. That could result in unncessary password - prompts, or prevent git-annex-shell from being run on the remote host. - * webapp: Improve handling of remotes whose setup has stalled. - * Add status message to XMPP presence tag, to identify to others that - the client is a git-annex client. Closes: #717652 - * webapp: When creating a repository on a removable drive, set - core.fsyncobjectfiles, to help prevent data loss when the drive is yanked. - * Always build with -threaded, to avoid a deadlock when communicating with - gpg. - * unused: No longer shows as unused tmp files that are actively being - transferred. - * assistant: Fix NetWatcher to not sync with remotes that have - remote.<name>.annex-sync set to false. - * assistant: Fix deadlock that could occur when adding a lot of files - at once in indirect mode. - * assistant: Fix bug that caused it to stall when adding a very large - number of files at once (around 5 thousand). - * OSX: Make git-annex-webapp run in the background, so that the app icon - can be clicked on the open a new webapp when the assistant is already - running. - * Improve test suite on Windows; now tests git annex sync. - * Fix a few bugs involving filenames that are at or near the filesystem's - maximum filename length limit. - * find: Avoid polluting stdout with progress messages. Closes: #718186 - * Escape ':' in file/directory names to avoid it being treated - as a pathspec by some git commands. Closes: #718185 - * Slow and ugly work around for bug #718517 in git 1.8.4~rc0, which broke - git-cat-file --batch for filenames containing spaces. - (Will be reverted after next git pre-release fixes the problem.) - - -- Joey Hess <joeyh@debian.org> Fri, 02 Aug 2013 11:35:16 -0400 - -git-annex (4.20130723) unstable; urgency=low - - * Fix data loss bug when adding an (uncompressed) tarball of a - git-annex repository, or other file that begins with something - that can be mistaken for a git-annex link. Closes: #717456 - * New improved version of the git-annex logo, contributed by - John Lawrence. - * Rsync.net have committed to support git-annex and offer a special - discounted rate for git-annex users. Updated the webapp to reflect this. - http://www.rsync.net/products/git-annex-pricing.html - * Install XDG desktop icon files. - * Support unannex and uninit in direct mode. - * Support import in direct mode. - * webapp: Better display of added files. - * fix: Preserve the original mtime of fixed symlinks. - * uninit: Preserve .git/annex/objects at the end, if it still - has content, so that old versions of files and deleted files - are not deleted. Print a message with some suggested actions. - * When a transfer is already being run by another process, - proceed on to the next file, rather than dying. - * Fix checking when content is present in a non-bare repository - accessed via http. - * Display byte sizes with more precision. - * watcher: Fixed a crash that could occur when a directory was renamed - or deleted before it could be scanned. - * watcher: Partially worked around a bug in hinotify, no longer crashes - if hinotify cannot process a directory (but can't detect changes in it) - * directory special remote: Fix checking that there is enough disk space - to hold an object, was broken when using encryption. - * webapp: Differentiate between creating a new S3/Glacier/WebDav remote, - and initializing an existing remote. When creating a new remote, avoid - conflicts with other existing (or deleted) remotes with the same name. - * When an XMPP server has SRV records, try them, but don't then fall - back to the regular host if they all fail. - * For long hostnames, use a hash of the hostname to generate the socket - file for ssh connection caching. - - -- Joey Hess <joeyh@debian.org> Tue, 23 Jul 2013 10:46:05 -0400 - -git-annex (4.20130709) unstable; urgency=low - - * --all: New switch that makes git-annex operate on all data stored - in the git annex, including old versions of files. Supported by - fsck, get, move, copy. - * --unused: New switch that makes git-annex operate on all data found - by the last run of git annex unused. Supported by fsck, move, copy. - * get, move, copy: Can now be run in a bare repository, - like fsck already could. --all is enabled automatically in this case. - * merge: Now also merges synced/master or similar branches, which - makes it useful to put in a post-receive hook to make a repository - automatically update its working copy when git annex sync or the assistant - sync with it. - * webapp: Fix ssh setup with nonstandard port, broken in last release. - * init: Detect systems on which git commit fails due to not being able to - determine the FQDN, and put in a workaround so committing to the git-annex - branch works. - * addurl --pathdepth: Fix failure when the pathdepth specified is deeper - than the urls's path. - * Windows: Look for .exe extension when searching for a command in path. - * Pass -f to curl when downloading a file with it, so it propigates failure. - * Windows: Fix url to object when using a http remote. - * webapp: Fix authorized_keys line added when setting up a rsync remote - on a server that also supports git-annex, to not force running - git-annex-shell. - * OSX Mountain Lion: Fixed gpg bundled in dmg to not fail due to a missing - gpg-agent. - * Android: gpg is built without --enable-minimal, so it interoperates - better with other gpg builds that may default to using other algorithms - for encryption. - * dropunused, addunused: Complain when asked to operate on a number that - does not correspond to any unused key. - * fsck: Don't claim to fix direct mode when run on a symlink whose content - is not present. - * Make --numcopies override annex.numcopies set in .gitattributes. - - -- Joey Hess <joeyh@debian.org> Tue, 09 Jul 2013 13:55:39 -0400 - -git-annex (4.20130627) unstable; urgency=low - - * assistant --autostart: Automatically ionices the daemons it starts. - * assistant: Daily sanity check thread is run niced. - * bup: Handle /~/ in bup remote paths. - Thanks, Oliver Matthews - * fsck: Ensures that direct mode is used for files when it's enabled. - * webapp: Fix bug when setting up a remote ssh repo repeatedly on the same - server. - * webapp: Ensure that ssh keys generated for different directories - on a server are always different. - * webapp: Fix bug setting up ssh repo if the user enters "~/" at the start - of the path. - * assistant: Fix bug that prevented adding files written by gnucash, - and more generally support adding hard links to files. However, - other operations on hard links are still unsupported. - * webapp: Fix bug that caused the webapp to hang when built with yesod 1.2. - - -- Joey Hess <joeyh@debian.org> Thu, 27 Jun 2013 14:21:55 -0400 - -git-annex (4.20130621) unstable; urgency=low - - * Supports indirect mode on encfs in paranoia mode, and other - filesystems that do not support hard links, but do support - symlinks and other POSIX filesystem features. - * Android: Add .thumbnails to .gitignore when setting up a camera - repository. - * Android: Make the "Open webapp" menu item open the just created - repository when a new repo is made. - * webapp: When the user switches to display a different repository, - that repository becomes the default repository to be displayed next time - the webapp gets started. - * glacier: Better handling of the glacier inventory, which avoids - duplicate uploads to the same glacier repository by `git annex copy`. - * Direct mode: No longer temporarily remove write permission bit of files - when adding them. - * sync: Better support for bare git remotes. Now pushes directly to the - master branch on such a remote, instead of to synced/master. This - makes it easier to clone from a bare git remote that has been populated - with git annex sync or by the assistant. - * Android: Fix use of cp command to not try to use features present - only on build system. - * Windows: Fix hang when adding several files at once. - * assistant: In direct mode, objects are now only dropped when all - associated files are unwanted. This avoids a repreated drop/get loop - of a file that has a copy in an archive directory, and a copy not in an - archive directory. (Indirect mode still has some buggy behavior in this - area, since it does not keep track of associated files.) - Closes: #712060 - * status: No longer shows dead repositories. - * annex.debug can now be set to enable debug logging by default. - The webapp's debugging check box does this. - * fsck: Avoid getting confused by Windows path separators - * Windows: Multiple bug fixes, including fixing the data written to the - git-annex branch. - * Windows: The test suite now passes on Windows (a few broken parts are - disabled). - * assistant: On Linux, the expensive transfer scan is run niced. - * Enable assistant and WebDAV support on powerpc and sparc architectures, - which now have the necessary dependencies built. - - -- Joey Hess <joeyh@debian.org> Fri, 21 Jun 2013 10:18:41 -0400 - -git-annex (4.20130601) unstable; urgency=medium - - * XMPP: Git push over xmpp made much more robust. - * XMPP: Avoid redundant and unncessary pushes. Note that this breaks - compatibility with previous versions of git-annex, which will refuse - to accept any XMPP pushes from this version. - * XMPP: Send pings and use them to detect when contact with the server - is lost. - * hook special remote: Added combined hook program support. - * Android app: Avoid using hard links to app's lib directory, which - is sometimes on a different filesystem than the data directory. - * Fix bug in parsing of parens in some preferred content expressions. - This fixes the behavior of the manual mode group. - * assistant: Work around git-cat-file's not reloading the index after files - are staged. - * Improve error handling when getting uuid of http remotes to auto-ignore, - like with ssh remotes. - * content: New command line way to view and configure a repository's - preferred content settings. - * sync: Fix double merge conflict resolution handling. - * XMPP: Fix a file descriptor leak. - * Android: Added an "Open WebApp" item to the terminal's menu. - * Android: Work around Android devices where the `am` command doesn't work. - * Can now restart certain long-running git processes if they crash, and - continue working. - - -- Joey Hess <joeyh@debian.org> Sat, 01 Jun 2013 19:16:04 -0400 - -git-annex (4.20130521) unstable; urgency=low - - * Sanitize debian changelog version before putting it into cabal file. - Closes: #708619 - * Switch to MonadCatchIO-transformers for better handling of state while - catching exceptions. - * Fix a zombie that could result when running a process like gpg to - read and write to it. - * Allow building with gpg2. - * Disable building with the haskell threaded runtime when the webapp - is not built. This may fix builds on mips, s390x and sparc, which are - failing to link -lHSrts_thr - * Temporarily build without webapp on kfreebsd-i386, until yesod is - installable there again. - * Direct mode bug fix: After a conflicted merge was automatically resolved, - the content of a file that was already present could incorrectly - be replaced with a symlink. - * Fix a bug in the git-annex branch handling code that could - cause info from a remote to not be merged and take effect immediately. - * Direct mode is now fully tested by the test suite. - * Detect bad content in ~/.config/git-annex/program and look in PATH instead. - * OSX: Fixed gpg included in dmg. - * Linux standalone: Back to being built with glibc 2.13 for maximum - portability. - - -- Joey Hess <joeyh@debian.org> Tue, 21 May 2013 13:10:26 -0400 - -git-annex (4.20130516) unstable; urgency=low - - * Android: The webapp is ported and working. - * Windows: There is a very rough Windows port. Do not trust it with - important data. - * git-annex-shell: Ensure that received files can be read. Files - transferred from some Android devices may have very broken permissions - as received. - * direct mode: Direct mode commands now work on files staged in the index, - they do not need to be committed to git. - * Temporarily add an upper bound to the version of yesod that can be built - with, since yesod 1.2 has a great many changes that will require extensive - work on the webapp. - * Disable building with the haskell threaded runtime when the assistant - is not built. This may fix builds on s390x and sparc, which are failing - to link -lHSrts_thr - * Avoid depending on regex-tdfa on mips, mipsel, and s390, where it fails - to build. - * direct: Fix a bug that could cause some files to be left in indirect mode. - * When initializing a directory special remote with a relative path, - the path is made absolute. - * SHA: Add a runtime sanity check that sha commands output something - that appears to be a real sha. - * configure: Better checking that sha commands output in the desired format. - * rsync special remotes: When sending from a crippled filesystem, use - the destination's default file permissions, as the local ones can - be arbitrarily broken. (Ie, ----rwxr-x for files on Android) - * migrate: Detect if a file gets corrupted while it's being migrated. - * Debian: Add a menu file. - - -- Joey Hess <joeyh@debian.org> Thu, 16 May 2013 11:03:35 -0400 - -git-annex (4.20130501) unstable; urgency=low - - * sync, assistant: Behavior changes: Sync with remotes that have - annex-ignore set, so that git remotes on servers without git-annex - installed can be used to keep clients' git repos in sync. - * assistant: Work around misfeature in git 1.8.2 that makes - `git commit --alow-empty -m ""` run an editor. - * sync: Bug fix, avoid adding to the annex the - dummy symlinks used on crippled filesystems. - * Add public repository group. - (And inpreferreddir to preferred content expressions.) - * webapp: Can now set up Internet Archive repositories. - * S3: Dropping content from the Internet Archive doesn't work, but - their API indicates it does. Always refuse to drop from there. - * Automatically register public urls for files uploaded to the - Internet Archive. - * To enable an existing special remote, the new enableremote command - must be used. The initremote command now is used only to create - new special remotes. - * initremote: If two existing remotes have the same name, - prefer the one with a higher trust level. - * assistant: Improved XMPP protocol to better support multiple repositories - using the same XMPP account. Fixes bad behavior when sharing with a friend - when you or the friend have multiple reposotories on an XMPP account. - Note that XMPP pairing with your own devices still pairs with all - repositories using your XMPP account. - * assistant: Fix bug that could cause incoming pushes to not get - merged into the local tree. Particularly affected XMPP pushes. - * webapp: Display some additional information about a repository on - its edit page. - * webapp: Install FDO desktop menu file when started in standalone mode. - * webapp: Don't default to making repository in cwd when started - from within a directory containing a git-annex file (eg, standalone - tarball directory). - * Detect systems that have no user name set in GECOS, and also - don't have user.name set in git config, and put in a workaround - so that commits to the git-annex branch (and the assistant) - will still succeed despite git not liking the system configuration. - * webapp: When told to add a git repository on a remote server, and - the repository already exists as a non-bare repository, use it, - rather than initializing a bare repository in the same directory. - * direct, indirect: Refuse to do anything when the assistant - or git-annex watch daemon is running. - * assistant: When built with git before 1.8.0, use `git remote rm` - to delete a remote. Newer git uses `git remote remove`. - * rmurl: New command, removes one of the recorded urls for a file. - * Detect when the remote is broken like bitbucket is, and exits 0 when - it fails to run git-annex-shell. - * assistant: Several improvements to performance and behavior when - performing bulk adds of a large number of files (tens to hundreds - of thousands). - * assistant: Sanitize XMPP presence information logged for debugging. - * webapp: Now automatically fills in any creds used by an existing remote - when creating a new remote of the same type. Done for Internet Archive, - S3, Glacier, and Box.com remotes. - * Store an annex-uuid file in the bucket when setting up a new S3 remote. - * Support building with DAV 0.4. - - -- Joey Hess <joeyh@debian.org> Wed, 01 May 2013 01:42:46 -0400 - -git-annex (4.20130417) unstable; urgency=low - - * initremote: Generates encryption keys with high quality entropy. - This can be disabled using --fast to get the old behavior. - The assistant still uses low-quality entropy when creating encrypted - remotes, to avoid delays. (Thanks, guilhem for the patch.) - * Bugfix: Direct mode no longer repeatedly checksums duplicated files. - * assistant: Work around horrible, terrible, very bad behavior of - gnome-keyring, by not storing special-purpose ssh keys in ~/.ssh/*.pub. - Apparently gnome-keyring apparently will load and indiscriminately use - such keys in some cases, even if they are not using any of the standard - ssh key names. Instead store the keys in ~/.ssh/annex/, - which gnome-keyring will not check. - * addurl: Bugfix: Did not properly add file in direct mode. - * assistant: Bug fix to avoid annexing the files that git uses - to stand in for symlinks on FAT and other filesystem not supporting - symlinks. - * Adjust preferred content expressions so that content in archive - directories is preferred until it has reached an archive or smallarchive - repository. - * webapp: New --listen= option allows running the webapp on one computer - and connecting to it from another. (Note: Does not yet use HTTPS.) - * Added annex.web-download-command setting. - * Added per-remote annex-rsync-transport option. (guilhem again) - * Ssh connection caching is now also used by rsync special remotes. - (guilhem yet again) - * The version number is now derived from git, unless built with - VERSION_FROM_CHANGELOG. - * assistant: Stop any transfers the assistant initiated on shutdown. - * assistant: Added sequence numbers to XMPP git push packets. (Not yet used.) - * addurl: Register transfer so the webapp can see it. - * addurl: Automatically retry downloads that fail, as long as some - additional content was downloaded. - * webapp: Much improved progress bar display for downloads from encrypted - remotes. - * Avoid using runghc, as that needs ghci. - * webapp: When a repository's group is changed, rescan for transfers. - * webapp: Added animations. - * webapp: Include the repository directory in the mangled hostname and - ssh key name, so that a locked down ssh key for one repository is not - re-used when setting up additional repositories on the same server. - * Fall back to internal url downloader when built without curl. - * fsck: Check content of direct mode files (only when the inode cache - thinks they are unmodified). - - -- Joey Hess <joeyh@debian.org> Wed, 17 Apr 2013 09:07:38 -0400 - -git-annex (4.20130405) unstable; urgency=low - - * Group subcommands into sections in usage. Closes: #703797 - * Per-command usage messages. - * webapp: Fix a race that sometimes caused alerts or other notifications - to be missed if they occurred while a page was loading. - * webapp: Progess bar fixes for many types of special remotes. - * Build debian package without using cabal, which writes to HOME. - Closes: #704205 - * webapp: Run ssh server probes in a way that will work when the - login shell is a monstrosity that should have died 25 years ago, - such as csh. - * New annex.largefiles setting, which configures which files - `git annex add` and the assistant add to the annex. - * assistant: Check small files into git directly. - * Remotes can be configured to use other MAC algorithms than HMACSHA1 - to encrypt filenames. - Thanks, guilhem for the patch. - * git-annex-shell: Passes rsync --bwlimit options on rsync. - Thanks, guilhem for the patch. - * webapp: Added UI to delete repositories. Closes: #689847 - * Adjust built-in preferred content expressions to make most types - of repositories want content that is only located on untrusted, dead, - and unwanted repositories. - * drop --auto: Fix bug that prevented dropping files from untrusted - repositories. - * assistant: Fix bug that could cause direct mode files to be unstaged - from git. - * Update working tree files fully atomically. - * webapp: Improved transfer queue management. - * init: Probe whether the filesystem supports fifos, and if not, - disable ssh connection caching. - * Use lower case hash directories for storing files on crippled filesystems, - same as is already done for bare repositories. - - -- Joey Hess <joeyh@debian.org> Fri, 05 Apr 2013 10:42:18 -0400 - -git-annex (4.20130323) unstable; urgency=low - - * webapp: Repository list is now included in the dashboard, and other - UI tweaks. - * webapp: Improved UI for pairing your own devices together using XMPP. - * webapp: Display an alert when there are XMPP remotes, and a cloud - transfer repository needs to be configured. - * Add incrementalbackup repository group. - * webapp: Encourage user to install git-annex on a server when adding - a ssh server, rather than just funneling them through to rsync. - * xmpp: --debug now enables a sanitized dump of the XMPP protocol - * xmpp: Try harder to detect presence of clients when there's a git push - to send. - * xmpp: Re-enable XA flag, since disabling it did not turn out to help - with the problems Google Talk has with not always sending presence - messages to clients. - * map: Combine duplicate repositories, for a nicer looking map. - * Fix several bugs caused by a bad Ord instance for Remote. - * webapp: Switch all forms to POST. - * assistant: Avoid syncing with annex-ignored remotes when reconnecting - to the network, or connecting a drive. - * assistant: Fix OSX bug that prevented committing changed files to a - repository when in indirect mode. - * webapp: Improved alerts displayed when syncing with remotes, and - when syncing with a remote fails. - * webapp: Force wrap long filenames in transfer display. - * assistant: The ConfigMonitor left one zombie behind each time - it checked for changes, now fixed. - * get, copy, move: Display an error message when an identical transfer - is already in progress, rather than failing with no indication why. - * assistant: Several optimisations to file transfers. - * OSX app and standalone Linux tarball now both support being added to - PATH; no need to use runshell to start git-annex. - * webapp: When adding a removable drive, you can now specify the - directory inside it to use. - * webapp: Confirm whether user wants to combine repositories when - adding a removable drive that already has a repository on it. - - -- Joey Hess <joeyh@debian.org> Fri, 22 Mar 2013 18:54:05 -0400 - -git-annex (4.20130314) unstable; urgency=low - - * Bugfix: git annex add, when ran without any file or directory specified, - should add files in the current directory, but not act on unlocked files - elsewhere in the tree. - * Bugfix: drop --from an unavailable remote no longer updates the location - log, incorrectly, to say the remote does not have the key. - * Bugfix: If the UUID of a remote is not known, prevent --from, --to, - and other ways of specifying remotes by name from selecting it, - since it is not possible to sanely use it. - * Bugfix: Fix bug in inode cache sentinal check, which broke - copying to local repos if the repo being copied from had moved - to a different filesystem or otherwise changed all its inodes - - * Switch from using regex-compat to regex-tdfa, as the C regex library - is rather buggy. - * status: Can now be run with a directory path to show only the - status of that directory, rather than the whole annex. - * Added remote.<name>.annex-gnupg-options setting. - Thanks, guilhem for the patch. - * addurl: Add --relaxed option. - * addurl: Escape invalid characters in urls, rather than failing to - use an invalid url. - * addurl: Properly handle url-escaped characters in file:// urls. - - * assistant: Fix dropping content when a file is moved to an archive - directory, and getting contennt when a file is moved back out. - * assistant: Fix bug in direct mode that could occur when a symlink is - moved out of an archive directory, and resulted in the file not being - set to direct mode when it was transferred. - * assistant: Generate better commits for renames. - * assistant: Logs are rotated to avoid them using too much disk space. - * assistant: Avoid noise in logs from git commit about typechanged - files in direct mode repositories. - * assistant: Set gc.auto=0 when creating repositories to prevent - automatic commits from causing git-gc runs. - * assistant: If gc.auto=0, run git-gc once a day, packing loose objects - very non-aggressively. - * assistant: XMPP git pull and push requests are cached and sent when - presence of a new client is detected. - * assistant: Sync with all git remotes on startup. - * assistant: Get back in sync with XMPP remotes after network reconnection, - and on startup. - * assistant: Fix syncing after XMPP pairing. - * assistant: Optimised handling of renamed files in direct mode, - avoiding re-checksumming. - * assistant: Detects most renames, including directory renames, and - combines all their changes into a single commit. - * assistant: Fix ~/.ssh/git-annex-shell wrapper to work when the - ssh key does not force a command. - * assistant: Be smarter about avoiding unncessary transfers. - - * webapp: Work around bug in Warp's slowloris attack prevention code, - that caused regular browsers to stall when they reuse a connection - after leaving it idle for 30 seconds. - (See https://github.com/yesodweb/wai/issues/146) - * webapp: New preferences page allows enabling/disabling debug logging - at runtime, as well as configuring numcopies and diskreserve. - * webapp: Repository costs can be configured by dragging repositories around - in the repository list. - * webapp: Proceed automatically on from "Configure jabber account" - to pairing. - * webapp: Only show up to 10 queued transfers. - * webapp: DTRT when told to create a git repo that already exists. - * webapp: Set locally paired repositories to a lower cost than other - network remotes. - - * Run ssh with -T to avoid tty allocation and any login scripts that - may do undesired things with it. - * Several improvements to Makefile and cabal file. Thanks, Peter Simmons - * Stop depending on testpack. - * Android: Enable test suite. - - -- Joey Hess <joeyh@debian.org> Thu, 14 Mar 2013 15:29:20 -0400 - -git-annex (4.20130227) unstable; urgency=low - - * annex.version is now set to 4 for direct mode repositories. - * Should now fully support git repositories with core.symlinks=false; - always using git's pseudosymlink files in such repositories. - * webapp: Allow creating repositories on filesystems that lack support for - symlinks. - * webapp: Can now add a new local repository, and make it sync with - the main local repository. - * Android: Bundle now includes openssh. - * Android: Support ssh connection caching. - * Android: Assistant is fully working. (But no webapp yet.) - * Direct mode: Support filesystems like FAT which can change their inodes - each time they are mounted. - * Direct mode: Fix support for adding a modified file. - * Avoid passing -p to rsync, to interoperate with crippled filesystems. - Closes: #700282 - * Additional GIT_DIR support bugfixes. May actually work now. - * webapp: Display any error message from git init if it fails to create - a repository. - * Fix a reversion in matching globs introduced in the last release, - where "*" did not match files inside subdirectories. No longer uses - the Glob library. - * copy: Update location log when no copy was performed, if the location - log was out of date. - * Makefile now builds using cabal, taking advantage of cabal's automatic - detection of appropriate build flags. - * test: The test suite is now built into the git-annex binary, and can - be run at any time. - - -- Joey Hess <joeyh@debian.org> Wed, 27 Feb 2013 14:07:24 -0400 - -git-annex (3.20130216) unstable; urgency=low - - * Now uses the Haskell uuid library, rather than needing a uuid program. - * Now uses the Haskell Glob library, rather than pcre-light, avoiding - the need to install libpcre. Currently done only for Cabal or when - the Makefile is made to use -DWITH_GLOB - * Android port now available (command-line only). - * New annex.crippledfilesystem setting, allows use of git-annex - repositories on FAT and even worse filesystems; avoiding use of - hard links and locked down permissions settings. (Support is incomplete.) - * init: Detect when the repository is on a filesystem that does not - support hard links, or symlinks, or unix permissions, and set - annex.crippledfilesystem, as well as annex.direct. - * add: Improved detection of files that are modified while being added. - * Fix a bug in direct mode, introduced in the previous release, where - if a file was dropped and then got back, it would be stored in indirect - mode. - - -- Joey Hess <joeyh@debian.org> Sat, 16 Feb 2013 10:03:26 -0400 - -git-annex (3.20130207) unstable; urgency=low - - * webapp: Now allows restarting any threads that crash. - * Adjust debian package to only build-depend on DAV on architectures - where it is available. - * addurl --fast: Use curl, rather than haskell HTTP library, to support https. - * annex.autocommit: New setting, can be used to disable autocommit - of changed files by the assistant, while it still does data syncing - and other tasks. - * assistant: Ignore .DS_Store on OSX. - * assistant: Fix location log when adding new file in direct mode. - * Deal with stale mappings for deleted file in direct mode. - * pre-commit: Update direct mode mappings. - * uninit, unannex --fast: If hard link creation fails, fall back to slow - mode. - * Clean up direct mode cache and mapping info when dropping keys. - * dropunused: Clean up stale direct mode cache and mapping info not - removed before. - - -- Joey Hess <joeyh@debian.org> Thu, 07 Feb 2013 12:45:25 -0400 - -git-annex (3.20130124) unstable; urgency=low - - * Added source repository group, that only retains files until they've - been transferred to another repository. Useful for things like - repositories on cameras. - * Added manual repository group. Use to prevent the assistant from - downloading any file contents to keep things in sync. Instead - `git annex get`, `git annex drop` etc can be used manually as desired. - * webapp: More adjustments to longpoll code to deal with changes in - variable quoting in different versions of shakespeare-js. - * webapp: Avoid an error if a transfer is stopped just as it finishes. - Closes: #698184 - * webapp: Now always logs to .git/annex/daemon.log - * webapp: Has a page to view the log, accessed from the control menu. - * webapp: Fix crash adding removable drive that has an annex directory - in it that is not a git repository. - * Deal with incompatability in gpg2, which caused prompts for encryption - passphrases rather than using the supplied --passphrase-fd. - * bugfix: Union merges involving two or more repositories could sometimes - result in data from one repository getting lost. This could result - in the location log data becoming wrong, and fsck being needed to fix it. - * sync: Automatic merge conflict resolution now stages deleted files. - * Depend on git 1.7.7.6 for --no-edit. Closes: #698399 - * Fix direct mode mapping code to always store direct mode filenames - relative to the top of the repository, even when operating inside a - subdirectory. - * fsck: Detect and fix consistency errors in direct mode mapping files. - * Avoid filename encoding errors when writing direct mode mappings. - - -- Joey Hess <joeyh@debian.org> Tue, 22 Jan 2013 07:11:59 +1100 - -git-annex (3.20130114) unstable; urgency=low - - * Now handles the case where a file that's being transferred to a remote - is modified in place, which direct mode allows. When this - happens, the transfer now fails, rather than allow possibly corrupt - data into the remote. - * fsck: Better checking of file content in direct mode. - * drop: Suggest using git annex move when numcopies prevents dropping a file. - * webapp: Repo switcher filters out repos that do not exist any more - (or are on a drive that's not mounted). - * webapp: Use IP address, rather than localhost, since some systems may - have configuration problems or other issues that prevent web browsers - from connecting to the right localhost IP for the webapp. - * webapp: Adjust longpoll code to work with recent versions of - shakespeare-js. - * assistant: Support new gvfs dbus names used in Gnome 3.6. - * In direct mode, files with the same key are no longer hardlinked, as - that would cause a surprising behavior if modifying one, where the other - would also change. - * webapp: Avoid illegal characters in hostname when creating S3 or - Glacier remote. - * assistant: Avoid committer crashing if a file is deleted at the wrong - instant. - - -- Joey Hess <joeyh@debian.org> Mon, 14 Jan 2013 15:25:18 -0400 - -git-annex (3.20130107) unstable; urgency=low - - * webapp: Add UI to stop and restart assistant. - * committer: Fix a file handle leak. - * assistant: Make expensive transfer scan work fully in direct mode. - * More commands work in direct mode repositories: find, whereis, move, copy, - drop, log, fsck, add, addurl. - * sync: No longer automatically adds files in direct mode. - * assistant: Detect when system is not configured with a user name, - and set environment to prevent git from failing. - * direct: Avoid hardlinking symlinks that point to the same content - when the content is not present. - * Fix transferring files to special remotes in direct mode. - - -- Joey Hess <joeyh@debian.org> Mon, 07 Jan 2013 01:01:41 -0400 - -git-annex (3.20130102) unstable; urgency=low - - * direct, indirect: New commands, that switch a repository to and from - direct mode. In direct mode, files are accessed directly, rather than - via symlinks. Note that direct mode is currently experimental. Many - git-annex commands do not work in direct mode. Some git commands can - cause data loss when used in direct mode repositories. - * assistant: Now uses direct mode by default when setting up a new - local repository. - * OSX assistant: Uses the FSEvents API to detect file changes. - This avoids issues with running out of file descriptors on large trees, - as well as allowing detection of modification of files in direct mode. - Other BSD systems still use kqueue. - * kqueue: Fix bug that made broken symlinks not be noticed. - * vicfg: Quote filename. Closes: #696193 - * Bugfix: Fixed bug parsing transfer info files, where the newline after - the filename was included in it. This was generally benign, but in - the assistant, it caused unexpected dropping of preferred content. - * Bugfix: Remove leading \ from checksums output by sha*sum commands, - when the filename contains \ or a newline. Closes: #696384 - * fsck: Still accept checksums with a leading \ as valid, now that - above bug is fixed. - * SHA*E backends: Exclude non-alphanumeric characters from extensions. - * migrate: Remove leading \ in SHA* checksums, and non-alphanumerics - from extensions of SHA*E keys. - - -- Joey Hess <joeyh@debian.org> Wed, 02 Jan 2013 13:21:34 -0400 - -git-annex (3.20121211) unstable; urgency=low - - * webapp: Defaults to sharing box.com account info with friends, allowing - one-click enabling of the repository. - * Fix broken .config/git-annex/program installed by standalone tarball. - * assistant: Retrival from glacier now handled. - * Include ssh in standalone tarball and OSX app. - * watch: Avoid leaving hard links to files behind in .git/annex/tmp - if a file is deleted or moved while it's being quarantined in preparation - to being added to the annex. - * Allow `git annex drop --from web`; of course this does not remove - any file from the web, but it does make git-annex remove all urls - associated with a file. - * webapp: S3 and Glacier forms now have a select list of all - currently-supported AWS regions. - * webdav: Avoid trying to set props, avoiding incompatability with - livedrive.com. Needs DAV version 0.3. - * webapp: Prettify error display. - * webapp: Fix bad interaction between required fields and modals. - * webapp: Added help buttons and links next to fields that require - explanations. - * webapp: Encryption can be disabled when setting up remotes. - * assistant: Avoid trying to drop content from remotes that don't have it. - * assistant: Allow periods in ssh key comments. - * get/copy --auto: Transfer data even if it would exceed numcopies, - when preferred content settings want it. - * drop --auto: Fix dropping content when there are no preferred content - settings. - * webapp: Allow user to specify the port when setting up a ssh or rsync - remote. - * assistant: Fix syncing to just created ssh remotes. - * Enable WebDAV support in Debian package. Closes: #695532 - - -- Joey Hess <joeyh@debian.org> Tue, 11 Dec 2012 11:25:03 -0400 - -git-annex (3.20121127) unstable; urgency=low - - * Fix dirContentsRecursive, which had missed some files in deeply nested - subdirectories. Could affect various parts of git-annex. - * rsync: Fix bug introduced in last release that broke encrypted rsync - special remotes. - * The standalone builds now unset their special path and library path - variables before running the system web browser. - - -- Joey Hess <joeyh@debian.org> Tue, 27 Nov 2012 17:07:32 -0400 - -git-annex (3.20121126) unstable; urgency=low - - * New webdav and Amazon glacier special remotes. - * Display a warning when a non-existing file or directory is specified. - * webapp: Added configurator for Box.com. - * webapp: Show error messages to user when testing XMPP creds. - * Fix build of assistant without yesod. - * webapp: The list of repositiories refreshes when new repositories are - added, including when new repository configurations are pushed in from - remotes. - * OSX: Fix RunAtLoad value in plist file. - * Getting a file from chunked directory special remotes no longer buffers - it all in memory. - * S3: Added progress display for uploading and downloading. - * directory special remote: Made more efficient and robust. - * Bugfix: directory special remote could loop forever storing a key - when a too small chunksize was configured. - * Allow controlling whether login credentials for S3 and webdav are - committed to the repository, by setting embedcreds=yes|no when running - initremote. - * Added smallarchive repository group, that only archives files that are - in archive directories. Used by default for glacier when set up in the - webapp. - * assistant: Fixed handling of toplevel archive directory and - client repository group. - * assistant: Apply preferred content settings when a new symlink - is created, or a symlink gets renamed. Made archive directories work. - - -- Joey Hess <joeyh@debian.org> Mon, 26 Nov 2012 11:37:49 -0400 - -git-annex (3.20121112) unstable; urgency=low - - * assistant: Can use XMPP to notify other nodes about pushes made to other - repositories, as well as pushing to them directly over XMPP. - * wepapp: Added an XMPP configuration interface. - * webapp: Supports pairing over XMPP, with both friends, and other repos - using the same account. - * assistant: Drops non-preferred content when possible. - * assistant: Notices, and applies config changes as they are made to - the git-annex branch, including config changes pushed in from remotes. - * git-annex-shell: GIT_ANNEX_SHELL_DIRECTORY can be set to limit it - to operating on a specified directory. - * webapp: When setting up authorized_keys, use GIT_ANNEX_SHELL_DIRECTORY. - * Preferred content path matching bugfix. - * Preferred content expressions cannot use "in=". - * Preferred content expressions can use "present". - * Fix handling of GIT_DIR when it refers to a git submodule. - * Depend on and use the Haskell SafeSemaphore library, which provides - exception-safe versions of SampleVar and QSemN. - Thanks, Ben Gamari for an excellent patch set. - * file:/// URLs can now be used with the web special remote. - * webapp: Allow dashes in ssh key comments when pairing. - * uninit: Check and abort if there are symlinks to annexed content that - are not checked into git. - * webapp: Switched to using the same multicast IP address that avahi uses. - * bup: Don't pass - to bup-split to make it read stdin; bup 0.25 - does not accept that. - * bugfix: Don't fail transferring content from read-only repos. - Closes: #691341 - * configure: Check that checksum programs produce correct checksums. - * Re-enable dbus, using a new version of the library that fixes the memory - leak. - * NetWatcher: When dbus connection is lost, try to reconnect. - * Use USER and HOME environment when set, and only fall back to getpwent, - which doesn't work with LDAP or NIS. - * rsync special remote: Include annex-rsync-options when running rsync - to test a key's presence. - * The standalone tarball's runshell now takes care of installing a - ~/.ssh/git-annex-shell wrapper the first time it's run. - * webapp: Make an initial, empty commit so there is a master branch - * assistant: Fix syncing local drives. - * webapp: Fix creation of rsync.net repositories. - * webapp: Fix renaming of special remotes. - * webapp: Generate better git remote names. - * webapp: Ensure that rsync special remotes are enabled using the same - name they were originally created using. - * Bugfix: Fix hang in webapp when setting up a ssh remote with an absolute - path. - - -- Joey Hess <joeyh@debian.org> Mon, 12 Nov 2012 10:39:47 -0400 - -git-annex (3.20121017) unstable; urgency=low - - * Fix zombie cleanup reversion introduced in 3.20121009. - * Additional fix to support git submodules. - - -- Joey Hess <joeyh@debian.org> Tue, 16 Oct 2012 21:10:14 -0400 - -git-annex (3.20121016) unstable; urgency=low - - * vicfg: New file format, avoids ambiguity with repos that have the same - description, or no description. - * Bug fix: A recent change caused git-annex-shell to crash. - * Better preferred content expression for transfer repos. - * webapp: Repository edit form can now edit the name of a repository. - * webapp: Make bare repositories on removable drives, as there is nothing - to ensure non-bare repos get updated when syncing. - * webapp: Better behavior when pausing syncing to a remote when a transfer - scan is running and queueing new transfers for that remote. - * The standalone binaries are now built to not use ssh connection caching, - in order to work with old versions of ssh. - * A relative core.worktree is relative to the gitdir. Now that this is - handled correctly, git-annex can be used in git submodules. - * Temporarily disable use of dbus, as the haskell dbus library blows up - when losing connection, which will need to be fixed upstream. - - -- Joey Hess <joeyh@debian.org> Tue, 16 Oct 2012 15:25:22 -0400 - -git-annex (3.20121010) unstable; urgency=low - - * Renamed --ingroup to --inallgroup. - * Standard groups changed to client, transfer, archive, and backup. - Each of these has its own standard preferred content setting. - * dead: Remove dead repository from all groups. - * Avoid unsetting HOME when running certian git commands. Closes: #690193 - * test: Fix threaded runtime hang. - * Makefile: Avoid building with -threaded if the ghc threaded runtime does - not exist. - * webapp: Improve wording of intro display. Closes: #689848 - * webapp: Repositories can now be configured, to change their description, - their group, or even to disable syncing to them. - * git config remote.name.annex-sync can be used to control whether - a remote gets synced. - * Fix a crash when merging files in the git-annex branch that contain - invalid utf8. - * Automatically detect when a ssh remote does not have git-annex-shell - installed, and set annex-ignore. - - -- Joey Hess <joeyh@debian.org> Fri, 12 Oct 2012 13:45:21 -0400 - -git-annex (3.20121009) unstable; urgency=low - - * watch, assistant: It's now safe to git annex unlock files while - the watcher is running, as well as modify files checked into git - as normal files. Additionally, .gitignore settings are now honored. - Closes: #689979 - * group, ungroup: New commands to indicate groups of repositories. - * webapp: Adds newly created repositories to one of these groups: - clients, drives, servers - * vicfg: New command, allows editing (or simply viewing) most - of the repository configuration settings stored in the git-annex branch. - * Added preferred content expressions, configurable using vicfg. - * get --auto: If the local repository has preferred content - configured, only get that content. - * drop --auto: If the repository the content is dropped from has - preferred content configured, drop only content that is not preferred. - * copy --auto: Only transfer content that the destination repository prefers. - * assistant: Now honors preferred content settings when deciding what to - transfer. - * --copies=group:number can now be used to match files that are present - in a specified number of repositories in a group. - * Added --smallerthan, --largerthan, and --inall limits. - * Only build-depend on libghc-clientsession-dev on arches that will have - the webapp. - * uninit: Unset annex.version. Closes: #689852 - - -- Joey Hess <joeyh@debian.org> Tue, 09 Oct 2012 15:13:23 -0400 - -git-annex (3.20121001) unstable; urgency=low - - * fsck: Now has an incremental mode. Start a new incremental fsck pass - with git annex fsck --incremental. Now the fsck can be interrupted - as desired, and resumed with git annex fsck --more. - Thanks, Justin Azoff - * New --time-limit option, makes long git-annex commands stop after - a specified amount of time. - * fsck: New --incremental-schedule option which is nice for scheduling - eg, monthly incremental fsck runs in cron jobs. - * Fix fallback to ~/Desktop when xdg-user-dir is not available. - Closes: #688833 - * S3: When using a shared cipher, S3 credentials are not stored encrypted - in the git repository, as that would allow anyone with access to - the repository access to the S3 account. Instead, they're stored - in a 600 mode file in the local git repo. - * webapp: Avoid crashing when ssh-keygen -F chokes on an invalid known_hosts - file. - * Always do a system wide installation when DESTDIR is set. Closes: #689052 - * The Makefile now builds with the new yesod by default. - Systems like Debian that have the old yesod 1.0.1 should set - GIT_ANNEX_LOCAL_FEATURES=-DWITH_OLD_YESOD - * copy: Avoid updating the location log when no copy is performed. - * configure: Test that uuid -m works, falling back to plain uuid if not. - * Avoid building the webapp on Debian architectures that do not yet - have template haskell and thus yesod. (Should be available for arm soonish - I hope). - - -- Joey Hess <joeyh@debian.org> Mon, 01 Oct 2012 13:56:55 -0400 - -git-annex (3.20120924) unstable; urgency=low - - * assistant: New command, a daemon which does everything watch does, - as well as automatically syncing file contents between repositories. - * webapp: An interface for managing and configuring the assistant. - * The default backend used when adding files to the annex is changed - from SHA256 to SHA256E, to simplify interoperability with OSX, media - players, and various programs that needlessly look at symlink targets. - To get old behavior, add a .gitattributes containing: * annex.backend=SHA256 - * init: If no description is provided for a new repository, one will - automatically be generated, like "joey@gnu:~/foo" - * test: Set a lot of git environment variables so testing works in strange - environments that normally need git config to set names, etc. - Closes: #682351 Thanks, gregor herrmann - * Disable ssh connection caching if the path to the control socket would be - too long (and use relative path to minimise path to the control socket). - * migrate: Check content before generating the new key, to avoid generating - a key for corrupt data. - * Support repositories created with --separate-git-dir. Closes: #684405 - * reinject: When the provided file doesn't match, leave it where it is, - rather than moving to .git/annex/bad/ - * Avoid crashing on encoding errors in filenames when writing transfer info - files and reading from checksum commands. - * sync: Pushes the git-annex branch to remote/synced/git-annex, rather - than directly to remote/git-annex. - * Now supports matching files that are present on a number of remotes - with a specified trust level. Example: --copies=trusted:2 - Thanks, Nicolas Pouillard - - -- Joey Hess <joeyh@debian.org> Mon, 24 Sep 2012 13:47:48 -0400 - -git-annex (3.20120825) unstable; urgency=low - - * S3: Add fileprefix setting. - * Pass --use-agent to gpg when in no tty mode. Thanks, Eskild Hustvedt. - * Bugfix: Fix fsck in SHA*E backends, when the key contains composite - extensions, as added in 3.20120721. - - -- Joey Hess <joeyh@debian.org> Sat, 25 Aug 2012 10:00:10 -0400 - -git-annex (3.20120807) unstable; urgency=low - - * initremote: Avoid recording remote's description before checking - that its config is valid. - * unused, status: Avoid crashing when ran in bare repo. - * Avoid crashing when "git annex get" fails to download from one - location, and falls back to downloading from a second location. - - -- Joey Hess <joeyh@debian.org> Tue, 07 Aug 2012 13:35:07 -0400 - -git-annex (3.20120721) unstable; urgency=low - - * get, move, copy: Now refuse to do anything when the requested file - transfer is already in progress by another process. - * status: Lists transfers that are currently in progress. - * Fix passing --uuid to git-annex-shell. - * When shaNsum commands cannot be found, use the Haskell SHA library - (already a dependency) to do the checksumming. This may be slower, - but avoids portability problems. - * Use SHA library for files less than 50 kb in size, at which point it's - faster than forking the more optimised external program. - * SHAnE backends are now smarter about composite extensions, such as - .tar.gz Closes: #680450 - * map: Write map.dot to .git/annex, which avoids watch trying to annex it. - - -- Joey Hess <joeyh@debian.org> Sat, 21 Jul 2012 16:52:48 -0400 - -git-annex (3.20120629) unstable; urgency=low - - * cabal: Only try to use inotify on Linux. - * Version build dependency on STM, and allow building without it, - which disables the watch command. - * Avoid ugly failure mode when moving content from a local repository - that is not available. - * Got rid of the last place that did utf8 decoding. - * Accept arbitrarily encoded repository filepaths etc when reading - git config output. This fixes support for remotes with unusual characters - in their names. - * sync: Automatically resolves merge conflicts. - - -- Joey Hess <joeyh@debian.org> Fri, 29 Jun 2012 10:17:49 -0400 - -git-annex (3.20120624) unstable; urgency=low - - * watch: New subcommand, a daemon which notices changes to - files and automatically annexes new files, etc, so you don't - need to manually run git commands when manipulating files. - Available on Linux, BSDs, and OSX! - * Enable diskfree on kfreebsd, using kqueue. - * unused: Fix crash when key names contain invalid utf8. - * sync: Avoid recent git's interactive merge. - - -- Joey Hess <joeyh@debian.org> Sun, 24 Jun 2012 12:36:50 -0400 - -git-annex (3.20120614) unstable; urgency=medium - - * addurl: Was broken by a typo introduced 2 released ago, now fixed. - Closes: #677576 - * Install man page when run by cabal, in a location where man will - find it, even when installing under $HOME. Thanks, Nathan Collins - - -- Joey Hess <joeyh@debian.org> Thu, 14 Jun 2012 20:21:29 -0400 - -git-annex (3.20120611) unstable; urgency=medium - - * add: Prevent (most) modifications from being made to a file while it - is being added to the annex. - * initremote: Automatically describe a remote when creating it. - * uninit: Refuse to run in a subdirectory. Closes: #677076 - - -- Joey Hess <joeyh@debian.org> Mon, 11 Jun 2012 10:32:01 -0400 - -git-annex (3.20120605) unstable; urgency=low - - * sync: Show a nicer message if a user tries to sync to a special remote. - * lock: Reset unlocked file to index, rather than to branch head. - * import: New subcommand, pulls files from a directory outside the annex - and adds them. - * Fix display of warning message when encountering a file that uses an - unsupported backend. - * Require that the SHA256 backend can be used when building, since it's the - default. - * Preserve parent environment when running hooks of the hook special remote. - - -- Joey Hess <joeyh@debian.org> Tue, 05 Jun 2012 14:03:39 -0400 - -git-annex (3.20120522) unstable; urgency=low - - * Pass -a to cp even when it supports --reflink=auto, to preserve - permissions. - * Clean up handling of git directory and git worktree. - * Add support for core.worktree, and fix support for GIT_WORK_TREE and - GIT_DIR. - - -- Joey Hess <joeyh@debian.org> Tue, 22 May 2012 11:16:13 -0400 - -git-annex (3.20120511) unstable; urgency=low - - * Rsync special remotes can be configured with shellescape=no - to avoid shell quoting that is normally done when using rsync over ssh. - This is known to be needed for certian rsync hosting providers - (specificially hidrive.strato.com) that use rsync over ssh but do not - pass it through the shell. - * dropunused: Allow specifying ranges to drop. - * addunused: New command, the opposite of dropunused, it relinks unused - content into the git repository. - * Fix use of several config settings: annex.ssh-options, - annex.rsync-options, annex.bup-split-options. (And adjust types to avoid - the bugs that broke several config settings.) - - -- Joey Hess <joeyh@debian.org> Fri, 11 May 2012 12:29:30 -0400 - -git-annex (3.20120430) unstable; urgency=low - - * Fix use of annex.diskreserve config setting. - * Directory special remotes now check annex.diskreserve. - * Support git's core.sharedRepository configuration. - * Add annex.http-headers and annex.http-headers-command config - settings, to allow custom headers to be sent with all HTTP requests. - (Requested by the Internet Archive) - * uninit: Clear annex.uuid from .git/config. Closes: #670639 - * Added shared cipher mode to encryptable special remotes. This option - avoids gpg key distribution, at the expense of flexability, and with - the requirement that all clones of the git repository be equally trusted. - - -- Joey Hess <joeyh@debian.org> Mon, 30 Apr 2012 13:16:10 -0400 - -git-annex (3.20120418) unstable; urgency=low - - * bugfix: Adding a dotfile also caused all non-dotfiles to be added. - * bup: Properly handle key names with spaces or other things that are - not legal git refs. - * 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. - * Renamed diskfree.c to avoid OSX case insensativity bug. - * cabal now installs git-annex-shell as a symlink to git-annex. - * cabal file now autodetects whether S3 support is available. - - -- Joey Hess <joeyh@debian.org> Wed, 18 Apr 2012 12:11:32 -0400 - -git-annex (3.20120406) unstable; urgency=low - - * Disable diskfree on kfreebsd, as I have a build failure on kfreebsd-i386 - that is quite likely caused by it. - - -- Joey Hess <joeyh@debian.org> Sat, 07 Apr 2012 15:50:36 -0400 - -git-annex (3.20120405) unstable; urgency=low - - * Rewrote free disk space checking code, moving the portability - handling into a small C library. - * status: Display amount of free disk space. - - -- Joey Hess <joeyh@debian.org> Thu, 05 Apr 2012 16:19:10 -0400 - -git-annex (3.20120315) unstable; urgency=low - - * fsck: Fix up any broken links and misplaced content caused by the - directory hash calculation bug fixed in the last release. - * sync: Sync to lower cost remotes first. - * status: Fixed to run in constant space. - * status: More accurate display of sizes of tmp and bad keys. - * unused: Now uses a bloom filter, and runs in constant space. - Use of a bloom filter does mean it will not notice a small - number of unused keys. For repos with up to half a million keys, - it will miss one key in 1000. - * Added annex.bloomcapacity and annex.bloomaccuracy, which can be - adjusted as desired to tune the bloom filter. - * status: Display amount of memory used by bloom filter, and - detect when it's too small for the number of keys in a repository. - * git-annex-shell: Runs hooks/annex-content after content is received - or dropped. - * Work around a bug in rsync (IMHO) introduced by openSUSE's SIP patch. - * 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. - - -- Joey Hess <joeyh@debian.org> Thu, 15 Mar 2012 11:05:28 -0400 - -git-annex (3.20120309) unstable; urgency=low - - * Fix key directory hash calculation code to behave as it did before - version 3.20120227 when a key contains non-ascii characters (only - WORM backend is likely to have been affected). - - -- Joey Hess <joeyh@debian.org> Fri, 09 Mar 2012 20:05:09 -0400 - -git-annex (3.20120230) unstable; urgency=low - - * "here" can be used to refer to the current repository, - which can read better than the old "." (which still works too). - * Directory special remotes now support chunking files written to them, - avoiding writing files larger than a specified size. - * Add progress bar display to the directory special remote. - * Add configurable hooks that are run when git-annex starts and stops - using a remote: remote.name.annex-start-command and - remote.name.annex-stop-command - * Fix a bug in symlink calculation code, that triggered in rare - cases where an annexed file is in a subdirectory that nearly - matched to the .git/annex/object/xx/yy subdirectories. - - -- Joey Hess <joeyh@debian.org> Mon, 05 Mar 2012 13:38:13 -0400 - -git-annex (3.20120229) unstable; urgency=low - - * Fix test suite to not require a unicode locale. - * Fix cabal build failure. Thanks, Sergei Trofimovich - - -- Joey Hess <joeyh@debian.org> Wed, 29 Feb 2012 02:31:31 -0400 - -git-annex (3.20120227) unstable; urgency=low - - * Modifications to support ghc 7.4's handling of filenames. - This version can only be built with ghc 7.4 or newer. See the ghc7.0 - branch for older ghcs. - * S3: Fix irrefutable pattern failure when accessing encrypted S3 - credentials. - * Use the haskell IfElse library. - * Fix teardown of stale cached ssh connections. - * Fixed to use the strict state monad, to avoid leaking all kinds of memory - due to lazy state update thunks when adding/fixing many files. - * Fixed some memory leaks that occurred when committing journal files. - * Added a annex.queuesize setting, useful when adding hundreds of thousands - of files on a system with plenty of memory. - * whereis: Prints the urls of files that the web special remote knows about. - * addurl --fast: Verifies that the url can be downloaded (only getting - its head), and records the size in the key. - * When checking that an url has a key, verify that the Content-Length, - if available, matches the size of the key. - * addurl: Added a --file option, which can be used to specify what - file the url is added to. This can be used to override the default - filename that is used when adding an url, which is based on the url. - Or, when the file already exists, the url is recorded as another - location of the file. - * addurl: Normalize badly encoded urls. - * addurl: Add --pathdepth option. - * rekey: New plumbing level command, can be used to change the keys used - for files en masse. - * Store web special remote url info in a more efficient location. - (Urls stored with this version will not be visible to older versions.) - * Deal with NFS problem that caused a failure to remove a directory - when removing content from the annex. - * Make a single location log commit after a remote has received or - dropped files. Uses a new "git-annex-shell commit" command when available. - * 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. - * configure: Check if ssh connection caching is supported by the installed - version of ssh and default annex.sshcaching accordingly. - * move --from, copy --from: Now 10 times faster when scanning to find - files in a remote on a local disk; rather than go through the location log - to see which files are present on the remote, it simply looks at the - disk contents directly. - - -- Joey Hess <joeyh@debian.org> Mon, 27 Feb 2012 12:58:21 -0400 - -git-annex (3.20120123) unstable; urgency=low - - * fsck --from: Fscking a remote is now supported. It's done by retrieving - the contents of the specified files from the remote, and checking them, - so can be an expensive operation. Still, if the remote is a special - remote, or a git repository that you cannot run fsck in locally, it's - nice to have the ability to fsck it. - * If you have any directory special remotes, now would be a good time to - fsck them, in case you were hit by the data loss bug fixed in the - previous release! - * fsck --from remote --fast: Avoids expensive file transfers, at the - expense of not checking file size and/or contents. - * Ssh connection caching is now enabled automatically by git-annex. - Only one ssh connection is made to each host per git-annex run, which - can speed some things up a lot, as well as avoiding repeated password - prompts. Concurrent git-annex processes also share ssh connections. - Cached ssh connections are shut down when git-annex exits. - * To disable the ssh caching (if for example you have your own broader - ssh caching configuration), set annex.sshcaching=false. - - -- Joey Hess <joeyh@debian.org> Mon, 23 Jan 2012 13:48:48 -0400 - -git-annex (3.20120116) unstable; urgency=medium - - * Fix data loss bug in directory special remote, when moving a file - to the remote failed, and partially transferred content was left - behind in the directory, re-running the same move would think it - succeeded and delete the local copy. - - -- Joey Hess <joeyh@debian.org> Mon, 16 Jan 2012 16:43:45 -0400 - -git-annex (3.20120115) unstable; urgency=low - - * Add a sanity check for bad StatFS results. On architectures - where StatFS does not currently work (s390, mips, powerpc, sparc), - this disables the diskreserve checking code, and attempting to - configure an annex.diskreserve will result in an error. - * Fix QuickCheck dependency in cabal file. - * Minor optimisations. - - -- Joey Hess <joeyh@debian.org> Sun, 15 Jan 2012 13:54:20 -0400 - -git-annex (3.20120113) unstable; urgency=low - - * log: Add --gource mode, which generates output usable by gource. - * map: Fix display of remote repos - * Add annex-trustlevel configuration settings, which can be used to - override the trust level of a remote. - * git-annex, git-union-merge: Support GIT_DIR and GIT_WORK_TREE. - * Add libghc-testpack-dev to build depends on all arches. - - -- Joey Hess <joeyh@debian.org> Fri, 13 Jan 2012 15:35:17 -0400 - -git-annex (3.20120106) unstable; urgency=low - - * Support unescaped repository urls, like git does. - * log: New command that displays the location log for files, - showing each repository they were added to and removed from. - * Fix overbroad gpg --no-tty fix from last release. - - -- Joey Hess <joeyh@debian.org> Sat, 07 Jan 2012 13:16:23 -0400 - -git-annex (3.20120105) unstable; urgency=low - - * Added annex-web-options configuration settings, which can be - used to provide parameters to whichever of wget or curl git-annex uses - (depends on which is available, but most of their important options - suitable for use here are the same). - * Dotfiles, and files inside dotdirs are not added by "git annex add" - unless the dotfile or directory is explicitly listed. So "git annex add ." - will add all untracked files in the current directory except for those in - dotdirs. - * Added quickcheck to build dependencies, and fail if test suite cannot be - built. - * fsck: Do backend-specific check before checking numcopies is satisfied. - * Run gpg with --no-tty. Closes: #654721 - - -- Joey Hess <joeyh@debian.org> Thu, 05 Jan 2012 13:44:12 -0400 - -git-annex (3.20111231) unstable; urgency=low - - * sync: Improved to work well without a central bare repository. - Thanks to Joachim Breitner. - * Rather than manually committing, pushing, pulling, merging, and git annex - merging, we encourage you to give "git annex sync" a try. - * sync --fast: Selects some of the remotes with the lowest annex.cost - and syncs those, in addition to any specified at the command line. - * Union merge now finds the least expensive way to represent the merge. - * reinject: Add a sanity check for using an annexed file as the source file. - * Properly handle multiline git config values. - * Fix the hook special remote, which bitrotted a while ago. - * map: --fast disables use of dot to display map - * Test suite improvements. Current top-level test coverage: 75% - * Improve deletion of files from rsync special remotes. Closes: #652849 - * Add --include, which is the same as --not --exclude. - * Format strings can be specified using the new --format option, to control - what is output by git annex find. - * Support git annex find --json - * Fixed behavior when multiple insteadOf configs are provided for the - same url base. - * Can now be built with older git versions (before 1.7.7); the resulting - binary should only be used with old git. - * Updated to build with monad-control 0.3. - - -- Joey Hess <joeyh@debian.org> Sat, 31 Dec 2011 14:55:29 -0400 - -git-annex (3.20111211) unstable; urgency=medium - - * Fix bug in last version in getting contents from bare repositories. - * Ensure that git-annex branch changes are merged into git-annex's index, - which fixes a bug that could cause changes that were pushed to the - git-annex branch to get reverted. As a side effect, it's now safe - for users to check out and commit changes directly to the git-annex - branch. - * map: Fix a failure to detect a loop when both repositories are local - and refer to each other with relative paths. - * Prevent key names from containing newlines. - * add: If interrupted, add can leave files converted to symlinks but not - yet added to git. Running the add again will now clean up this situtation. - * Fix caching of decrypted ciphers, which failed when drop had to check - multiple different encrypted special remotes. - * unannex: Can be run on files that have been added to the annex, but not - yet committed. - * sync: New command that synchronises the local repository and default - remote, by running git commit, pull, and push for you. - * Version monad-control dependency in cabal file. - - -- Joey Hess <joeyh@debian.org> Sun, 11 Dec 2011 21:24:39 -0400 - -git-annex (3.20111203) unstable; urgency=low - - * The VFAT filesystem on recent versions of Linux, when mounted with - shortname=mixed, does not get along well with git-annex's mixed case - .git/annex/objects hash directories. To avoid this problem, new content - is now stored in all-lowercase hash directories. Except for non-bare - repositories which would be a pain to transition and cannot be put on FAT. - (Old mixed-case hash directories are still tried for backwards - compatibility.) - * Flush json output, avoiding a buffering problem that could result in - doubled output. - * Avoid needing haskell98 and other fixes for new ghc. Thanks, Mark Wright. - * Bugfix: dropunused did not drop keys with two spaces in their name. - * Support for storing .git/annex on a different device than the rest of the - git repository. - * --inbackend can be used to make git-annex only operate on files - whose content is stored using a specified key-value backend. - * dead: A command which says that a repository is gone for good - and you don't want git-annex to mention it again. - - -- Joey Hess <joeyh@debian.org> Sat, 03 Dec 2011 21:01:45 -0400 - -git-annex (3.20111122) unstable; urgency=low - - * merge: Improve commit messages to mention what was merged. - * Avoid doing auto-merging in commands that don't need fully current - information from the git-annex branch. In particular, git annex add - no longer needs to auto-merge. - * init: When run in an already initalized repository, and without - a description specified, don't delete the old description. - * Optimised union merging; now only runs git cat-file once, and runs - in constant space. - * status: Now displays trusted, untrusted, and semitrusted repositories - separately. - * status: Include all special remotes in the list of repositories. - * status: Fix --json mode. - * status: --fast is back - * Fix support for insteadOf url remapping. Closes: #644278 - * When not run in a git repository, git-annex can still display a usage - message, and "git annex version" even works. - * migrate: Don't fall over a stale temp file. - * Avoid excessive escaping for rsync special remotes that are not accessed - over ssh. - * find: Support --print0 - - -- Joey Hess <joeyh@debian.org> Tue, 22 Nov 2011 14:31:45 -0400 - -git-annex (3.20111111) unstable; urgency=low - - * Handle a case where an annexed file is moved into a gitignored directory, - by having fix --force add its change. - * Avoid cyclic drop problems. - * Optimized copy --from and get --from to avoid checking the location log - for files that are already present. - * Automatically fix up badly formatted uuid.log entries produced by - 3.20111105, whenever the uuid.log is changed (ie, by init or describe). - * map: Support remotes with /~/ and /~user/ - - -- Joey Hess <joeyh@debian.org> Fri, 11 Nov 2011 13:44:18 -0400 - -git-annex (3.20111107) unstable; urgency=low - - * merge: Use fast-forward merges when possible. - Thanks Valentin Haenel for a test case showing how non-fast-forward - merges could result in an ongoing pull/merge/push cycle. - * Don't try to read config from repos with annex-ignore set. - * Bugfix: In the past two releases, git-annex init has written the uuid.log - in the wrong format, with the UUID and description flipped. - - -- Joey Hess <joeyh@debian.org> Mon, 07 Nov 2011 12:47:44 -0400 - -git-annex (3.20111105) unstable; urgency=low - - * The default backend used when adding files to the annex is changed - from WORM to SHA256. - To get old behavior, add a .gitattributes containing: * annex.backend=WORM - * Sped up some operations on remotes that are on the same host. - * copy --to: Fixed leak when copying many files to a remote on the same - host. - * uninit: Add guard against being run with the git-annex branch checked out. - * Fail if --from or --to is passed to commands that do not support them. - * drop --from is now supported to remove file content from a remote. - * status: Now always shows the current repository, even when it does not - appear in uuid.log. - * fsck: Now works in bare repositories. Checks location log information, - and file contents. Does not check that numcopies is satisfied, as - .gitattributes information about numcopies is not available in a bare - repository. - * unused, dropunused: Now work in bare repositories. - * Removed the setkey command, and added a reinject command with a more - useful interface. - * The fromkey command now takes the key as its first parameter. The --key - option is no longer used. - * Built without any filename containing .git being excluded. Closes: #647215 - * Record uuid when auto-initializing a remote so it shows in status. - * Bugfix: Fixed git-annex init crash in a bare repository when there was - already an existing git-annex branch. - * Pass -t to rsync to preserve timestamps. - - -- Joey Hess <joeyh@debian.org> Sat, 05 Nov 2011 15:47:52 -0400 - -git-annex (3.20111025) unstable; urgency=low - - * A remote can have a annexUrl configured, that is used by git-annex - instead of its usual url. (Similar to pushUrl.) - * migrate: Copy url logs for keys when migrating. - * git-annex-shell: GIT_ANNEX_SHELL_READONLY and GIT_ANNEX_SHELL_LIMITED - environment variables can be set to limit what commands can be run. - This is used by gitolite's new git-annex support! - - -- Joey Hess <joeyh@debian.org> Tue, 25 Oct 2011 13:03:08 -0700 - -git-annex (3.20111011) unstable; urgency=low - - * This version of git-annex only works with git 1.7.7 and newer. - The breakage with old versions is subtle, and affects the - annex.numcopies settings in .gitattributes, so be sure to upgrade git - to 1.7.7. (Debian package now depends on that version.) - * Don't pass absolute paths to git show-attr, as it started following - symlinks when that's done in 1.7.7. Instead, use relative paths, - which show-attr only handles 100% correctly in 1.7.7. Closes: #645046 - * Fix referring to remotes by uuid. - * New or changed repository descriptions in uuid.log now have a timestamp, - which is used to ensure the newest description is used when the uuid.log - has been merged. - * Note that older versions of git-annex will display the timestamp as part - of the repository description, which is ugly but otherwise harmless. - * Add timestamps to trust.log and remote.log too. - * git-annex-shell: Added the --uuid option. - * git-annex now asks git-annex-shell to verify that it's operating in - the expected repository. - * Note that this git-annex will not interoperate with remotes using - older versions of git-annex-shell. - * Now supports git's insteadOf configuration, to modify the url - used to access a remote. Note that pushInsteadOf is not used; - that and pushurl are reserved for actual git pushes. Closes: #644278 - * status: List all known repositories. - * When displaying a list of repositories, show git remote names - in addition to their descriptions. - * Add locking to avoid races when changing the git-annex branch. - * Various speed improvements gained by using ByteStrings. - * Contain the zombie hordes. - - -- Joey Hess <joeyh@debian.org> Tue, 11 Oct 2011 23:00:02 -0400 - -git-annex (3.20110928) unstable; urgency=low - - * --in can be used to make git-annex only operate on files - believed to be present in a given repository. - * Arbitrarily complex expressions can be built to limit the files git-annex - operates on, by combining the options --not --and --or -( and -) - Example: git annex get --exclude '*.mp3' --and --not -( --in usbdrive --or --in archive -) - * --copies=N can be used to make git-annex only operate on files with - the specified number of copies. (And --not --copies=N for the inverse.) - * find: Rather than only showing files whose contents are present, - when used with --exclude --copies or --in, displays all files that - match the specified conditions. - * Note that this is a behavior change for git-annex find! Old behavior - can be gotten by using: git-annex find --in . - * status: Massively sped up; remove --fast mode. - * unused: File contents used by branches and tags are no longer - considered unused, even when not used by the current branch. This is - the final piece of the puzzle needed for git-annex to to play nicely - with branches. - - -- Joey Hess <joeyh@debian.org> Wed, 28 Sep 2011 18:14:02 -0400 - -git-annex (3.20110915) unstable; urgency=low - - * whereis: Show untrusted locations separately and do not include in - location count. - * Fix build without S3. - * addurl: Always use whole url as destination filename, rather than - only its file component. - * get, drop, copy: Added --auto option, which decides whether - to get/drop content as needed to work toward the configured numcopies. - * bugfix: drop and fsck did not honor --exclude - - -- Joey Hess <joeyh@debian.org> Thu, 15 Sep 2011 22:25:46 -0400 - -git-annex (3.20110906) unstable; urgency=low - - * Improve display of newlines around error and warning messages. - * Fix Makefile to work with cabal again. - - -- Joey Hess <joeyh@debian.org> Tue, 06 Sep 2011 13:45:16 -0400 - -git-annex (3.20110902) unstable; urgency=low - - * Set EMAIL when running test suite so that git does not need to be - configured first. Closes: #638998 - * The wget command will now be used in preference to curl, if available. - * init: Make description an optional parameter. - * unused, status: Sped up by avoiding unnecessary stats of annexed files. - * unused --remote: Reduced memory use to 1/4th what was used before. - * Add --json switch, to produce machine-consumable output. - - -- Joey Hess <joeyh@debian.org> Fri, 02 Sep 2011 21:20:37 -0400 - -git-annex (3.20110819) unstable; urgency=low - - * Now "git annex init" only has to be run once, when a git repository - is first being created. Clones will automatically notice that git-annex - is in use and automatically perform a basic initalization. It's - still recommended to run "git annex init" in any clones, to describe them. - * Added annex-cost-command configuration, which can be used to vary the - cost of a remote based on the output of a shell command. - * Fix broken upgrade from V1 repository. Closes: #638584 - - -- Joey Hess <joeyh@debian.org> Fri, 19 Aug 2011 20:34:09 -0400 - -git-annex (3.20110817) unstable; urgency=low - - * Fix shell escaping in rsync special remote. - * addurl: --fast can be used to avoid immediately downloading the url. - * Added support for getting content from git remotes using http (and https). - * Added curl to Debian package dependencies. - - -- Joey Hess <joeyh@debian.org> Wed, 17 Aug 2011 01:29:02 -0400 - -git-annex (3.20110719) unstable; urgency=low - - * add: Be even more robust to avoid ever leaving the file seemingly deleted. - Closes: #634233 - * Bugfix: Make add ../ work. - * Support the standard git -c name=value - * unannex: Clean up use of git commit -a. - - -- Joey Hess <joeyh@debian.org> Tue, 19 Jul 2011 23:39:53 -0400 - -git-annex (3.20110707) unstable; urgency=low - - * Fix sign bug in disk free space checking. - * Bugfix: Forgot to de-escape keys when upgrading. Could result in - bad location log data for keys that contain [&:%] in their names. - (A workaround for this problem is to run git annex fsck.) - * add: Avoid a failure mode that resulted in the file seemingly being - deleted (content put in the annex but no symlink present). - - -- Joey Hess <joeyh@debian.org> Thu, 07 Jul 2011 19:29:39 -0400 - -git-annex (3.20110705) unstable; urgency=low - - * uninit: Delete the git-annex branch and .git/annex/ - * unannex: In --fast mode, file content is left in the annex, and a - hard link made to it. - * uninit: Use unannex in --fast mode, to support unannexing multiple - files that link to the same content. - * Drop the dependency on the haskell curl bindings, use regular haskell HTTP. - * Fix a pipeline stall when upgrading (caused by #624389). - - -- Joey Hess <joeyh@debian.org> Tue, 05 Jul 2011 14:37:39 -0400 - -git-annex (3.20110702) unstable; urgency=low - - * Now the web can be used as a special remote. - This feature replaces the old URL backend. - * addurl: New command to download an url and store it in the annex. - * Sped back up fsck, copy --from, and other commands that often - have to read a lot of information from the git-annex branch. Such - commands are now faster than they were before introduction of the - git-annex branch. - * Always ensure git-annex branch exists. - * Modify location log parser to allow future expansion. - * --force will cause add, etc, to operate on ignored files. - * Avoid mangling encoding when storing the description of repository - and other content. - * cabal can now be used to build git-annex. This is substantially - slower than using make, does not build or install documentation, - does not run the test suite, and is not particularly recommended, - but could be useful to some. - - -- Joey Hess <joeyh@debian.org> Sat, 02 Jul 2011 15:00:18 -0400 - -git-annex (3.20110624) experimental; urgency=low - - * New repository format, annex.version=3. Use `git annex upgrade` to migrate. - * git-annex now stores its logs in a git-annex branch. - * merge: New subcommand. Auto-merges the new git-annex branch. - * Improved handling of bare git repos with annexes. Many more commands will - work in them. - * git-annex is now more robust; it will never leave state files - uncommitted when some other git process comes along and locks the index - at an inconvenient time. - * rsync is now used when copying files from repos on other filesystems. - cp is still used when copying file from repos on the same filesystem, - since --reflink=auto can make it significantly faster on filesystems - such as btrfs. - * Allow --trust etc to specify a repository by name, for temporarily - trusting repositories that are not configured remotes. - * unlock: Made atomic. - * git-union-merge: New git subcommand, that does a generic union merge - operation, and operates efficiently without touching the working tree. - - -- Joey Hess <joeyh@debian.org> Fri, 24 Jun 2011 14:32:18 -0400 - -git-annex (0.20110610) unstable; urgency=low - - * Add --numcopies option. - * Add --trust, --untrust, and --semitrust options. - * get --from is the same as copy --from - * Bugfix: Fix fsck to not think all SHAnE keys are bad. - - -- Joey Hess <joeyh@debian.org> Fri, 10 Jun 2011 11:48:40 -0400 - -git-annex (0.20110601) unstable; urgency=low - - * Minor bugfixes and error message improvements. - * Massively sped up `git annex lock` by avoiding use of the uber-slow - `git reset`, and only running `git checkout` once, even when many files - are being locked. - * Fix locking of files with staged changes. - * Somewhat sped up `git commit` of modifications to unlocked files. - * Build fix for older ghc. - - -- Joey Hess <joeyh@debian.org> Wed, 01 Jun 2011 11:50:47 -0400 - -git-annex (0.20110522) unstable; urgency=low - - * Closer emulation of git's behavior when told to use "foo/.git" as a - git repository instead of just "foo". Closes: #627563 - * Fix bug in --exclude introduced in 0.20110516. - - -- Joey Hess <joeyh@debian.org> Fri, 27 May 2011 20:20:41 -0400 - -git-annex (0.20110521) unstable; urgency=low - - * status: New subcommand to show info about an annex, including its size. - * --backend now overrides any backend configured in .gitattributes files. - * Add --debug option. Closes: #627499 - - -- Joey Hess <joeyh@debian.org> Sat, 21 May 2011 11:52:53 -0400 - -git-annex (0.20110516) unstable; urgency=low - - * Add a few tweaks to make it easy to use the Internet Archive's variant - of S3. In particular, munge key filenames to comply with the IA's filename - limits, disable encryption, support their nonstandard way of creating - buckets, and allow x-archive-* headers to be specified in initremote to - set item metadata. - * Added filename extension preserving variant backends SHA1E, SHA256E, etc. - * migrate: Use current filename when generating new key, for backends - where the filename affects the key name. - * Work around a bug in Network.URI's handling of bracketed ipv6 addresses. - - -- Joey Hess <joeyh@debian.org> Mon, 16 May 2011 14:16:52 -0400 - -git-annex (0.20110503) unstable; urgency=low - - * Fix hasKeyCheap setting for bup and rsync special remotes. - * Add hook special remotes. - * Avoid crashing when an existing key is readded to the annex. - * unused: Now also lists files fsck places in .git/annex/bad/ - * S3: When encryption is enabled, the Amazon S3 login credentials - are stored, encrypted, in .git-annex/remotes.log, so environment - variables need not be set after the remote is initialized. - - -- Joey Hess <joeyh@debian.org> Tue, 03 May 2011 20:56:01 -0400 - -git-annex (0.20110427) unstable; urgency=low - - * Switch back to haskell SHA library, so git-annex remains buildable on - Debian stable. - * Added rsync special remotes. This could be used, for example, to - store annexed content on rsync.net (encrypted naturally). Or anywhere else. - * Bugfix: Avoid pipeline stall when running git annex drop or fsck on a - lot of files. Possibly only occured with ghc 7. - - -- Joey Hess <joeyh@debian.org> Wed, 27 Apr 2011 22:50:26 -0400 - -git-annex (0.20110425) unstable; urgency=low - - * Use haskell Crypto library instead of haskell SHA library. - * Remove testpack from build depends for non x86 architectures where it - is not available. The test suite will not be run if it cannot be compiled. - * Avoid using absolute paths when staging location log, as that can - confuse git when a remote's path contains a symlink. Closes: #621386 - - -- Joey Hess <joeyh@debian.org> Mon, 25 Apr 2011 15:47:00 -0400 - -git-annex (0.20110420) unstable; urgency=low - - * Update Debian build dependencies for ghc 7. - * Debian package is now built with S3 support. - Thanks Joachim Breitner for making this possible. - * Somewhat improved memory usage of S3, still work to do. - Thanks Greg Heartsfield for ongoing work to improve the hS3 library - for git-annex. - - -- Joey Hess <joeyh@debian.org> Thu, 21 Apr 2011 15:00:48 -0400 - -git-annex (0.20110419) unstable; urgency=low - - * Don't run gpg in batch mode, so it can prompt for passphrase when - there is no agent. - * Add missing build dep on dataenc. - * S3: Fix stalls when transferring encrypted data. - * bup: Avoid memory leak when transferring encrypted data. - - -- Joey Hess <joeyh@debian.org> Tue, 19 Apr 2011 21:26:51 -0400 - -git-annex (0.20110417) unstable; urgency=low - - * bup is now supported as a special type of remote. - * The data sent to special remotes (Amazon S3, bup, etc) can be encrypted - using GPG for privacy. - * Use lowercase hash directories for locationlog files, to avoid - some issues with git on OSX with the mixed-case directories. - No migration is needed; the old mixed case hash directories are still - read; new information is written to the new directories. - * Unused files on remotes, particulary special remotes, can now be - identified and dropped, by using "--from remote" with git annex unused - and git annex dropunused. - * Clear up short option confusion between --from and --force (-f is now - --from, and there is no short option for --force). - * Add build depend on perlmagick so docs are consistently built. - Closes: #621410 - * Add doc-base file. Closes: #621408 - * Periodically flush git command queue, to avoid boating memory usage - too much. - * Support "sha1" and "sha512" commands on FreeBSD, and allow building - if any/all SHA commands are not available. Thanks, Fraser Tweedale - - -- Joey Hess <joeyh@debian.org> Sun, 17 Apr 2011 12:00:24 -0400 - -git-annex (0.20110401) experimental; urgency=low - - * Amazon S3 is now supported as a special type of remote. - Warning: Encrypting data before sending it to S3 is not yet supported. - * Note that Amazon S3 support is not built in by default on Debian yet, - as hS3 is not packaged. - * fsck: Ensure that files and directories in .git/annex/objects - have proper permissions. - * Added a special type of remote called a directory remote, which - simply stores files in an arbitrary local directory. - * Bugfix: copy --to --fast never really copied, fixed. - - -- Joey Hess <joeyh@debian.org> Fri, 01 Apr 2011 21:27:22 -0400 - -git-annex (0.20110328) experimental; urgency=low - - * annex.diskreserve can be given in arbitrary units (ie "0.5 gigabytes") - * Generalized remotes handling, laying groundwork for remotes that are - not regular git remotes. (Think Amazon S3.) - * Provide a less expensive version of `git annex copy --to`, enabled - via --fast. This assumes that location tracking information is correct, - rather than contacting the remote for every file. - * Bugfix: Keys could be received into v1 annexes from v2 annexes, via - v1 git-annex-shell. This results in some oddly named keys in the v1 - annex. Recognise and fix those keys when upgrading, instead of crashing. - - -- Joey Hess <joeyh@debian.org> Mon, 28 Mar 2011 10:47:29 -0400 - -git-annex (0.20110325) experimental; urgency=low - - * Free space checking is now done, for transfers of data for keys - that have free space metadata. (Notably, not for SHA* keys generated - with git-annex 0.2x or earlier.) The code is believed to work on - Linux, FreeBSD, and OSX; check compile-time messages to see if it - is not enabled for your OS. - * Add annex.diskreserve config setting, to control how much free space - to reserve for other purposes and avoid using (defaults to 1 mb). - * Add --fast flag, that can enable less expensive, but also less thorough - versions of some commands. - * fsck: In fast mode, avoid checking checksums. - * unused: In fast mode, just show all existing temp files as unused, - and avoid expensive scan for other unused content. - * migrate: Support migrating v1 SHA keys to v2 SHA keys with - size information that can be used for free space checking. - * Fix space leak in fsck and drop commands. - * migrate: Bugfix for case when migrating a file results in a key that - is already present in .git/annex/objects. - * dropunused: Significantly sped up; only read unused log file once. - - -- Joey Hess <joeyh@debian.org> Fri, 25 Mar 2011 00:47:37 -0400 - -git-annex (0.20110320) experimental; urgency=low - - * Fix dropping of files using the URL backend. - * Fix support for remotes with '.' in their names. - * Add version command to show git-annex version as well as repository - version information. - * No longer auto-upgrade to repository format 2, to avoid accidental - upgrades, etc. Use git-annex upgrade when you're ready to run this - version. - - -- Joey Hess <joeyh@debian.org> Sun, 20 Mar 2011 16:36:33 -0400 - -git-annex (0.20110316) experimental; urgency=low - - * New repository format, annex.version=2. - * The first time git-annex is run in an old format repository, it - will automatically upgrade it to the new format, staging all - necessary changes to git. Also added a "git annex upgrade" command. - * Colons are now avoided in filenames, so bare clones of git repos - can be put on USB thumb drives formatted with vFAT or similar - filesystems. - * Added two levels of hashing to object directory and .git-annex logs, - to improve scalability with enormous numbers of annexed - objects. (With one hundred million annexed objects, each - directory would contain fewer than 1024 files.) - * The setkey, fromkey, and dropkey subcommands have changed how - the key is specified. --backend is no longer used with these. - - -- Joey Hess <joeyh@debian.org> Wed, 16 Mar 2011 16:20:23 -0400 - -git-annex (0.24) unstable; urgency=low - - Branched the 0.24 series, which will be maintained for a while to - support v1 git-annex repos, while main development moves to the 0.2011 - series, with v2 git-annex repos. - - * Add Suggests on graphviz. Closes: #618039 - * When adding files to the annex, the symlinks pointing at the annexed - content are made to have the same mtime as the original file. - While git does not preserve that information, this allows a tool - like metastore to be used with annexed files. - (Currently this is only done on systems supporting POSIX 200809.) - - -- Joey Hess <joeyh@debian.org> Wed, 16 Mar 2011 18:35:13 -0400 - -git-annex (0.23) unstable; urgency=low - - * Support ssh remotes with a port specified. - * whereis: New subcommand to show where a file's content has gotten to. - * Rethink filename encoding handling for display. Since filename encoding - may or may not match locale settings, any attempt to decode filenames - will fail for some files. So instead, do all output in binary mode. - - -- Joey Hess <joeyh@debian.org> Sat, 12 Mar 2011 15:02:49 -0400 - -git-annex (0.22) unstable; urgency=low - - * Git annexes can now be attached to bare git repositories. - (Both the local and remote host must have this version of git-annex - installed for it to work.) - * Support filenames that start with a dash; when such a file is passed - to a utility it will be escaped to avoid it being interpreted as an - option. (I went a little overboard and got the type checker involved - in this, so such files are rather comprehensively supported now.) - * New backends: SHA512 SHA384 SHA256 SHA224 - (Supported on systems where corresponding shaNsum commands are available.) - * describe: New subcommand that can set or change the description of - a repository. - * Fix test suite to reap zombies. - (Zombies can be particularly annoying on OSX; thanks to Jimmy Tang - for his help eliminating the infestation... for now.) - * Make test suite not rely on a working cp -pr. - (The Unix wars are still ON!) - * Look for dir.git directories the same as git does. - * Support remote urls specified as relative paths. - * Support non-ssh remote paths that contain tilde expansions. - * fsck: Check for and repair location log damage. - * Bugfix: When fsck detected and moved away corrupt file content, it did - not update the location log. - - -- Joey Hess <joeyh@debian.org> Fri, 04 Mar 2011 15:10:57 -0400 - -git-annex (0.21) unstable; urgency=low - - * test: Don't rely on chmod -R working. - * unannex: Fix recently introduced bug when attempting to unannex more - than one file at a time. - * test: Set git user name and email in case git can't guess values. - * Fix display of unicode filenames. - - -- Joey Hess <joeyh@debian.org> Fri, 11 Feb 2011 23:21:08 -0400 - -git-annex (0.20) unstable; urgency=low - - * Preserve specified file ordering when instructed to act on multiple - files or directories. For example, "git annex get a b" will now always - get "a" before "b". Previously it could operate in either order. - * unannex: Commit staged changes at end, to avoid some confusing behavior - with the pre-commit hook, which would see some types of commits after - an unannex as checking in of an unlocked file. - * map: New subcommand that uses graphviz to display a nice map of - the git repository network. - * Deal with the mtl/monads-fd conflict. - * configure: Check for sha1sum. - - -- Joey Hess <joeyh@debian.org> Tue, 08 Feb 2011 18:57:24 -0400 - -git-annex (0.19) unstable; urgency=low - - * configure: Support using the uuidgen command if the uuid command is - not available. - * Allow --exclude to be specified more than once. - * There are now three levels of repository trust. - * untrust: Now marks the current repository as untrusted. - * semitrust: Now restores the default trust level. (What untrust used to do.) - * fsck, drop: Take untrusted repositories into account. - * Bugfix: Files were copied from trusted remotes first even if their - annex.cost was higher than other remotes. - * Improved temp file handling. Transfers of content can now be resumed - from temp files later; the resume does not have to be the immediate - next git-annex run. - * unused: Include partially transferred content in the list. - * Bugfix: Running a second git-annex while a first has a transfer in - progress no longer deletes the first processes's temp file. - - -- Joey Hess <joeyh@debian.org> Fri, 28 Jan 2011 14:31:37 -0400 - -git-annex (0.18) unstable; urgency=low - - * Bugfix: `copy --to` and `move --to` forgot to stage location log changes - after transferring the file to the remote repository. - (Did not affect ssh remotes.) - * fsck: Fix bug in moving of corrupted files to .git/annex/bad/ - * migrate: Fix support for --backend option. - * unlock: Fix behavior when file content is not present. - * Test suite improvements. Current top-level test coverage: 80% - - -- Joey Hess <joeyh@debian.org> Fri, 14 Jan 2011 14:17:44 -0400 - -git-annex (0.17) unstable; urgency=low - - * unannex: Now skips files whose content is not present, rather than - it being an error. - * New migrate subcommand can be used to switch files to using a different - backend, safely and with no duplication of content. - * bugfix: Fix crash caused by empty key name. (Thanks Henrik for reporting.) - - -- Joey Hess <joeyh@debian.org> Sun, 09 Jan 2011 10:04:11 -0400 - -git-annex (0.16) unstable; urgency=low - - * git-annex-shell: Avoid exposing any git repo config except for the - annex.uuid when doing configlist. - * bugfix: Running `move --to` with a remote whose UUID was not yet known - could result in git-annex not recording on the local side where the - file was moved to. This could not result in data loss, or even a - significant problem, since the remote *did* record that it had the file. - * Also, add a general guard to detect attempts to record information - about repositories with missing UUIDs. - * bugfix: Running `move --to` with a non-ssh remote failed. - * bugfix: Running `copy --to` with a non-ssh remote actually did a move. - * Many test suite improvements. Current top-level test coverage: 65% - - -- Joey Hess <joeyh@debian.org> Fri, 07 Jan 2011 14:33:13 -0400 - -git-annex (0.15) unstable; urgency=low - - * Support scp-style urls for remotes (host:path). - * Support ssh urls containing "~". - * Add trust and untrust subcommands, to allow configuring repositories - that are trusted to retain files without explicit checking. - * Fix bug in numcopies handling when multiple remotes pointed to the - same repository. - * Introduce the git-annex-shell command. It's now possible to make - a user have it as a restricted login shell, similar to git-shell. - * Note that git-annex will always use git-annex-shell when accessing - a ssh remote, so all of your remotes need to be upgraded to this - version of git-annex at the same time. - * Now rsync is exclusively used for copying files to and from remotes. - scp is not longer supported. - - -- Joey Hess <joeyh@debian.org> Fri, 31 Dec 2010 22:00:52 -0400 - -git-annex (0.14) unstable; urgency=low - - * Bugfix to git annex unused in a repository with nothing yet annexed. - * Support upgrading from a v0 annex with nothing in it. - * Avoid multiple calls to git ls-files when passed eg, "*". - - -- Joey Hess <joeyh@debian.org> Fri, 24 Dec 2010 17:38:48 -0400 - -git-annex (0.13) unstable; urgency=low - - * Makefile: Install man page and html (when built). - * Makefile: Add GHCFLAGS variable. - * Fix upgrade from 0.03. - * Support remotes using git+ssh and ssh+git as protocol. - Closes: #607056 - - -- Joey Hess <joeyh@debian.org> Tue, 14 Dec 2010 13:05:10 -0400 - -git-annex (0.12) unstable; urgency=low - - * Add --exclude option to exclude files from processing. - * mwdn2man: Fix a bug in newline supression. Closes: #606578 - * Bugfix to git annex add of an unlocked file in a subdir. Closes: #606579 - * Makefile: Add PREFIX variable. - - -- Joey Hess <joeyh@debian.org> Sat, 11 Dec 2010 17:32:00 -0400 - -git-annex (0.11) unstable; urgency=low - - * If available, rsync will be used for file transfers from remote - repositories. This allows resuming interrupted transfers. - * Added remote.annex-rsync-options. - * Avoid deleting temp files when rsync fails. - * Improve detection of version 0 repos. - * Add uninit subcommand. Closes: #605749 - - -- Joey Hess <joeyh@debian.org> Sat, 04 Dec 2010 17:27:42 -0400 - -git-annex (0.10) unstable; urgency=low - - * In .gitattributes, the annex.numcopies attribute can be used - to control the number of copies to retain of different types of files. - * Bugfix: Always correctly handle gitattributes when in a subdirectory of - the repository. (Had worked ok for ones like "*.mp3", but failed for - ones like "dir/*".) - * fsck: Fix warning about not enough copies of a file, when locations - are known, but are not available in currently configured remotes. - * precommit: Optimise to avoid calling git-check-attr more than once. - * The git-annex-backend attribute has been renamed to annex.backend. - - -- Joey Hess <joeyh@debian.org> Sun, 28 Nov 2010 19:28:05 -0400 - -git-annex (0.09) unstable; urgency=low - - * Add copy subcommand. - * Fix bug in setkey subcommand triggered by move --to. - - -- Joey Hess <joeyh@debian.org> Sat, 27 Nov 2010 17:14:59 -0400 - -git-annex (0.08) unstable; urgency=low - - * Fix `git annex add ../foo` (when ran in a subdir of the repo). - * Add configure step to build process. - * Only use cp -a if it is supported, falling back to cp -p or plain cp - as needed for portability. - * cp --reflink=auto is used if supported, and will make git annex unlock - much faster on filesystems like btrfs that support copy on write. - - -- Joey Hess <joeyh@debian.org> Sun, 21 Nov 2010 13:45:44 -0400 - -git-annex (0.07) unstable; urgency=low - - * find: New subcommand. - * unused: New subcommand, finds unused data. (Split out from fsck.) - * dropunused: New subcommand, provides for easy dropping of unused keys - by number, as listed by the unused subcommand. - * fsck: Print warnings to stderr; --quiet can now be used to only see - problems. - - -- Joey Hess <joeyh@debian.org> Mon, 15 Nov 2010 18:41:50 -0400 - -git-annex (0.06) unstable; urgency=low - - * fsck: Check if annex.numcopies is satisfied. - * fsck: Verify the sha1 of files when the SHA1 backend is used. - * fsck: Verify the size of files when the WORM backend is used. - * fsck: Allow specifying individual files if fscking everything - is not desired. - * fsck: Fix bug, introduced in 0.04, in detection of unused data. - - -- Joey Hess <joeyh@debian.org> Sat, 13 Nov 2010 16:24:29 -0400 - -git-annex (0.05) unstable; urgency=low - - * Optimize both pre-commit and lock subcommands to not call git diff - on every file being committed/locked. - (This actually also works around a bug in ghc, that caused - git-annex 0.04 pre-commit to sometimes corrupt filename being read - from git ls-files and fail. - See <http://hackage.haskell.org/trac/ghc/ticket/4493> - The excessive number of calls made by pre-commit exposed the ghc bug. - Thanks Josh Triplett for the debugging.) - * Build with -O2. - - -- Joey Hess <joeyh@debian.org> Thu, 11 Nov 2010 18:31:09 -0400 - -git-annex (0.04) unstable; urgency=low - - * Add unlock subcommand, which replaces the symlink with a copy of - the file's content in preparation of changing it. The "edit" subcommand - is an alias for unlock. - * Add lock subcommand. - * Unlocked files will now automatically be added back into the annex when - committed (and the updated symlink committed), by some magic in the - pre-commit hook. - * The SHA1 backend is now fully usable. - * Add annex.version, which will be used to automate upgrades - between incompatible versions. - * Reorganised the layout of .git/annex/ - * The new layout will be automatically upgraded to the first time - git-annex is used in a repository with the old layout. - * Note that git-annex 0.04 cannot transfer content from old repositories - that have not yet been upgraded. - * Annexed file contents are now made unwritable and put in unwriteable - directories, to avoid them accidentially being removed or modified. - (Thanks Josh Triplett for the idea.) - * Add build dep on libghc6-testpack-dev. Closes: #603016 - * Avoid using runghc to run test suite as it is not available on all - architectures. Closes: #603006 - - -- Joey Hess <joeyh@debian.org> Wed, 10 Nov 2010 14:23:23 -0400 - -git-annex (0.03) unstable; urgency=low - - * Fix support for file:// remotes. - * Add --verbose - * Fix SIGINT handling. - * Fix handling of files with unusual characters in their name. - * Fixed memory leak; git-annex no longer reads the whole file list - from git before starting, and will be much faster with large repos. - * Fix crash on unknown symlinks. - * Added remote.annex-scp-options and remote.annex-ssh-options. - * The backends to use when adding different sets of files can be configured - via gitattributes. - * In .gitattributes, the git-annex-backend attribute can be set to the - names of backends to use when adding different types of files. - * Add fsck subcommand. (For now it only finds unused key contents in the - annex.) - - -- Joey Hess <joeyh@debian.org> Sun, 07 Nov 2010 18:26:04 -0400 - -git-annex (0.02) unstable; urgency=low - - * Can scp annexed files from remote hosts, and check remote hosts for - file content when dropping files. - * New move subcommand, that makes it easy to move file contents from - or to a remote. - * New fromkey subcommand, for registering urls, etc. - * git-annex init will now set up a pre-commit hook that fixes up symlinks - before they are committed, to ensure that moving symlinks around does not - break them. - * More intelligent and fast staging of modified files; git add coalescing. - * Add remote.annex-ignore git config setting to allow completly disabling - a given remote. - * --from/--to can be used to control the remote repository that git-annex - uses. - * --quiet can be used to avoid verbose output - * New plumbing-level dropkey and addkey subcommands. - * Lots of bug fixes. - - -- Joey Hess <joeyh@debian.org> Wed, 27 Oct 2010 16:39:29 -0400 - -git-annex (0.01) unstable; urgency=low - - * First prerelease. - - -- Joey Hess <joeyh@debian.org> Wed, 20 Oct 2010 12:54:24 -0400 +../CHANGELOG
\ No newline at end of file diff --git a/debian/copyright b/debian/copyright index 6620962b6..dc5f40a22 100644..120000 --- a/debian/copyright +++ b/debian/copyright @@ -1,786 +1 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Source: native package - -Files: * -Copyright: © 2010-2016 Joey Hess <id@joeyh.name> -License: GPL-3+ - -Files: Assistant/WebApp.hs Assistant/WebApp/* templates/* static/* -Copyright: © 2012-2016 Joey Hess <id@joeyh.name> - © 2014 Sören Brunk -License: AGPL-3+ - -Files: Remote/Ddar.hs -Copyright: © 2011 Joey Hess <id@joeyh.name> - © 2014 Robie Basak <robie@justgohome.co.uk> -License: GPL-3+ - -Files: Utility/ThreadScheduler.hs -Copyright: 2011 Bas van Dijk & Roel van Dijk - 2012, 2013 Joey Hess <id@joeyh.name> -License: BSD-2-clause - -Files: Utility/* -Copyright: 2012-2016 Joey Hess <id@joeyh.name> -License: BSD-2-clause - -Files: Utility/Gpg.hs Utility/DirWatcher* -Copyright: © 2010-2014 Joey Hess <id@joeyh.name> -License: GPL-3+ - -Files: doc/logo* */favicon.ico standalone/osx/git-annex.app/Contents/Resources/git-annex.icns standalone/android/icons/* -Copyright: 2007 Henrik Nyh <http://henrik.nyh.se/> - 2010 Joey Hess <id@joeyh.name> - 2013 John Lawrence -License: other - Free to modify and redistribute with due credit, and obviously free to use. - -Files: Annex/DirHashes.hs -Copyright: 2001 Ian Lynagh - 2010-2015 Joey Hess <id@joeyh.name> -License: GPL-3+ - -Files: doc/tips/automatically_adding_metadata/pre-commit-annex -Copyright: 2014 Joey Hess <id@joeyh.name> - 2016 Klaus Ethgen <Klaus@Ethgen.ch> -License: GPL-3+ - -Files: static/jquery* -Copyright: © 2005-2011 by John Resig, Branden Aaron & Jörn Zaefferer - © 2011 The Dojo Foundation -License: MIT or GPL-2 - The full text of version 2 of the GPL is distributed in - /usr/share/common-licenses/GPL-2 on Debian systems. The text of the MIT - license follows: - . - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - . - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE - LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Files: static/*/bootstrap* static/*/glyphicons-halflings* -Copyright: 2012-2014 Twitter, Inc. -License: MIT-twitter - Copyright (c) 2011-2014 Twitter, Inc - . - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - . - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - -License: GPL-3+ - The full text of version 3 of the GPL is distributed as doc/license/GPL in - this package's source, or in /usr/share/common-licenses/GPL-3 on - Debian systems. - -License: BSD-2-clause - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - . - THIS SOFTWARE IS PROVIDED BY AUTHORS AND CONTRIBUTORS ``AS IS'' AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - -License: AGPL-3+ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - . - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - . - Preamble - . - The GNU Affero General Public License is a free, copyleft license for - software and other kinds of works, specifically designed to ensure - cooperation with the community in the case of network server software. - . - The licenses for most software and other practical works are designed - to take away your freedom to share and change the works. By contrast, - our General Public Licenses are intended to guarantee your freedom to - share and change all versions of a program--to make sure it remains free - software for all its users. - . - When we speak of free software, we are referring to freedom, not - price. Our General Public Licenses are designed to make sure that you - have the freedom to distribute copies of free software (and charge for - them if you wish), that you receive source code or can get it if you - want it, that you can change the software or use pieces of it in new - free programs, and that you know you can do these things. - . - Developers that use our General Public Licenses protect your rights - with two steps: (1) assert copyright on the software, and (2) offer - you this License which gives you legal permission to copy, distribute - and/or modify the software. - . - A secondary benefit of defending all users' freedom is that - improvements made in alternate versions of the program, if they - receive widespread use, become available for other developers to - incorporate. Many developers of free software are heartened and - encouraged by the resulting cooperation. However, in the case of - software used on network servers, this result may fail to come about. - The GNU General Public License permits making a modified version and - letting the public access it on a server without ever releasing its - source code to the public. - . - The GNU Affero General Public License is designed specifically to - ensure that, in such cases, the modified source code becomes available - to the community. It requires the operator of a network server to - provide the source code of the modified version running there to the - users of that server. Therefore, public use of a modified version, on - a publicly accessible server, gives the public access to the source - code of the modified version. - . - An older license, called the Affero General Public License and - published by Affero, was designed to accomplish similar goals. This is - a different license, not a version of the Affero GPL, but Affero has - released a new version of the Affero GPL which permits relicensing under - this license. - . - The precise terms and conditions for copying, distribution and - modification follow. - . - TERMS AND CONDITIONS - . - 0. Definitions. - . - "This License" refers to version 3 of the GNU Affero General Public License. - . - "Copyright" also means copyright-like laws that apply to other kinds of - works, such as semiconductor masks. - . - "The Program" refers to any copyrightable work licensed under this - License. Each licensee is addressed as "you". "Licensees" and - "recipients" may be individuals or organizations. - . - To "modify" a work means to copy from or adapt all or part of the work - in a fashion requiring copyright permission, other than the making of an - exact copy. The resulting work is called a "modified version" of the - earlier work or a work "based on" the earlier work. - . - A "covered work" means either the unmodified Program or a work based - on the Program. - . - To "propagate" a work means to do anything with it that, without - permission, would make you directly or secondarily liable for - infringement under applicable copyright law, except executing it on a - computer or modifying a private copy. Propagation includes copying, - distribution (with or without modification), making available to the - public, and in some countries other activities as well. - . - To "convey" a work means any kind of propagation that enables other - parties to make or receive copies. Mere interaction with a user through - a computer network, with no transfer of a copy, is not conveying. - . - An interactive user interface displays "Appropriate Legal Notices" - to the extent that it includes a convenient and prominently visible - feature that (1) displays an appropriate copyright notice, and (2) - tells the user that there is no warranty for the work (except to the - extent that warranties are provided), that licensees may convey the - work under this License, and how to view a copy of this License. If - the interface presents a list of user commands or options, such as a - menu, a prominent item in the list meets this criterion. - . - 1. Source Code. - . - The "source code" for a work means the preferred form of the work - for making modifications to it. "Object code" means any non-source - form of a work. - . - A "Standard Interface" means an interface that either is an official - standard defined by a recognized standards body, or, in the case of - interfaces specified for a particular programming language, one that - is widely used among developers working in that language. - . - The "System Libraries" of an executable work include anything, other - than the work as a whole, that (a) is included in the normal form of - packaging a Major Component, but which is not part of that Major - Component, and (b) serves only to enable use of the work with that - Major Component, or to implement a Standard Interface for which an - implementation is available to the public in source code form. A - "Major Component", in this context, means a major essential component - (kernel, window system, and so on) of the specific operating system - (if any) on which the executable work runs, or a compiler used to - produce the work, or an object code interpreter used to run it. - . - The "Corresponding Source" for a work in object code form means all - the source code needed to generate, install, and (for an executable - work) run the object code and to modify the work, including scripts to - control those activities. However, it does not include the work's - System Libraries, or general-purpose tools or generally available free - programs which are used unmodified in performing those activities but - which are not part of the work. For example, Corresponding Source - includes interface definition files associated with source files for - the work, and the source code for shared libraries and dynamically - linked subprograms that the work is specifically designed to require, - such as by intimate data communication or control flow between those - subprograms and other parts of the work. - . - The Corresponding Source need not include anything that users - can regenerate automatically from other parts of the Corresponding - Source. - . - The Corresponding Source for a work in source code form is that - same work. - . - 2. Basic Permissions. - . - All rights granted under this License are granted for the term of - copyright on the Program, and are irrevocable provided the stated - conditions are met. This License explicitly affirms your unlimited - permission to run the unmodified Program. The output from running a - covered work is covered by this License only if the output, given its - content, constitutes a covered work. This License acknowledges your - rights of fair use or other equivalent, as provided by copyright law. - . - You may make, run and propagate covered works that you do not - convey, without conditions so long as your license otherwise remains - in force. You may convey covered works to others for the sole purpose - of having them make modifications exclusively for you, or provide you - with facilities for running those works, provided that you comply with - the terms of this License in conveying all material for which you do - not control copyright. Those thus making or running the covered works - for you must do so exclusively on your behalf, under your direction - and control, on terms that prohibit them from making any copies of - your copyrighted material outside their relationship with you. - . - Conveying under any other circumstances is permitted solely under - the conditions stated below. Sublicensing is not allowed; section 10 - makes it unnecessary. - . - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - . - No covered work shall be deemed part of an effective technological - measure under any applicable law fulfilling obligations under article - 11 of the WIPO copyright treaty adopted on 20 December 1996, or - similar laws prohibiting or restricting circumvention of such - measures. - . - When you convey a covered work, you waive any legal power to forbid - circumvention of technological measures to the extent such circumvention - is effected by exercising rights under this License with respect to - the covered work, and you disclaim any intention to limit operation or - modification of the work as a means of enforcing, against the work's - users, your or third parties' legal rights to forbid circumvention of - technological measures. - . - 4. Conveying Verbatim Copies. - . - You may convey verbatim copies of the Program's source code as you - receive it, in any medium, provided that you conspicuously and - appropriately publish on each copy an appropriate copyright notice; - keep intact all notices stating that this License and any - non-permissive terms added in accord with section 7 apply to the code; - keep intact all notices of the absence of any warranty; and give all - recipients a copy of this License along with the Program. - . - You may charge any price or no price for each copy that you convey, - and you may offer support or warranty protection for a fee. - . - 5. Conveying Modified Source Versions. - . - You may convey a work based on the Program, or the modifications to - produce it from the Program, in the form of source code under the - terms of section 4, provided that you also meet all of these conditions: - . - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - . - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - . - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - . - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - . - A compilation of a covered work with other separate and independent - works, which are not by their nature extensions of the covered work, - and which are not combined with it such as to form a larger program, - in or on a volume of a storage or distribution medium, is called an - "aggregate" if the compilation and its resulting copyright are not - used to limit the access or legal rights of the compilation's users - beyond what the individual works permit. Inclusion of a covered work - in an aggregate does not cause this License to apply to the other - parts of the aggregate. - . - 6. Conveying Non-Source Forms. - . - You may convey a covered work in object code form under the terms - of sections 4 and 5, provided that you also convey the - machine-readable Corresponding Source under the terms of this License, - in one of these ways: - . - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - . - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - . - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - . - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - . - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - . - A separable portion of the object code, whose source code is excluded - from the Corresponding Source as a System Library, need not be - included in conveying the object code work. - . - A "User Product" is either (1) a "consumer product", which means any - tangible personal property which is normally used for personal, family, - or household purposes, or (2) anything designed or sold for incorporation - into a dwelling. In determining whether a product is a consumer product, - doubtful cases shall be resolved in favor of coverage. For a particular - product received by a particular user, "normally used" refers to a - typical or common use of that class of product, regardless of the status - of the particular user or of the way in which the particular user - actually uses, or expects or is expected to use, the product. A product - is a consumer product regardless of whether the product has substantial - commercial, industrial or non-consumer uses, unless such uses represent - the only significant mode of use of the product. - . - "Installation Information" for a User Product means any methods, - procedures, authorization keys, or other information required to install - and execute modified versions of a covered work in that User Product from - a modified version of its Corresponding Source. The information must - suffice to ensure that the continued functioning of the modified object - code is in no case prevented or interfered with solely because - modification has been made. - . - If you convey an object code work under this section in, or with, or - specifically for use in, a User Product, and the conveying occurs as - part of a transaction in which the right of possession and use of the - User Product is transferred to the recipient in perpetuity or for a - fixed term (regardless of how the transaction is characterized), the - Corresponding Source conveyed under this section must be accompanied - by the Installation Information. But this requirement does not apply - if neither you nor any third party retains the ability to install - modified object code on the User Product (for example, the work has - been installed in ROM). - . - The requirement to provide Installation Information does not include a - requirement to continue to provide support service, warranty, or updates - for a work that has been modified or installed by the recipient, or for - the User Product in which it has been modified or installed. Access to a - network may be denied when the modification itself materially and - adversely affects the operation of the network or violates the rules and - protocols for communication across the network. - . - Corresponding Source conveyed, and Installation Information provided, - in accord with this section must be in a format that is publicly - documented (and with an implementation available to the public in - source code form), and must require no special password or key for - unpacking, reading or copying. - . - 7. Additional Terms. - . - "Additional permissions" are terms that supplement the terms of this - License by making exceptions from one or more of its conditions. - Additional permissions that are applicable to the entire Program shall - be treated as though they were included in this License, to the extent - that they are valid under applicable law. If additional permissions - apply only to part of the Program, that part may be used separately - under those permissions, but the entire Program remains governed by - this License without regard to the additional permissions. - . - When you convey a copy of a covered work, you may at your option - remove any additional permissions from that copy, or from any part of - it. (Additional permissions may be written to require their own - removal in certain cases when you modify the work.) You may place - additional permissions on material, added by you to a covered work, - for which you have or can give appropriate copyright permission. - . - Notwithstanding any other provision of this License, for material you - add to a covered work, you may (if authorized by the copyright holders of - that material) supplement the terms of this License with terms: - . - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - . - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - . - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - . - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - . - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - . - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - . - All other non-permissive additional terms are considered "further - restrictions" within the meaning of section 10. If the Program as you - received it, or any part of it, contains a notice stating that it is - governed by this License along with a term that is a further - restriction, you may remove that term. If a license document contains - a further restriction but permits relicensing or conveying under this - License, you may add to a covered work material governed by the terms - of that license document, provided that the further restriction does - not survive such relicensing or conveying. - . - If you add terms to a covered work in accord with this section, you - must place, in the relevant source files, a statement of the - additional terms that apply to those files, or a notice indicating - where to find the applicable terms. - . - Additional terms, permissive or non-permissive, may be stated in the - form of a separately written license, or stated as exceptions; - the above requirements apply either way. - . - 8. Termination. - . - You may not propagate or modify a covered work except as expressly - provided under this License. Any attempt otherwise to propagate or - modify it is void, and will automatically terminate your rights under - this License (including any patent licenses granted under the third - paragraph of section 11). - . - However, if you cease all violation of this License, then your - license from a particular copyright holder is reinstated (a) - provisionally, unless and until the copyright holder explicitly and - finally terminates your license, and (b) permanently, if the copyright - holder fails to notify you of the violation by some reasonable means - prior to 60 days after the cessation. - . - Moreover, your license from a particular copyright holder is - reinstated permanently if the copyright holder notifies you of the - violation by some reasonable means, this is the first time you have - received notice of violation of this License (for any work) from that - copyright holder, and you cure the violation prior to 30 days after - your receipt of the notice. - . - Termination of your rights under this section does not terminate the - licenses of parties who have received copies or rights from you under - this License. If your rights have been terminated and not permanently - reinstated, you do not qualify to receive new licenses for the same - material under section 10. - . - 9. Acceptance Not Required for Having Copies. - . - You are not required to accept this License in order to receive or - run a copy of the Program. Ancillary propagation of a covered work - occurring solely as a consequence of using peer-to-peer transmission - to receive a copy likewise does not require acceptance. However, - nothing other than this License grants you permission to propagate or - modify any covered work. These actions infringe copyright if you do - not accept this License. Therefore, by modifying or propagating a - covered work, you indicate your acceptance of this License to do so. - . - 10. Automatic Licensing of Downstream Recipients. - . - Each time you convey a covered work, the recipient automatically - receives a license from the original licensors, to run, modify and - propagate that work, subject to this License. You are not responsible - for enforcing compliance by third parties with this License. - . - An "entity transaction" is a transaction transferring control of an - organization, or substantially all assets of one, or subdividing an - organization, or merging organizations. If propagation of a covered - work results from an entity transaction, each party to that - transaction who receives a copy of the work also receives whatever - licenses to the work the party's predecessor in interest had or could - give under the previous paragraph, plus a right to possession of the - Corresponding Source of the work from the predecessor in interest, if - the predecessor has it or can get it with reasonable efforts. - . - You may not impose any further restrictions on the exercise of the - rights granted or affirmed under this License. For example, you may - not impose a license fee, royalty, or other charge for exercise of - rights granted under this License, and you may not initiate litigation - (including a cross-claim or counterclaim in a lawsuit) alleging that - any patent claim is infringed by making, using, selling, offering for - sale, or importing the Program or any portion of it. - . - 11. Patents. - . - A "contributor" is a copyright holder who authorizes use under this - License of the Program or a work on which the Program is based. The - work thus licensed is called the contributor's "contributor version". - . - A contributor's "essential patent claims" are all patent claims - owned or controlled by the contributor, whether already acquired or - hereafter acquired, that would be infringed by some manner, permitted - by this License, of making, using, or selling its contributor version, - but do not include claims that would be infringed only as a - consequence of further modification of the contributor version. For - purposes of this definition, "control" includes the right to grant - patent sublicenses in a manner consistent with the requirements of - this License. - . - Each contributor grants you a non-exclusive, worldwide, royalty-free - patent license under the contributor's essential patent claims, to - make, use, sell, offer for sale, import and otherwise run, modify and - propagate the contents of its contributor version. - . - In the following three paragraphs, a "patent license" is any express - agreement or commitment, however denominated, not to enforce a patent - (such as an express permission to practice a patent or covenant not to - sue for patent infringement). To "grant" such a patent license to a - party means to make such an agreement or commitment not to enforce a - patent against the party. - . - If you convey a covered work, knowingly relying on a patent license, - and the Corresponding Source of the work is not available for anyone - to copy, free of charge and under the terms of this License, through a - publicly available network server or other readily accessible means, - then you must either (1) cause the Corresponding Source to be so - available, or (2) arrange to deprive yourself of the benefit of the - patent license for this particular work, or (3) arrange, in a manner - consistent with the requirements of this License, to extend the patent - license to downstream recipients. "Knowingly relying" means you have - actual knowledge that, but for the patent license, your conveying the - covered work in a country, or your recipient's use of the covered work - in a country, would infringe one or more identifiable patents in that - country that you have reason to believe are valid. - . - If, pursuant to or in connection with a single transaction or - arrangement, you convey, or propagate by procuring conveyance of, a - covered work, and grant a patent license to some of the parties - receiving the covered work authorizing them to use, propagate, modify - or convey a specific copy of the covered work, then the patent license - you grant is automatically extended to all recipients of the covered - work and works based on it. - . - A patent license is "discriminatory" if it does not include within - the scope of its coverage, prohibits the exercise of, or is - conditioned on the non-exercise of one or more of the rights that are - specifically granted under this License. You may not convey a covered - work if you are a party to an arrangement with a third party that is - in the business of distributing software, under which you make payment - to the third party based on the extent of your activity of conveying - the work, and under which the third party grants, to any of the - parties who would receive the covered work from you, a discriminatory - patent license (a) in connection with copies of the covered work - conveyed by you (or copies made from those copies), or (b) primarily - for and in connection with specific products or compilations that - contain the covered work, unless you entered into that arrangement, - or that patent license was granted, prior to 28 March 2007. - . - Nothing in this License shall be construed as excluding or limiting - any implied license or other defenses to infringement that may - otherwise be available to you under applicable patent law. - . - 12. No Surrender of Others' Freedom. - . - If conditions are imposed on you (whether by court order, agreement or - otherwise) that contradict the conditions of this License, they do not - excuse you from the conditions of this License. If you cannot convey a - covered work so as to satisfy simultaneously your obligations under this - License and any other pertinent obligations, then as a consequence you may - not convey it at all. For example, if you agree to terms that obligate you - to collect a royalty for further conveying from those to whom you convey - the Program, the only way you could satisfy both those terms and this - License would be to refrain entirely from conveying the Program. - . - 13. Remote Network Interaction; Use with the GNU General Public License. - . - Notwithstanding any other provision of this License, if you modify the - Program, your modified version must prominently offer all users - interacting with it remotely through a computer network (if your version - supports such interaction) an opportunity to receive the Corresponding - Source of your version by providing access to the Corresponding Source - from a network server at no charge, through some standard or customary - means of facilitating copying of software. This Corresponding Source - shall include the Corresponding Source for any work covered by version 3 - of the GNU General Public License that is incorporated pursuant to the - following paragraph. - . - Notwithstanding any other provision of this License, you have - permission to link or combine any covered work with a work licensed - under version 3 of the GNU General Public License into a single - combined work, and to convey the resulting work. The terms of this - License will continue to apply to the part which is the covered work, - but the work with which it is combined will remain governed by version - 3 of the GNU General Public License. - . - 14. Revised Versions of this License. - . - The Free Software Foundation may publish revised and/or new versions of - the GNU Affero General Public License from time to time. Such new versions - will be similar in spirit to the present version, but may differ in detail to - address new problems or concerns. - . - Each version is given a distinguishing version number. If the - Program specifies that a certain numbered version of the GNU Affero General - Public License "or any later version" applies to it, you have the - option of following the terms and conditions either of that numbered - version or of any later version published by the Free Software - Foundation. If the Program does not specify a version number of the - GNU Affero General Public License, you may choose any version ever published - by the Free Software Foundation. - . - If the Program specifies that a proxy can decide which future - versions of the GNU Affero General Public License can be used, that proxy's - public statement of acceptance of a version permanently authorizes you - to choose that version for the Program. - . - Later license versions may give you additional or different - permissions. However, no additional obligations are imposed on any - author or copyright holder as a result of your choosing to follow a - later version. - . - 15. Disclaimer of Warranty. - . - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY - APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT - HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY - OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, - THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM - IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF - ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - . - 16. Limitation of Liability. - . - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING - WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS - THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY - GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE - USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF - DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD - PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), - EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGES. - . - 17. Interpretation of Sections 15 and 16. - . - If the disclaimer of warranty and limitation of liability provided - above cannot be given local legal effect according to their terms, - reviewing courts shall apply local law that most closely approximates - an absolute waiver of all civil liability in connection with the - Program, unless a warranty or assumption of liability accompanies a - copy of the Program in return for a fee. - . - END OF TERMS AND CONDITIONS - . - How to Apply These Terms to Your New Programs - . - If you develop a new program, and you want it to be of the greatest - possible use to the public, the best way to achieve this is to make it - free software which everyone can redistribute and change under these terms. - . - To do so, attach the following notices to the program. It is safest - to attach them to the start of each source file to most effectively - state the exclusion of warranty; and each file should have at least - the "copyright" line and a pointer to where the full notice is found. - . - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - . - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - . - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - . - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - . - Also add information on how to contact you by electronic and paper mail. - . - If your software can interact with users remotely through a computer - network, you should also make sure that it provides a way for users to - get its source. For example, if your program is a web application, its - interface could display a "Source" link that leads users to an archive - of the code. There are many ways you could offer source, and different - solutions will be better for different programs; see section 13 for the - specific requirements. - . - You should also get your employer (if you work as a programmer) or school, - if any, to sign a "copyright disclaimer" for the program, if necessary. - For more information on this, and how to apply and follow the GNU AGPL, see - <http://www.gnu.org/licenses/>. +../COPYRIGHT
\ No newline at end of file diff --git a/doc/download.mdwn b/doc/download.mdwn index a52238bd7..871083ff7 100644 --- a/doc/download.mdwn +++ b/doc/download.mdwn @@ -8,8 +8,9 @@ Other mirrors of the git repository: * [at github](https://github.com/joeyh/git-annex) Releases of git-annex are uploaded -[to hackage](http://hackage.haskell.org/package/git-annex). Get your -tarballs there, if you need them. +[to hackage](http://hackage.haskell.org/package/git-annex). Note that the +tarball there is not the complete git-annex source tree, but only a subset +to make `cabal install` work. Use git to checkout the full source tree. Some operating systems include git-annex in easily prepackaged form and others need some manual work. See [[install]] for details. diff --git a/git-annex.cabal b/git-annex.cabal index 1d16f9bac..e075d01ec 100644 --- a/git-annex.cabal +++ b/git-annex.cabal @@ -7,7 +7,6 @@ Author: Joey Hess Stability: Stable Copyright: 2010-2014 Joey Hess License-File: COPYRIGHT -Extra-Source-Files: CHANGELOG Homepage: http://git-annex.branchable.com/ Build-type: Custom Category: Utility @@ -30,6 +29,230 @@ Description: noticing when files are changed, and automatically committing them to git and transferring them to other computers. The git-annex webapp makes it easy to set up and use git-annex this way. +-- The tarball uploaded to hackage does not include every non-haskell +-- file in the git repo. The website is left out, so is build machinary for +-- standalone apps, and packages. Include only files that are needed +-- make cabal install git-annex work. +Extra-Source-Files: + stack.yaml + README + CHANGELOG + NEWS + doc/license/GPL + doc/license/AGPL + doc/git-annex.mdwn + doc/git-annex-add.mdwn + doc/git-annex-addunused.mdwn + doc/git-annex-addurl.mdwn + doc/git-annex-adjust.mdwn + doc/git-annex-assistant.mdwn + doc/git-annex-calckey.mdwn + doc/git-annex-checkpresentkey.mdwn + doc/git-annex-contentlocation.mdwn + doc/git-annex-copy.mdwn + doc/git-annex-dead.mdwn + doc/git-annex-describe.mdwn + doc/git-annex-diffdriver.mdwn + doc/git-annex-direct.mdwn + doc/git-annex-drop.mdwn + doc/git-annex-dropkey.mdwn + doc/git-annex-dropunused.mdwn + doc/git-annex-edit.mdwn + doc/git-annex-enableremote.mdwn + doc/git-annex-examinekey.mdwn + doc/git-annex-expire.mdwn + doc/git-annex-find.mdwn + doc/git-annex-findref.mdwn + doc/git-annex-fix.mdwn + doc/git-annex-forget.mdwn + doc/git-annex-fromkey.mdwn + doc/git-annex-fsck.mdwn + doc/git-annex-fuzztest.mdwn + doc/git-annex-get.mdwn + doc/git-annex-group.mdwn + doc/git-annex-groupwanted.mdwn + doc/git-annex-import.mdwn + doc/git-annex-importfeed.mdwn + doc/git-annex-indirect.mdwn + doc/git-annex-info.mdwn + doc/git-annex-init.mdwn + doc/git-annex-initremote.mdwn + doc/git-annex-list.mdwn + doc/git-annex-lock.mdwn + doc/git-annex-log.mdwn + doc/git-annex-lookupkey.mdwn + doc/git-annex-map.mdwn + doc/git-annex-matchexpression.mdwn + doc/git-annex-matching-options.mdwn + doc/git-annex-merge.mdwn + doc/git-annex-metadata.mdwn + doc/git-annex-migrate.mdwn + doc/git-annex-mirror.mdwn + doc/git-annex-move.mdwn + doc/git-annex-numcopies.mdwn + doc/git-annex-pre-commit.mdwn + doc/git-annex-preferred-content.mdwn + doc/git-annex-proxy.mdwn + doc/git-annex-readpresentkey.mdwn + doc/git-annex-registerurl.mdwn + doc/git-annex-reinit.mdwn + doc/git-annex-reinject.mdwn + doc/git-annex-rekey.mdwn + doc/git-annex-remotedaemon.mdwn + doc/git-annex-repair.mdwn + doc/git-annex-required.mdwn + doc/git-annex-resolvemerge.mdwn + doc/git-annex-rmurl.mdwn + doc/git-annex-schedule.mdwn + doc/git-annex-semitrust.mdwn + doc/git-annex-setkey.mdwn + doc/git-annex-setpresentkey.mdwn + doc/git-annex-shell.mdwn + doc/git-annex-smudge.mdwn + doc/git-annex-status.mdwn + doc/git-annex-sync.mdwn + doc/git-annex-test.mdwn + doc/git-annex-testremote.mdwn + doc/git-annex-transferkey.mdwn + doc/git-annex-transferkeys.mdwn + doc/git-annex-trust.mdwn + doc/git-annex-unannex.mdwn + doc/git-annex-undo.mdwn + doc/git-annex-ungroup.mdwn + doc/git-annex-uninit.mdwn + doc/git-annex-unlock.mdwn + doc/git-annex-untrust.mdwn + doc/git-annex-unused.mdwn + doc/git-annex-upgrade.mdwn + doc/git-annex-vadd.mdwn + doc/git-annex-vcycle.mdwn + doc/git-annex-version.mdwn + doc/git-annex-vfilter.mdwn + doc/git-annex-vicfg.mdwn + doc/git-annex-view.mdwn + doc/git-annex-vpop.mdwn + doc/git-annex-wanted.mdwn + doc/git-annex-watch.mdwn + doc/git-annex-webapp.mdwn + doc/git-annex-whereis.mdwn + doc/git-annex-xmppgit.mdwn + doc/logo.svg + doc/logo_16x16.png + Makefile + Build/mdwn2man + Assistant/WebApp/routes + static/activityicon.gif + static/css/bootstrap.css + static/css/bootstrap-theme.css + static/js/jquery.ui.core.js + static/js/longpolling.js + static/js/jquery.full.js + static/js/jquery.ui.sortable.js + static/js/jquery.ui.mouse.js + static/js/jquery.ui.widget.js + static/js/bootstrap.js + static/syncicon.gif + static/favicon.ico + static/fonts/glyphicons-halflings-regular.woff + static/fonts/glyphicons-halflings-regular.eot + static/fonts/glyphicons-halflings-regular.svg + static/fonts/glyphicons-halflings-regular.ttf + templates/sidebar/main.hamlet + templates/sidebar/alert.hamlet + templates/bootstrap.hamlet + templates/error.cassius + templates/README + templates/error.hamlet + templates/documentation/license.hamlet + templates/documentation/repogroup.hamlet + templates/documentation/about.hamlet + templates/dashboard/main.hamlet + templates/dashboard/transfers.cassius + templates/dashboard/transfers.hamlet + templates/dashboard/metarefresh.hamlet + templates/page.cassius + templates/page.hamlet + templates/control/repairrepository.hamlet + templates/control/repairrepository/done.hamlet + templates/control/notrunning.julius + templates/control/notrunning.hamlet + templates/control/repositoryswitcher.hamlet + templates/control/shutdown.hamlet + templates/control/log.hamlet + templates/page.julius + templates/repolist.julius + templates/configurators/adddrive/combine.hamlet + templates/configurators/adddrive/setupmodal.hamlet + templates/configurators/adddrive/encrypt.hamlet + templates/configurators/newrepository.hamlet + templates/configurators/needglaciercli.hamlet + templates/configurators/adds3.hamlet + templates/configurators/genkeymodal.hamlet + templates/configurators/main.hamlet + templates/configurators/needconnection.hamlet + templates/configurators/newrepository/form.hamlet + templates/configurators/newrepository/first.hamlet + templates/configurators/newrepository/combine.hamlet + templates/configurators/enablewebdav.hamlet + templates/configurators/pairing/local/inprogress.hamlet + templates/configurators/pairing/local/prompt.hamlet + templates/configurators/pairing/disabled.hamlet + templates/configurators/pairing/xmpp/self/retry.hamlet + templates/configurators/pairing/xmpp/self/prompt.hamlet + templates/configurators/pairing/xmpp/friend/prompt.hamlet + templates/configurators/pairing/xmpp/friend/confirm.hamlet + templates/configurators/pairing/xmpp/end.hamlet + templates/configurators/xmpp.hamlet + templates/configurators/addglacier.hamlet + templates/configurators/fsck.cassius + templates/configurators/edit/nonannexremote.hamlet + templates/configurators/edit/webrepository.hamlet + templates/configurators/edit/repository.hamlet + templates/configurators/unused.hamlet + templates/configurators/addbox.com.hamlet + templates/configurators/ssh/testmodal.hamlet + templates/configurators/ssh/expiredpassword.hamlet + templates/configurators/ssh/error.hamlet + templates/configurators/ssh/combine.hamlet + templates/configurators/ssh/enable.hamlet + templates/configurators/ssh/add.hamlet + templates/configurators/ssh/setupmodal.hamlet + templates/configurators/ssh/confirm.hamlet + templates/configurators/upgrade/android.hamlet + templates/configurators/enableia.hamlet + templates/configurators/fsck.hamlet + templates/configurators/addrepository/archive.hamlet + templates/configurators/addrepository/cloud.hamlet + templates/configurators/addrepository/connection.hamlet + templates/configurators/addrepository/xmppconnection.hamlet + templates/configurators/addrepository/ssh.hamlet + templates/configurators/addrepository/misc.hamlet + templates/configurators/rsync.net/add.hamlet + templates/configurators/rsync.net/encrypt.hamlet + templates/configurators/gitlab.com/add.hamlet + templates/configurators/needgcrypt.hamlet + templates/configurators/enabledirectory.hamlet + templates/configurators/fsck/status.hamlet + templates/configurators/fsck/form.hamlet + templates/configurators/fsck/preferencesform.hamlet + templates/configurators/fsck/formcontent.hamlet + templates/configurators/delete/xmpp.hamlet + templates/configurators/delete/finished.hamlet + templates/configurators/delete/start.hamlet + templates/configurators/delete/currentrepository.hamlet + templates/configurators/unused/form.hamlet + templates/configurators/adddrive.hamlet + templates/configurators/preferences.hamlet + templates/configurators/addia.hamlet + templates/configurators/xmpp/buddylist.hamlet + templates/configurators/xmpp/disabled.hamlet + templates/configurators/xmpp/needcloudrepo.hamlet + templates/configurators/enableaws.hamlet + templates/configurators/addrepository.hamlet + templates/actionbutton.hamlet + templates/repolist.hamlet + templates/controlmenu.hamlet + templates/notifications/longpolling.julius Flag S3 Description: Enable S3 support @@ -90,6 +313,15 @@ Flag Dbus Flag XMPP Description: Enable notifications using XMPP +source-repository head + type: git + location: git://git-annex.branchable.com/ + +custom-setup + Setup-Depends: base (>= 4.5), hslogger, MissingH, unix-compat, process, + unix, filepath, exceptions, bytestring, directory, IfElse, data-default, + Cabal + Executable git-annex Main-Is: git-annex.hs Build-Depends: @@ -247,11 +479,567 @@ Executable git-annex Build-Depends: criterion, deepseq CPP-Options: -DWITH_BENCHMARK -custom-setup - Setup-Depends: base (>= 4.5), hslogger, MissingH, unix-compat, process, - unix, filepath, exceptions, bytestring, directory, IfElse, data-default, - Cabal - -source-repository head - type: git - location: git://git-annex.branchable.com/ + Other-Modules: + Annex + Annex.Action + Annex.AdjustedBranch + Annex.AutoMerge + Annex.BloomFilter + Annex.Branch + Annex.Branch.Transitions + Annex.BranchState + Annex.CatFile + Annex.CheckAttr + Annex.CheckIgnore + Annex.Common + Annex.Concurrent + Annex.Content + Annex.Content.Direct + Annex.Difference + Annex.DirHashes + Annex.Direct + Annex.Drop + Annex.Environment + Annex.FileMatcher + Annex.Fixup + Annex.GitOverlay + Annex.HashObject + Annex.Hook + Annex.Ingest + Annex.Init + Annex.InodeSentinal + Annex.Journal + Annex.Link + Annex.Locations + Annex.LockFile + Annex.LockPool + Annex.LockPool.PosixOrPid + Annex.MakeRepo + Annex.MetaData + Annex.MetaData.StandardFields + Annex.Notification + Annex.NumCopies + Annex.Path + Annex.Perms + Annex.Queue + Annex.Quvi + Annex.ReplaceFile + Annex.SpecialRemote + Annex.Ssh + Annex.TaggedPush + Annex.Transfer + Annex.UUID + Annex.Url + Annex.VariantFile + Annex.Version + Annex.View + Annex.View.ViewedFile + Annex.Wanted + Annex.WorkTree + Assistant + Assistant.Alert + Assistant.Alert.Utility + Assistant.BranchChange + Assistant.Changes + Assistant.Commits + Assistant.Common + Assistant.CredPairCache + Assistant.DaemonStatus + Assistant.DeleteRemote + Assistant.Drop + Assistant.Fsck + Assistant.Gpg + Assistant.Install + Assistant.Install.AutoStart + Assistant.Install.Menu + Assistant.MakeRemote + Assistant.Monad + Assistant.NamedThread + Assistant.NetMessager + Assistant.Pairing + Assistant.Pairing.MakeRemote + Assistant.Pairing.Network + Assistant.Pushes + Assistant.RemoteControl + Assistant.Repair + Assistant.RepoProblem + Assistant.Restart + Assistant.ScanRemotes + Assistant.Ssh + Assistant.Sync + Assistant.Threads.Committer + Assistant.Threads.ConfigMonitor + Assistant.Threads.Cronner + Assistant.Threads.DaemonStatus + Assistant.Threads.Glacier + Assistant.Threads.Merger + Assistant.Threads.MountWatcher + Assistant.Threads.NetWatcher + Assistant.Threads.PairListener + Assistant.Threads.ProblemFixer + Assistant.Threads.Pusher + Assistant.Threads.RemoteControl + Assistant.Threads.SanityChecker + Assistant.Threads.TransferPoller + Assistant.Threads.TransferScanner + Assistant.Threads.TransferWatcher + Assistant.Threads.Transferrer + Assistant.Threads.UpgradeWatcher + Assistant.Threads.Upgrader + Assistant.Threads.Watcher + Assistant.Threads.WebApp + Assistant.Threads.XMPPClient + Assistant.Threads.XMPPPusher + Assistant.TransferQueue + Assistant.TransferSlots + Assistant.TransferrerPool + Assistant.Types.Alert + Assistant.Types.BranchChange + Assistant.Types.Buddies + Assistant.Types.Changes + Assistant.Types.Commits + Assistant.Types.CredPairCache + Assistant.Types.DaemonStatus + Assistant.Types.NamedThread + Assistant.Types.NetMessager + Assistant.Types.Pushes + Assistant.Types.RemoteControl + Assistant.Types.RepoProblem + Assistant.Types.ScanRemotes + Assistant.Types.ThreadName + Assistant.Types.ThreadedMonad + Assistant.Types.TransferQueue + Assistant.Types.TransferSlots + Assistant.Types.TransferrerPool + Assistant.Types.UrlRenderer + Assistant.Unused + Assistant.Upgrade + Assistant.WebApp + Assistant.WebApp.Common + Assistant.WebApp.Configurators + Assistant.WebApp.Configurators.AWS + Assistant.WebApp.Configurators.Delete + Assistant.WebApp.Configurators.Edit + Assistant.WebApp.Configurators.Fsck + Assistant.WebApp.Configurators.IA + Assistant.WebApp.Configurators.Local + Assistant.WebApp.Configurators.Pairing + Assistant.WebApp.Configurators.Preferences + Assistant.WebApp.Configurators.Ssh + Assistant.WebApp.Configurators.Unused + Assistant.WebApp.Configurators.Upgrade + Assistant.WebApp.Configurators.WebDAV + Assistant.WebApp.Configurators.XMPP + Assistant.WebApp.Control + Assistant.WebApp.DashBoard + Assistant.WebApp.Documentation + Assistant.WebApp.Form + Assistant.WebApp.Gpg + Assistant.WebApp.MakeRemote + Assistant.WebApp.Notifications + Assistant.WebApp.OtherRepos + Assistant.WebApp.Page + Assistant.WebApp.Repair + Assistant.WebApp.RepoId + Assistant.WebApp.RepoList + Assistant.WebApp.SideBar + Assistant.WebApp.Types + Assistant.XMPP + Assistant.XMPP.Buddies + Assistant.XMPP.Client + Assistant.XMPP.Git + Backend + Backend.Hash + Backend.URL + Backend.Utilities + Backend.WORM + Build.BuildVersion + Build.BundledPrograms + Build.Configure + Build.DesktopFile + Build.DistributionUpdate + Build.EvilLinker + Build.EvilSplicer + Build.InstallDesktopFile + Build.LinuxMkLibs + Build.NullSoftInstaller + Build.OSXMkLibs + Build.Standalone + Build.TestConfig + Build.Version + BuildFlags + CmdLine + CmdLine.Action + CmdLine.Batch + CmdLine.GitAnnex + CmdLine.GitAnnex.Options + CmdLine.GitAnnexShell + CmdLine.GitAnnexShell.Checks + CmdLine.GitAnnexShell.Fields + CmdLine.GlobalSetter + CmdLine.Option + CmdLine.Seek + CmdLine.Usage + Command + Command.Add + Command.AddUnused + Command.AddUrl + Command.Adjust + Command.Assistant + Command.Benchmark + Command.CalcKey + Command.CheckPresentKey + Command.Commit + Command.ConfigList + Command.ContentLocation + Command.Copy + Command.Dead + Command.Describe + Command.DiffDriver + Command.Direct + Command.Drop + Command.DropKey + Command.DropUnused + Command.EnableRemote + Command.ExamineKey + Command.Expire + Command.Find + Command.FindRef + Command.Fix + Command.Forget + Command.FromKey + Command.Fsck + Command.FuzzTest + Command.GCryptSetup + Command.Get + Command.Group + Command.GroupWanted + Command.Help + Command.Import + Command.ImportFeed + Command.InAnnex + Command.Indirect + Command.Info + Command.Init + Command.InitRemote + Command.List + Command.Lock + Command.LockContent + Command.Log + Command.LookupKey + Command.Map + Command.MatchExpression + Command.Merge + Command.MetaData + Command.Migrate + Command.Mirror + Command.Move + Command.NotifyChanges + Command.NumCopies + Command.PreCommit + Command.Proxy + Command.ReKey + Command.ReadPresentKey + Command.RecvKey + Command.RegisterUrl + Command.Reinit + Command.Reinject + Command.RemoteDaemon + Command.Repair + Command.Required + Command.ResolveMerge + Command.RmUrl + Command.Schedule + Command.Semitrust + Command.SendKey + Command.SetKey + Command.SetPresentKey + Command.Smudge + Command.Status + Command.Sync + Command.Test + Command.TestRemote + Command.TransferInfo + Command.TransferKey + Command.TransferKeys + Command.Trust + Command.Unannex + Command.Undo + Command.Ungroup + Command.Uninit + Command.Unlock + Command.Untrust + Command.Unused + Command.Upgrade + Command.VAdd + Command.VCycle + Command.VFilter + Command.VPop + Command.Version + Command.Vicfg + Command.View + Command.Wanted + Command.Watch + Command.WebApp + Command.Whereis + Command.XMPPGit + Common + Config + Config.Cost + Config.Files + Creds + Crypto + Database.Fsck + Database.Handle + Database.Keys + Database.Keys.Handle + Database.Keys.SQL + Database.Queue + Database.Types + Git + Git.AutoCorrect + Git.Branch + Git.BuildVersion + Git.CatFile + Git.CheckAttr + Git.CheckIgnore + Git.Command + Git.Command.Batch + Git.Config + Git.Construct + Git.CurrentRepo + Git.DiffTree + Git.DiffTreeItem + Git.Env + Git.FileMode + Git.FilePath + Git.Filename + Git.Fsck + Git.GCrypt + Git.HashObject + Git.Hook + Git.Index + Git.LockFile + Git.LsFiles + Git.LsTree + Git.Merge + Git.Objects + Git.Queue + Git.Ref + Git.RefLog + Git.Remote + Git.Remote.Remove + Git.Repair + Git.Sha + Git.SharedRepository + Git.Status + Git.Tree + Git.Types + Git.UnionMerge + Git.UpdateIndex + Git.Url + Git.Version + Limit + Limit.Wanted + Logs + Logs.Activity + Logs.Chunk + Logs.Chunk.Pure + Logs.Difference + Logs.Difference.Pure + Logs.FsckResults + Logs.Group + Logs.Location + Logs.MapLog + Logs.MetaData + Logs.NumCopies + Logs.PreferredContent + Logs.PreferredContent.Raw + Logs.Presence + Logs.Presence.Pure + Logs.Remote + Logs.RemoteState + Logs.Schedule + Logs.SingleValue + Logs.TimeStamp + Logs.Transfer + Logs.Transitions + Logs.Trust + Logs.Trust.Basic + Logs.Trust.Pure + Logs.UUID + Logs.UUIDBased + Logs.Unused + Logs.View + Logs.Web + Messages + Messages.Concurrent + Messages.Internal + Messages.JSON + Messages.Progress + Remote + Remote.BitTorrent + Remote.Bup + Remote.Ddar + Remote.Directory + Remote.Directory.LegacyChunked + Remote.External + Remote.External.Types + Remote.GCrypt + Remote.Git + Remote.Glacier + Remote.Helper.AWS + Remote.Helper.Chunked + Remote.Helper.Chunked.Legacy + Remote.Helper.Encryptable + Remote.Helper.Git + Remote.Helper.Hooks + Remote.Helper.Http + Remote.Helper.Messages + Remote.Helper.ReadOnly + Remote.Helper.Special + Remote.Helper.Ssh + Remote.Hook + Remote.List + Remote.Rsync + Remote.Rsync.RsyncUrl + Remote.S3 + Remote.Tahoe + Remote.Web + Remote.WebDAV + Remote.WebDAV.DavLocation + RemoteDaemon.Common + RemoteDaemon.Core + RemoteDaemon.Transport + RemoteDaemon.Transport.GCrypt + RemoteDaemon.Transport.Ssh + RemoteDaemon.Transport.Ssh.Types + RemoteDaemon.Types + Test + Types + Types.Availability + Types.Backend + Types.BranchState + Types.CleanupActions + Types.Command + Types.Creds + Types.Crypto + Types.DeferredParse + Types.DesktopNotify + Types.Difference + Types.Distribution + Types.FileMatcher + Types.GitConfig + Types.Group + Types.Key + Types.KeySource + Types.LockCache + Types.Messages + Types.MetaData + Types.NumCopies + Types.RefSpec + Types.Remote + Types.ScheduledActivity + Types.StandardGroups + Types.StoreRetrieve + Types.Test + Types.TrustLevel + Types.UUID + Types.UrlContents + Types.View + Upgrade + Upgrade.V0 + Upgrade.V1 + Upgrade.V2 + Upgrade.V3 + Upgrade.V4 + Upgrade.V5 + Utility.Applicative + Utility.Base64 + Utility.Batch + Utility.Bloom + Utility.CoProcess + Utility.CopyFile + Utility.DBus + Utility.Daemon + Utility.Data + Utility.DataUnits + Utility.DirWatcher + Utility.DirWatcher.FSEvents + Utility.DirWatcher.INotify + Utility.DirWatcher.Kqueue + Utility.DirWatcher.Types + Utility.DirWatcher.Win32Notify + Utility.Directory + Utility.DiskFree + Utility.Dot + Utility.DottedVersion + Utility.Env + Utility.Exception + Utility.ExternalSHA + Utility.FileMode + Utility.FileSize + Utility.FileSystemEncoding + Utility.Format + Utility.FreeDesktop + Utility.Glob + Utility.Gpg + Utility.Hash + Utility.HumanNumber + Utility.HumanTime + Utility.InodeCache + Utility.JSONStream + Utility.LinuxMkLibs + Utility.LockFile + Utility.LockFile.LockStatus + Utility.LockFile.PidLock + Utility.LockFile.Posix + Utility.LockFile.Windows + Utility.LockPool + Utility.LockPool.LockHandle + Utility.LockPool.PidLock + Utility.LockPool.Posix + Utility.LockPool.STM + Utility.LockPool.Windows + Utility.LogFile + Utility.Lsof + Utility.Matcher + Utility.Metered + Utility.Misc + Utility.Monad + Utility.Mounts + Utility.Network + Utility.NotificationBroadcaster + Utility.OSX + Utility.OptParse + Utility.PID + Utility.Parallel + Utility.PartialPrelude + Utility.Path + Utility.Percentage + Utility.PosixFiles + Utility.Process + Utility.Process.Shim + Utility.QuickCheck + Utility.Quvi + Utility.Rsync + Utility.SRV + Utility.SafeCommand + Utility.Scheduled + Utility.Scheduled.QuickCheck + Utility.Shell + Utility.SimpleProtocol + Utility.SshConfig + Utility.SystemDirectory + Utility.TList + Utility.Tense + Utility.ThreadLock + Utility.ThreadScheduler + Utility.Tmp + Utility.Touch + Utility.Url + Utility.UserInfo + Utility.Verifiable + Utility.WebApp + Utility.WinProcess + Utility.Yesod |