git-annex/doc/news/version_10.20230626.mdwn
2023-06-26 17:13:00 +00:00

106 lines
5.8 KiB
Markdown

News for git-annex 10.20230626:
git-annex (10.20230626) upstream; urgency=medium
.
Many commands now quote filenames that contain unusual characters the
same way that git does, to avoid exposing control characters to the
terminal. The core.quotePath config can be set to false to disable this
quoting.
git-annex 10.20230626 released with [[!toggle text="these changes"]]
[[!toggleable text=""" * Split out two new commands, git-annex pull and git-annex push.
Those plus a git commit are equivalent to git-annex sync.
(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.
* 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.
* 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.
* 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.
* Fix display when run with -J1.
* assistant: Fix a crash when a small file is deleted immediately after
being created.
* repair: Fix handling of git ref names on Windows.
* repair: Fix a crash when .git/annex/journal/ does not exist.
* Support building with optparse-applicative 0.18.1
(Thanks, Peter Simons)"""]]