Newer
Older
git-annex (10.20240732) UNRELEASED; urgency=medium
* Remove debug output (to stderr) accidentially included in
last version.
* Special remotes configured with exporttree=yes annexobjects=yes
can store objects in .git/annex/objects, as well as an exported tree.
* Support proxying to special remotes configured with
exporttree=yes annexobjects=yes.
* post-retrieve: When proxying is enabled for an exporttree=yes
special remote and the configured remote.name.annex-tracking-branch
is received, the tree is exported to the special remote.
* updateproxy, updatecluster: Prevent using an exporttree=yes special
remote that does not have annexobjects=yes, since it will not work.
* git-remote-annex: Store objects in exportree=yes special remotes
in the same paths used by annexobjects=yes.
* When proxying an upload to a special remote, verify the hash.
* Avoid loading cluster log at startup.
* When getting from a P2P HTTP remote, prompt for credentials when
required, instead of failing.
-- Joey Hess <id@joeyh.name> Wed, 31 Jul 2024 15:52:03 -0400
git-annex (10.20240731) upstream; urgency=medium
Joey Hess
committed
* annex+http and annex+https urls can be configured for
remote.name.annexUrl to use the HTTP API to communicate with a server.
This supports writable repositories, as well as accessing clusters
and proxied remotes over HTTP.
* When a http remote has annex.url set to an annex+http url in
the git config file on the website, it will be copied into
remote.name.annexUrl the first time git-annex uses the remote.
Joey Hess
committed
* assistant: Fix a race condition that could cause a pointer file to
get ingested into the annex.
* Avoid potential data loss in unlikely situations where git-annex-shell
or git-annex remotedaemon is killed while locking a key to prevent its
* When proxying a download from a special remote, avoid unncessary hashing.
* When proxying an upload to a special remote, verify the hash.
* Propagate --force to git-annex transferrer.
* Added a build flag for servant, enabling annex+http urls and
git-annex p2phttp.
* Added a dependency on the haskell clock library.
* Updated stack.yaml to nightly-2024-07-29.
Joey Hess
committed
-- Joey Hess <id@joeyh.name> Wed, 31 Jul 2024 14:02:21 -0400
Joey Hess
committed
* git-annex remotes can now act as proxies that provide access to
their remotes. Configure this with remote.name.annex-proxy
and the git-annex update proxy command.
* Clusters are now supported. These are collections of nodes that can
be accessed as a single entity, accessed by one or more gateway
repositories.
* Added git-annex initcluster, updatecluster, and extendcluster commands.
* Fix a bug where interrupting git-annex while it is updating the
git-annex branch for an export could later lead to git fsck
complaining about missing tree objects.
* Tab completion of options like --from now includes special remotes,
as well as proxied remotes and clusters.
* Tab completion of many commands like info and trust now includes
remotes.
* P2P protocol version 2.
* Fix Windows build with Win32 2.13.4+
Thanks, Oleg Tolmatcev
* When --debugfilter or annex.debugfilter is set, avoid propigating
debug output from git-annex-shell, since it cannot be filtered.
* git-remote-annex: New program which allows pushing a git repo to a
git-annex special remote, and cloning from a special remote.
(Based on Michael Hanke's git-remote-datalad-annex.)
* initremote, enableremote: Added --with-url to enable using
git-remote-annex.
* When building an adjusted unlocked branch, make pointer files
executable when the annex object file is executable.
Joey Hess
committed
* fsck: Fix recent reversion that made it say it was checksumming files
whose content is not present.
Joey Hess
committed
* Avoid the --fast option preventing checksumming in some cases it
was not supposed to.
* testremote: Really fsck downloaded objects.
-- Joey Hess <id@joeyh.name> Fri, 31 May 2024 12:32:29 -0400
git-annex (10.20240430) upstream; urgency=medium
* Bug fix: While redundant concurrent transfers were already
prevented in most cases, it failed to prevent the case where
two different repositories were sending the same content to
the same repository.
* addurl, importfeed: Added --verifiable option, which improves
the safety of --fast or --relaxed by letting the content of
annexed files be verified with a checksum that is calculated
on a later download from the web. This will become the default later.
* Added rclone special remote, which can be used without needing
to install the git-annex-remote-rclone program. This needs
a forthcoming version of rclone (1.67.0), which supports
"rclone gitannex".
* sync, assist, import: Allow -m option to be specified multiple
times, to provide additional paragraphs for the commit message.
* reregisterurl: New command that can change an url from being
used by a special remote to being used by the web remote.
* annex.maxextensions configuration controls how many filename
extensions to preserve.
* Windows: Fix escaping output to terminal when using old
versions of MinTTY.
* Added dependency on unbounded-delays.
-- Joey Hess <id@joeyh.name> Tue, 30 Apr 2024 15:26:32 -0400
git-annex (10.20240227) upstream; urgency=medium
* importfeed: Added --scrape option, which uses yt-dlp to screen scrape
the equivilant of an RSS feed.
* importfeed --force: Don't treat it as a failure when an already
downloaded file exists. (Fixes a behavior change introduced in
10.20230626.)
* importfeed --force: Avoid creating duplicates of existing
already downloaded files when yt-dlp or a special remote was used.
* addurl, importfeed: Added --raw-except option.
* stack.yaml: Update to lts-22.9 and use crypton.
* assistant, undo: When committing, let the usual git commit
hooks run.
* Added annex.commitmessage-command config.
* pre-commit: Avoid committing the git-annex branch
(except when a commit is made in a view, which changes metadata).
-- Joey Hess <id@joeyh.name> Tue, 27 Feb 2024 12:58:30 -0400
git-annex (10.20240129) upstream; urgency=medium
* info: Added "annex sizes of repositories" table to the overall display.
* import: Sped up import from special remotes.
* Support using commands that implement the Stateless OpenPGP command line
interface, as an alternative to gpg.
Currently only supported for encryption=shared special remotes,
when annex.shared-sop-command is configured.
* test: Test a specified Stateless OpenPGP command when
run with eg --test-git-config annex.shared-sop-command=sqop
* Improve disk free space checking when transferring unsized keys to
local git remotes.
* Added configs annex.stalldetection-download, annex.stalldetection-upload,
annex.bwlimit-download, annex.bwlimit-upload,
and similar per-remote configs.
* Improve annex.stalldetection to handle remotes that update progress
less frequently than the configured time period.
* external: Monitor file size when getting content from external
special remotes and use that to update the progress meter,
in case the external special remote program does not report progress.
* Added --expected-present file matching option.
* webapp: Added --port option, and annex.port config.
* assistant: When generating a gpg secret key, avoid hardcoding the
key algorithm and size.
-- Joey Hess <id@joeyh.name> Mon, 29 Jan 2024 13:12:00 -0400
git-annex (10.20231227) upstream; urgency=medium
* migrate: Support distributed migrations by recording each migration,
and adding a --update option that updates the local repository
incrementally, hard linking annex objects to their new keys.
* pull, sync: When operating on content, automatically handle
distributed migrations.
* Added annex.syncmigrations config that can be set to false to prevent
pull and sync from migrating object content.
* migrate: Added --apply option that (re)applies all recorded
distributed migrations to the objects in repository.
* migrate: Support adding size to URL keys that were added with
--relaxed, by running eg: git-annex migrate --backend=URL foo
* When importing from a special remote, support preferred content
expressions that use terms that match on keys (eg "present", "copies=1").
Such terms are ignored when importing, since the key is not known yet.
Before, such expressions caused the import to fail.
* Support git-annex copy/move --from-anywhere --to remote.
* Make git-annex get/copy/move --from foo override configuration of
remote.foo.annex-ignore, as documented.
* Lower precision of timestamps in git-annex branch, which can reduce the
size of the branch by up to 8%.
* sync: Fix locking problems during merge when annex.pidlock is set.
* Avoid a problem with temp file names ending in "." on certian
filesystems that have problems with such filenames.
* sync, push: Avoid trying to send individual files to special remotes
configured with importtree=yes exporttree=no, which would always fail.
* Fix a crash opening sqlite databases when run in a non-unicode locale.
(Needs persistent-sqlite 2.13.3.)
-- Joey Hess <id@joeyh.name> Wed, 27 Dec 2023 19:27:37 -0400
git-annex (10.20231129) upstream; urgency=medium
* Fix bug in git-annex copy --from --to that skipped files that were
locally present.
* Make git-annex copy --from --to --fast actually fast.
* Fix crash of enableremote when the special remote has embedcreds=yes.
* Ignore directories and other unusual files in .git/annex/journal/
* info: Added calculation of combined annex size of all repositories.
* log: Added options --sizesof, --sizes and --totalsizes that
display how the size of repositories changed over time.
* log: Added options --interval, --bytes, --received, and --gnuplot
to tune the output of the above added options.
* findkeys: Support --largerthan and --smallerthan.
* importfeed: Use caching database to avoid needing to list urls
on every run, and avoid using too much memory.
* Improve memory use of --all when using annex.private.
* Windows: Consistently avoid ending standard output lines with CR.
This matches the behavior of git on Windows.
* Windows: Fix CRLF handling in some log files.
* Windows: When git-annex init is installing hook scripts, it will
avoid ending lines with CR for portability. Existing hook scripts
that do have CR line endings will not be changed.
-- Joey Hess <id@joeyh.name> Wed, 29 Nov 2023 15:59:20 -0400
git-annex (10.20230926) upstream; urgency=medium
* Fix more breakage caused by git's fix for CVE-2022-24765, this time
involving a remote (either local or ssh) that is a repository not owned
by the current user.
* Fix using git remotes that are bare when git is configured with
safe.bareRepository = explicit.
* Fix linker optimisation in linux standalone tarballs.
* adb: Avoid some problems with unusual characters in exporttree
filenames that confuse adb shell commands.
* push: When on an adjusted branch, propagate changes to parent branch
before updating export remotes.
Joey Hess
committed
* enableremote: Avoid overwriting existing git remote when passed the uuid
of a specialremote that was earlier initialized with the same name.
* Support being built with crypton rather than the no-longer maintained
cryptonite.
* Removed the vendored git-lfs and the GitLfs build flag.
-- Joey Hess <id@joeyh.name> Tue, 26 Sep 2023 13:23:37 -0400
git-annex (10.20230828) upstream; urgency=medium
* oldkeys: New command that lists the keys used by old versions of a file.
* info: Added --dead-repositories option.
* Significant startup speed increase by avoiding repeatedly checking
if some remote git-annex branch refs need to be merged.
* Fix behavior when importing a tree from a directory remote when the
directory does not exist. An empty tree was imported, rather than the
import failing.
* sync, assist, push, pull: Skip more types of remotes when they
* info: Added available to the info displayed for a remote.
* Added AVAILABILITY UNAVAILABLE and the UNAVAILABLERESPONSE extension
to the external special remote protocol.
* The remote.name.annex-availability git config is no longer used.
* Avoid using curl when annex.security.allowed-ip-addresses is set
but neither annex.web-options nor annex.security.allowed-url-schemes
is set to a value that needs curl.
* Stop bundling curl in the OSX dmg and linux standalone image.
* diffdriver: Added --get option.
* diffdriver: Refuse to run when not in a git-annex repository.
-- Joey Hess <id@joeyh.name> Mon, 28 Aug 2023 12:40:37 -0400
git-annex (10.20230802) upstream; urgency=medium
* satisfy: New command that gets/sends/drops content to satisfy
preferred content settings. This is like to the --content
part of git-annex sync.
* --explain: New option to display explanations of what git-annex
takes into account when deciding what to do. Including explaining
matching of preferred content expressions, annex.largefiles, and
annex.addunlocked.
Joey Hess
committed
* diffdriver: Added --text option for easy diffing of the contents of
annexed text files.
* assist: With --jobs, parallelize transferring content to/from remotes.
* Bug fix: Re-running git-annex adjust or sync when in an adjusted branch
would overwrite the original branch, losing any commits that had been
made to it since the adjusted branch was created.
* Bug fix: Fix behavior when git is configured with
safe.bareRepository = explicit.
* importfeed bug fix: When -J was used with multiple feeds, some feeds
did not get their items downloaded.
* importfeed: Add feedurl to the metadata (and allow it to be used in the
--template)
* Improve resuming interrupted download when using yt-dlp.
* S3: Amazon S3 buckets created after April 2023 do not support ACLs,
so public=yes cannot be used with them. Existing buckets configured
with public=yes will keep working.
* S3: Allow setting publicurl=yes without public=yes, to support
buckets that are configured with a Bucket Policy that allows public
access.
* directory, gcrypt: Remove empty hash directories when dropping content.
* Support "onlyingroup=" in preferred content expressions.
* Support --onlyingroup= matching option.
* Setup.hs: Stop installing man pages, desktop files, and the
git-annex-shell and git-remote-tor-annex symlinks.
Anything still relying on that, eg via cabal v1-install will need to
change to using make install-home.
* Support building with unix-compat 0.7
* stack.yaml: Update to build with ghc-9.6.2 and aws-0.24.
(For windows, stack-lts-18.13.yaml has to be used instead for now.)
-- Joey Hess <id@joeyh.name> Wed, 02 Aug 2023 13:55:30 -0400
* Split out two new commands, git-annex pull and git-annex push.
(Note that the new commands default to syncing content, unless
annex.synccontent is explicitly set to false.)
* assist: New command, which is the same as git-annex sync but with
new files added and content transferred by default.
* sync: Started a transition to --content being enabled by default.
When used without --content or --no-content, warn about the upcoming
transition, and suggest using one of the options, or setting
annex.synccontent.
* sync: Added -g as a short option for --no-content.
Joey Hess
committed
* Many commands now quote filenames that contain unusual characters the
same way that git does, to avoid exposing control characters to the
terminal.
* Support core.quotePath, which can be set to false to display utf8
characters as-is in filenames.
Joey Hess
committed
* Control characters in non-filename data coming from the repository or
other possible untrusted sources are filtered out of the display of many
commands. When the command output is intended for use in scripting,
control characters are only filtered out when displaying to the
terminal.
* find, findkeys, examinekey: When outputting to a terminal and --format
is not used, quote control characters. Output to a pipe is unchanged.
(Similar to the behavior of GNU find.)
* addurl --preserve-filename now rejects filenames that contain other
control characters, besides the escape sequences it already rejected.
Joey Hess
committed
* init: Avoid autoenabling special remotes that have control characters
in their names.
* Support core.sharedRepository=0xxx at long last.
* Support --json and --json-error-messages in many more commands
(addunused, configremote, dead, describe, dropunused, enableremote,
expire, fix, importfeed, init, initremote, log, merge, migrate, reinit,
reinject, rekey, renameremote, rmurl, semitrust, setpresentkey, trust,
unannex, undo, uninit, untrust, unused, upgrade)
* importfeed: Support -J
* importfeed: Support --json-progress
* httpalso: Support being used with special remotes that use chunking.
* Several significant speedups to importing large trees from special
remotes. Imports that took over an hour now take only a few minutes.
* Cache negative lookups of global numcopies and mincopies.
Speeds up eg git-annex sync --content by up to 50%.
* Speed up sync in an adjusted branch by avoiding re-adjusting the branch
unnecessarily, particularly when it is adjusted with --hide-missing
or --unlock-present.
* config: Added the --show-origin and --for-file options.
* config: Support annex.numcopies and annex.mincopies.
* whereused: Fix display of branch:file when run in a subdirectory.
* enableremote: Support enableremote of a git remote (that was previously
set up with initremote) when additional parameters such as autoenable=
are passed.
* configremote: New command, currently limited to changing autoenable=
setting of a special remote.
* Honor --force option when operating on a local git remote.
* When a nonexistant file is passed to a command and
--json-error-messages is enabled, output a JSON object indicating the
problem. (But git ls-files --error-unmatch still displays errors about
such files in some situations.)
* Bug fix: Create .git/annex/, .git/annex/fsckdb,
.git/annex/sentinal, .git/annex/sentinal.cache, and
.git/annex/journal/* with permissions configured by core.sharedRepository.
* Bug fix: Lock files were created with wrong modes for some combinations
of core.sharedRepository and umask.
* initremote: Avoid creating a remote that is not encrypted when gpg is
broken.
* log: When --raw-date is used, display only seconds from the epoch, as
documented, omitting a trailing "s" that was included in the output
before.
* addunused: Displays the names of the files that it adds.
* reinject: Fix support for operating on multiple pairs of files and keys.
* sync: Fix buggy handling of --no-pull and --no-push when syncing
--content. With --no-pull, avoid downloading content, and with
--no-push avoid uploading content. This was done before, but
inconsistently.
* uninit: Avoid buffering the names of all annexed files in memory.
* Fix bug in -z handling of trailing NUL in input.
* version: Avoid error message when entire output is not read.
* Fix excessive CPU usage when parsing yt-dlp (or youtube-dl) progress
output fails.
* Use --progress-template with yt-dlp to fix a failure to parse
progress output when only an estimated total size is known.
* When yt-dlp is available, default to using it in preference to
youtube-dl. Using youtube-dl is now deprecated, and git-annex no longer
tries to parse its output to display download progress
* Improve resuming interrupted download when using yt-dlp or youtube-dl.
* assistant: Add dotfiles to git by default, unless annex.dotfiles
is configured, the same as git-annex add does.
* assistant --autostop: Avoid crashing when ~/.config/git-annex/autostart
lists a directory that it cannot chdir to.
Joey Hess
committed
* assistant: Fix a crash when a small file is deleted immediately after
being created.
* repair: Fix a crash when .git/annex/journal/ does not exist.
* Support building with optparse-applicative 0.18.1
(Thanks, Peter Simons)
git-annex (10.20230407) upstream; urgency=medium
* Fix laziness bug introduced in last release that breaks use
of --unlock-present and --hide-missing adjusted branches.
* Support user.useConfigOnly git config.
* registerurl, unregisterurl: Added --remote option.
* registerurl: When an url is claimed by a special remote other than the
web, update location tracking for that special remote.
(This was the behavior before version 6.20181011)
* Sped up sqlite inserts 2x when built with persistent 2.14.5.0
* git-annex.cabal: Prevent building with unix-compat 0.7 which
removed System.PosixCompat.User.
-- Joey Hess <id@joeyh.name> Fri, 07 Apr 2023 13:36:23 -0400
git-annex (10.20230329) upstream; urgency=medium
* sync: Fix parsing of gcrypt::rsync:// urls that use a relative path.
* Avoid failure to update adjusted branch --unlock-present after git-annex
drop when annex.adjustedbranchrefresh=1
* Avoid leaving repo with a detached head when there is a failure
checking out an updated adjusted branch.
* view: Support annex.maxextensionlength when generating filenames for
the view branch.
* Windows: Support urls like "file:///c:/path"
* addurl, importfeed: Fix failure when annex.securehashesonly is set.
* Copy with a reflink when exporting a tree to a directory special remote.
* Fix bug that caused broken protocol to be used with external remotes
that use exporttree=yes. In some cases this could result in the wrong
content being exported to, or retrieved from the remote.
* Support VERSION 2 in the external special remote protocol, which is
identical to VERSION 1, but avoids external remote programs needing
to work around the above bug. External remote program that support
exporttree=yes are recommended to be updated to send VERSION 2.
-- Joey Hess <id@joeyh.name> Wed, 29 Mar 2023 13:29:07 -0400
git-annex (10.20230321) upstream; urgency=medium
* Using git-annex view in an adjusted branch, or git-annex adjust in a
view branch, will enter an adjusted view branch.
* sync: Fix a reversion that prevented sending files to exporttree=yes
remotes when annex-tracking-branch was configured to branch:subdir
(Introduced in version 10.20230214)
* status: This command is deprecated because it was only needed in direct
mode; git status --short is very similar.
* Windows: Support long filenames in more (possibly all) of the code.
* Added arm64 build for ancient kernels, needed to support Android phones
whose kernels are too old to support kernels used by the current arm64
build.
* init: Support being ran in a repository that has a newline in its path.
* copy: When --from and --to are combined and the content is already
present on the destination remote, update location tracking as
necessary.
* Fixed spelling of some messages and added a .codespellrc
Thanks, Yaroslav Halchenko
-- Joey Hess <id@joeyh.name> Tue, 21 Mar 2023 16:13:46 -0400
git-annex (10.20230227) upstream; urgency=medium
* Fix more breakage caused by git's fix for CVE-2022-24765, this time
involving a remote that is a local bare repository not owned by the
current user.
* info: Fix reversion in last release involving handling of unsupported
input by continuing to handle any other inputs, before exiting nonzero
at the end.
* git-annex.cabal: Move webapp build deps under the Assistant build flag
so git-annex can be built again without yesod etc installed.
Joey Hess
committed
* Improve error message when unable to read a sqlite database due to
permissions problem.
-- Joey Hess <id@joeyh.name> Mon, 27 Feb 2023 12:23:12 -0400
git-annex (10.20230214) upstream; urgency=medium
Joey Hess
committed
* sync: Fix a bug that caused files to be removed from an
importtree=yes exporttree=yes special remote when the remote's
annex-tracking-branch was not the currently checked out branch.
* S3: Support a region= configuration useful for some non-Amazon S3
implementations. This feature needs git-annex to be built with aws-0.24.
* view: New field?=glob and ?tag syntax that includes a directory "_"
in the view for files that do not have the specified metadata set.
* Added annex.viewunsetdirectory git config to change the name of the
"_" directory in a view.
* Changed the name of view branches to include the parent branch.
Existing view branches checked out using an old name will still work.
* sync: Avoid pushing view branches to remotes.
* sync: When run in a view branch, refresh the view branch to reflect any
changes that have been made to the parent branch or metadata.
* sync: When run in a view branch, avoid updating synced/ branches,
or trying to merge anything from remotes.
* Support http urls that contain ":" that is not followed by a port
number, the same as git does.
* sync: Warn when the adjusted basis ref cannot be found, as happens eg when
the user has renamed branches.
* Sped up view branch construction by 50%.
* info, enableremotemote, renameremote: Avoid a confusing message when more
than one repository matches the user provided name.
* info: Exit nonzero when the input is not supported.
-- Joey Hess <id@joeyh.name> Tue, 14 Feb 2023 14:07:11 -0400
git-annex (10.20230126) upstream; urgency=medium
* Change --metadata comparisons < > <= and >= to fall back to
lexicographical comparisons when one or both values being compared
are not numbers.
* Improve handling of some .git/annex/ subdirectories being on other
filesystems, in the bittorrent special remote, and youtube-dl
integration, and git-annex addurl.
* Added --anything (and --nothing). Eg, git-annex find --anything
will list all annexed files whether or not the content is present.
This is slightly faster and clearer than --include=* or --exclude=*
* Speed up git-annex upgrade (from v5) and init in a repository that has
submodules.
* Added libgcc_s.so.1 to the linux standalone build so pthread_cancel
will work.
* Speed up initial scanning for annexed files when built
with persistent-2.14.4.1
* Allow initremote of additional special remotes with type=web,
in addition to the default web special remote. When --sameas=web is used,
these provide additional names for the web special remote, and may
also have their own additional configuration and cost.
* web: Add urlinclude and urlexclude configuration settings.
* Added an optional cost= configuration to all special remotes.
* adb: Support the remote.name.cost and remote.name.cost-command configs.
* findkeys: New command, very similar to git-annex find but operating on
keys.
* move, copy: Support combining --from and --to, which will send content
from one remote across to another remote.
-- Joey Hess <id@joeyh.name> Thu, 26 Jan 2023 15:26:22 -0400
git-annex (10.20221212) upstream; urgency=medium
* Fix a hang that occasionally occurred during commands such as move,
when operating on unlocked files. (A bug introduced in 10.20220927)
* When youtube-dl is not available in PATH, use yt-dlp instead.
* Support parsing yt-dpl output to display download progress.
* init: Avoid scanning for annexed files, which can be lengthy in a
large repository. Instead that scan is done on demand.
* Sped up the initial scan for annexed files by 21%.
* Support quettabyte and yottabyte.
-- Joey Hess <id@joeyh.name> Mon, 12 Dec 2022 12:20:06 -0400
git-annex (10.20221104) upstream; urgency=medium
* export: Fix a bug that left a file on a special remote when
two files with the same content were both deleted in the exported tree.
* S3: Support signature=anonymous to access a S3 bucket anonymously.
This can be used, for example, with importtree=yes to import from
a public bucket.
This feature needs git-annex to be built with aws-0.23.
-- Joey Hess <id@joeyh.name> Thu, 03 Nov 2022 14:07:31 -0400
git-annex (10.20221103) upstream; urgency=medium
* Doubled the speed of git-annex drop when operating on many files,
and of git-annex get when operating on many tiny files.
* trust, untrust, semitrust, dead: Fix behavior when provided with
multiple repositories to operate on.
* trust, untrust, semitrust, dead: When provided with no parameters,
do not operate on a repository that has an empty name.
* move: Fix openFile crash with -J
(Fixes a reversion in 8.20201103)
* S3: Speed up importing from a large bucket when fileprefix= is set,
by only asking for files under the prefix.
* When importing from versioned remotes, fix tracking of the content
of deleted files.
* More robust handling of ErrorBusy when writing to sqlite databases.
* Avoid hanging when a suspended git-annex process is keeping a sqlite
database locked.
* Make --batch mode handle unstaged annexed files consistently
whether the file is unlocked or not. Note that this changes the
behavior of --batch when it is provided with locked files that are
in the process of being added to the repository, but have not yet been
staged in git.
* Make git-annex enable-tor work when using the linux standalone build.
-- Joey Hess <id@joeyh.name> Thu, 03 Nov 2022 14:07:31 -0400
git-annex (10.20221003) upstream; urgency=medium
* Avoid displaying warning about git-annex restage needing to be run
in situations where it does not.
* Fix the annex.adviceNoSshCaching config, which has never worked.
Thanks, Reiko Asakura
-- Joey Hess <id@joeyh.name> Mon, 03 Oct 2022 12:38:48 -0400
git-annex (10.20220927) upstream; urgency=medium
* Fix a bug in the last release that caused v8 repositories to upgrade
immediately to v10, rather than taking the scheduled 1 year to do so.
* annex.diskreserve default increased from 1 mb to 100 mb.
* Include the assistant and webapp when building with cabal 3.4.1.0.
* Merged the webapp build flag into the assistant build flag.
* Optimise linker in linux standalone tarballs.
* Fix crash importing from a directory special remote that contains
a broken symlink.
* When accessing a git remote over http needs a git credential
prompt for a password, cache it for the lifetime of the git-annex
process, rather than repeatedly prompting.
* Use curl for downloads from git remotes when annex.url-options is set.
* Fix a reversion that made dead keys not be skipped when operating on
all keys via --all or in a bare repo.
(Introduced in version 8.20200720)
* vicfg: Include mincopies configuration.
* Improve handling of directory special remotes with importtree=yes whose
ignoreinode setting has been changed. When getting a file from such a
remote, accept the content that would have been accepted with the
previous ignoreinode setting.
* directory, adb: Fixed a bug with importtree=yes and multiple files
in the special remote have the same content, that caused it to
refuse to get a file from the special remote, incorrectly complaining
that it had changed, due to only accepting the inode+mtime of one file
(that was since modified or deleted) and not accepting the inode+mtime
of other duplicate files.
* Fix a reversion that prevented git-annex from working in a
repository when --git-dir or GIT_DIR is specified to relocate the git
directory to somewhere else.
(Introduced in version 10.20220525)
* Improved handling of --time-limit when combined with -J
* Fix updating git index file after getting an unlocked file
when annex.stalldetection is set.
* restage: New git-annex command, handles restaging unlocked files.
* Run annex.freezecontent-command and annex.thawcontent-command
when on a crippled filesystem.
Thanks, Reiko Asakura
* enable-tor: Fix breakage caused by git's fix for CVE-2022-24765.
* Let GIT_DIR and --git-dir override git's protection against operating
in a repository owned by another user.
* p2p: Pass wormhole the --appid option before the receive/send command,
as it does not accept that option after the command
* Support "inbackend" in preferred content expressions.
-- Joey Hess <id@joeyh.name> Tue, 27 Sep 2022 13:31:18 -0400
* v8 repositories now automatically upgrade to v9, which will in turn
automatically upgrade to v10 in a year's time.
To avoid this upgrade, you can set annex.autoupgraderepository to false.
* Now uses v10 by default for new repositories.
* Fix a regression in 10.20220624 that caused git-annex add to crash
when there was an unstaged deletion.
* Added new matching options --want-get-by and --want-drop-by.
Joey Hess
committed
* Allow find --branch to be used in a bare repository, the same as
the deprecated findref can be.
* import: Avoid following symbolic links inside directories being
imported.
* Work around bug in git 2.37 that causes a segfault
* Added annex.dbdir config which can be used to move sqlite databases
to a different filesystem than the git-annex repo, when the repo is on
a filesystem that sqlite does not work well in.
* Use curl when annex.security.allowed-url-schemes includes an url
scheme not supported by git-annex internally, as long as
annex.security.allowed-ip-addresses is configured to allow using curl.
* Improve output when storing to bup.
* When bup split fails, display its stderr.
* Avoid running multiple bup split processes concurrently, since
bup is not concurrency safe.
* Avoid starting an unnecessary number of git hash-object processes when
concurrency is enabled.
git-annex (10.20220724) upstream; urgency=medium
* filter-process: Fix a bug involving handling of empty files,
that caused git to kill git-annex filter-process.
* add: Fix reversion when adding an annex link that has been moved to
another directory. (Introduced in version 10.20220624)
* Added annex.alwayscompact setting which can be unset to speed up
writes to the git-annex branch in some cases. See its documentation
for important notes on when it's appropariate to use.
* adb: Added configuration setting oldandroid=true to avoid using
find -printf, which was first supported in Android around 2019-2020.
This may need to be enabled for old android devices that used to work
without it being set, since version 10.20220222 started using
find -printf.
* --backend is no longer a global option, and is only accepted by
commands that actually need it.
* Improve handling of parallelization with -J when copying content
from/to a git remote that is a local path.
Joey Hess
committed
* S3: Avoid writing or checking the uuid file in the S3 bucket when
importtree=yes or exporttree=yes.
* Fix a reversion that prevented --batch commands (and the assistant)
from noticing data written to the journal by other commands.
* Fix building with the Assistant build flag disabled but the Webapp
build flag enabled.
-- Joey Hess <id@joeyh.name> Mon, 25 Jul 2022 12:55:38 -0400
git-annex (10.20220624) upstream; urgency=medium
* init: Added --no-autoenable option.
* initremote: Improve handling of type=git special remotes.
The location value no longer needs to match the url of an existing
git remote, and locations not using ssh:// will work now, including
both paths and host:/path
* Fix retrival of an empty file that is stored in a special remote with
chunking enabled.
(Fixes a reversion in 8.20201103)
* move: Improve resuming a move that succeeded in transferring the
content, but where dropping failed due to eg a network problem,
in cases where numcopies checks prevented the resumed
move from dropping the object from the source repository.
* add, fix, lock, rekey: When several files were being processed,
replacing an annex symlink of a file that was already processed
with a new large file could sometimes cause that large file to be
added to git. These races have been fixed.
* add: Also fix a similar race that could cause a large file be added
to git when a small file was modified or overwritten while it was
being added.
* add --batch: Fix handling of a file that is skipped due to being
gitignored.
-- Joey Hess <id@joeyh.name> Thu, 23 Jun 2022 13:31:22 -0400
git-annex (10.20220525) upstream; urgency=medium
* Special remotes with importtree=yes or exporttree=yes are once again
treated as untrusted, since files stored in them can be deleted or
modified at any time.
(Fixes a reversion in 8.20201129)
* Added support for "megabit" and related bandwidth units
in annex.stalldetection and everywhere else that git-annex parses
data units. Note that the short form is "Mbit" not "Mb" because
that differs from "MB" only in case, and git-annex parses units
case-insensitively.
* Special remotes using exporttree=yes and/or importtree=yes now
checksum content while it is being retrieved, instead of in a separate
pass at the end.
* fsck: Fix situations where the annex object file is stored in a
directory structure other than where annex symlinks point to.
* Deal with git's recent changes to fix CVE-2022-24765, which prevent
using git in a repository owned by someone else.
* Improve an error message displayed in that situation.
* Prevent git-annex init incorrectly reinitializing the repository in
that situation.
* test: When limiting tests to run with -p, work around tasty limitation
by automatically including dependent tests.
-- Joey Hess <id@joeyh.name> Wed, 25 May 2022 13:44:46 -0400
* Ignore annex.numcopies set to 0 in gitattributes or git config,
or by git-annex numcopies or by --numcopies, since that
configuration would make git-annex easily lose data.
Same for mincopies.
* assistant: When annex.autocommit is set, notice commits that
the user makes manually, and push them out to remotes promptly.
* multicast: Support uftp 5.0 by switching from aes256-cbc to
aes256-gcm.
* Fix test failure on NFS when cleaning up gpg temp directory.
* Fix a build failure with ghc 9.2.2.
Thanks, gnezdo for the patch.
* rsync 3.2.4 broke backwards-compatability by preventing exposing
filenames to the shell. Made the rsync and gcrypt special remotes
detect this and disable shellescape. Closes: #1010397
* repair: Avoid treating refs/annex/last-index or other refs that
are not commit objects as evidence of repository corruption.
-- Joey Hess <id@joeyh.name> Wed, 04 May 2022 11:45:27 -0400
git-annex (10.20220322) upstream; urgency=medium
* Directory special remotes with importtree=yes have changed to once more
take inodes into account. This will cause extra work when importing
from a directory on a FAT filesystem that changes inodes on every
mount. To avoid that extra work, set ignoreinodes=yes when initializing
a new directory special remote, or change the configuration of your
existing remote:
git-annex enableremote foo ignoreinodes=yes
* add: Avoid unncessarily converting a newly unlocked file to be stored
in git when it is not modified, even when annex.largefiles does not
match it.
* The above change to add fixes a reversion in version 10.20220222,
where git-annex unlock followed by git-annex add, followed by git
commit file could result in git thinking the file was modified
after the commit.
* Detect when an unlocked file whose content is not present has gotten
some other content appended to it, and avoid treating it as a pointer
file, so that appended content will not be checked into git, but will
be annexed like any other file.
Joey Hess
committed
* smudge: Warn when encountering a pointer file that has other content
appended to it.
* When annex.freezecontent-command is set, and the filesystem does not
support removing write bits, avoid treating it as a crippled
filesystem.
* Run annex.thawcontent-command before deleting an object file,
in case annex.freezecontent-command did something that would prevent
deletion.
* Fix propagation of nonzero exit status from git ls-files when a specified
file does not exist, or a specified directory does not contain
any files checked into git.
* Fix build with aeson 2.0.
Thanks, sternenseemann for the patch.
* Avoid git-annex test being very slow when run from within the
standalone linux tarball or OSX app.
* test: Runs tests in parallel to speed up the test suite.
* test: Added --jobs option.
* Removed vendored copy of http-client-restricted, and removed the
HttpClientRestricted build flag that avoided that dependency.
-- Joey Hess <id@joeyh.name> Tue, 22 Mar 2022 13:56:12 -0400
git-annex (10.20220222) upstream; urgency=medium
* annex.skipunknown now defaults to false, so commands like
`git annex get foo*` will not silently skip over files/dirs that are
not checked into git.
* info: Allow using matching options in more situations. File matching
options like --include will be rejected in situations where there is
no filename to match against.
* adb: Avoid find failing with "Argument list too long"
* Fix git-annex forget propagation between repositories.
(reversion introduced in version 7.20190122)
* registerurl, unregisterurl: Improved output when reading from stdin
to be more like other batch commands.
* registerurl, unregisterurl: Added --json and --json-error-messages options.
* Avoid git status taking a long time after git-annex unlock of many files.
* Pass --no-textconv when running git diff internally.
-- Joey Hess <id@joeyh.name> Tue, 22 Feb 2022 13:01:20 -0400
git-annex (10.20220127) upstream; urgency=medium
* New v10 repository version (with v9 as a stepping-stone to it).
v8 remains the default version for now.
* In v10, object files are locked using separate lock files. This allows
the object files to be kept non-writable even in repositories where
core.sharedRepository is set.
* The v10 upgrade will happen automatically, one year after the v9
upgrade, in order to allow time for any old git-annex processes that
are not aware of the locking change to finish. Or git-annex upgrade
can be used to upgrade to v10 immediately.
* In v9 upgrade, set filter.annex.process. This makes git add/checkout faster
when there are a lot of unlocked annexed files or non-annexed files, but can
also make git add of large files to the annex somewhat slower.
If this tradeoff does not work for your use case, you can still unset
filter.annex.process.
* export: When a non-annexed symlink is in the tree to be exported, skip it.
* import: When the previously exported tree contained a non-annexed symlink,
preserve it in the imported tree so it does not get deleted.
Joey Hess
committed
* enableremote, renameremote: Better handling of the unusual case where
multiple special remotes have been initialized with the same name.
* Recover from corrupted content being received from a git remote,
by deleting the temporary file when it fails to verify. This prevents
a retry from failing again.
(reversion introduced in version 8.20210903)
* adb: Added ignorefinderror configuration parameter.
* Avoid crashing when run in a bare git repo that somehow contains an
index file.
* Reject combinations of --batch (or --batch-keys) with options like
--all or --key or with filenames.
-- Joey Hess <id@joeyh.name> Thu, 27 Jan 2022 13:25:19 -0400
git-annex (8.20211231) upstream; urgency=medium
* Improved support for using git-annex in a read-only repository,
git-annex branch information from remotes that cannot be merged into
the git-annex branch will now not crash it, but will be merged in
memory.
* addurl, youtube-dl: When --check-raw prevents downloading an url,
still continue with any downloads that come after it, rather than
erroring out.
* Fix locking problems when annex.pidlock is set and concurrency is
enabled eg with -J.
* Improve error message display when autoinit fails due to eg, a
permissions problem.
* export: Avoid unncessarily re-exporting non-annexed files that were
already exported.
* Improve git command queue flushing so that eg, addurl of several
large files that take time to download will update the index for each
file, rather than deferring the index updates to the end.
* sync: Better error message when unable to export to a remote because
remote.name.annex-tracking-branch is configured to a ref that does not
exist.
* Fix build with ghc 9.0.1
* Fix build with old versions of feed library.
-- Joey Hess <id@joeyh.name> Fri, 31 Dec 2021 15:03:36 -0400
git-annex (8.20211123) upstream; urgency=medium
* Bugfix: When -J was enabled, getting files could leak an
ever-growing number of git cat-file processes.
Joey Hess
committed
* Support git's new "ort" resolver, which became the default in git 2.34.0,
and broke the test suite and automatic merge resolution of a conflict
between an annexed file and a non-annexed file.
* importfeed: Display url before starting youtube-dl download.
-- Joey Hess <id@joeyh.name> Tue, 23 Nov 2021 15:19:16 -0400
git-annex (8.20211117) upstream; urgency=medium
* filter-process: New command that can make git add/checkout faster when
there are a lot of unlocked annexed files or non-annexed files, but that
also makes git add of large annexed files slower. Use it by running:
git config filter.annex.process 'git-annex filter-process'
Joey Hess
committed
* Fix a typo in the name of youtube-dl
(reversion introduced in version 8.20210903)
* git-lfs: Fix interoperability with gitlab's implementation of the
git-lfs protocol, which requests Content-Encoding chunked.
* importfeed: Fix a crash when used in a non-unicode locale.
* migrate: New --remove-size option.
* uninit: Avoid error message when no commits have been made to the
repository yet.
* uninit: Avoid error message when there is no git-annex branch.
* metadata --batch: Avoid crashing when a non-annexed file is input,
instead output a blank line like other batch commands do.
* metadata --batch --json: Reject input whose "fields" does not consist
of arrays of strings. Such invalid input used to be silently ignored.
-- Joey Hess <id@joeyh.name> Wed, 17 Nov 2021 12:18:49 -0400
git-annex (8.20211028) upstream; urgency=medium
* Removed support for accessing git remotes that use versions of
git-annex older than 6.20180312.
* git-annex-shell: Removed several commands that were only needed to
support git-annex versions older than 6.20180312.
* Negotiate P2P protocol version with tor remotes, allowing
use of protocol version 1. This negotiation is not supported
by versions of git-annex older than 6.20180312.
* Fix bug that caused stale git-annex branch information to read
when annex.private or remote.name.annex-private is set.
* git-annex get when run as the first git-annex command in a new repo
did not populate all unlocked files.
(Reversion in version 8.20210621)
* Fix using lookupkey and info inside a subdirectory of the git repository.
* Avoid some sqlite crashes on Windows SubSystem for Linux (WSL).
* Call annex.freezecontent-command on the annex object file
after it has been moved into place in annex/objects/. This allows
the hook to freeze the file in ways that prevent moving it, such as
removing the Windows delete permission.
Thanks, Reiko Asakura.
* addurl: Support adding the same url to multiple files at the same
time when using -J with --batch --with-files.
* When retrieval from a chunked remote fails, display the error that
occurred when downloading the chunk, rather than the error that
occurred when trying to download the unchunked content, which is less
likely to actually be stored in the remote.
* Avoid crashing tilde expansion on user who does not exist.
* test: Put gpg temp home directory in system temp directory,
not filesystem being tested.
-- Joey Hess <id@joeyh.name> Thu, 28 Oct 2021 11:58:29 -0400
git-annex (8.20211011) upstream; urgency=medium
* Added annex.bwlimit and remote.name.annex-bwlimit config to limit
the bandwidth of transfers. It works for git remotes and many
but not all special remotes.
* Bug fix: Git configs such as annex.verify were incorrectly overriding
per-remote git configs such as remote.name.annex-verify.
(Reversion in version 4.20130323)
* borg: Significantly improved memory use when a borg repository
contains many archives.
* borg: Avoid trying to extract xattrs, ACLS, and bsdflags when
retrieving from a borg repository.
* Sped up git-annex smudge --clean by 25%.
Joey Hess
committed
* Resume where it left off when copying a file to/from a local git remote
was interrupted.
* sync --content: Avoid a redundant checksum of a file that was
incrementally verified, when used on NTFS and perhaps other filesystems.
* reinject: Fix crash when reinjecting a file from outside the repository.
(Reversion in version 8.20210621)