Skip to content
Snippets Groups Projects
CHANGELOG 420 KiB
Newer Older
    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 unnecessary 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.
Edward Betts's avatar
Edward Betts committed
  * The last release accidentally 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.
Edward Betts's avatar
Edward Betts committed
  * S3: Fix incompatibility 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 compatible with 4.14.2.
4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000
    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