From: Peter Michael Green Date: Thu, 26 Sep 2024 21:51:32 +0000 (+0000) Subject: git-annex (10.20240430-1+rpi2) trixie-staging; urgency=medium X-Git-Tag: archive/raspbian/10.20250416-2+rpi1~4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=585e98b214b89f8dd85f45b864b419e038ae14c2;p=git-annex.git git-annex (10.20240430-1+rpi2) trixie-staging; urgency=medium * Force use of llc-11 instead of llc-14. [dgit import unpatched git-annex 10.20240430-1+rpi2] --- 585e98b214b89f8dd85f45b864b419e038ae14c2 diff --cc debian/changelog index a535994713,0000000000..c29c17dcdb mode 120000,000000..100644 --- a/debian/changelog +++ b/debian/changelog @@@ -1,1 -1,0 +1,6261 @@@ - ../CHANGELOG ++git-annex (10.20240430-1+rpi2) trixie-staging; urgency=medium ++ ++ * Force use of llc-11 instead of llc-14. ++ ++ -- Peter Michael Green Thu, 26 Sep 2024 21:51:32 +0000 ++ ++git-annex (10.20240430-1+rpi1) trixie-staging; urgency=medium ++ ++ * Force use of llc-14. ++ ++ -- Peter Michael Green Sat, 13 Jul 2024 05:46:10 +0000 ++ ++git-annex (10.20240430-1) unstable; urgency=medium ++ ++ * New upstream release. ++ * Add libghc-unbounded-delays-dev build-dep. ++ ++ -- Sean Whitton Wed, 29 May 2024 10:59:06 +0100 ++ ++git-annex (10.20240129-1) unstable; urgency=medium ++ ++ * New upstream release (Closes: #1064253). ++ * Update build-dep libghc-cryptonite-dev -> libghc-crypton-dev. ++ ++ -- Sean Whitton Tue, 27 Feb 2024 14:39:55 +0800 ++ ++git-annex (10.20230802-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Mon, 21 Aug 2023 07:58:59 +0100 ++ ++git-annex (10.20230626-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Fri, 14 Jul 2023 20:58:54 +0100 ++ ++git-annex (10.20230407-2) unstable; urgency=medium ++ ++ * Further fixes for Ubuntu (Closes: #1038265): ++ - Add riscv64 to list of archs for webapp build-deps ++ - Disable LTO on ppc64el. ++ ++ -- Sean Whitton Sun, 18 Jun 2023 09:14:21 +0100 ++ ++git-annex (10.20230407-1) unstable; urgency=medium ++ ++ * New upstream release. ++ * Weaken dependency on libghc-yesod-core-dev to require only 1.2.19. ++ * Strip -Wl,-Bsymbolic-functions from LDFLAGS on Ubuntu (Closes: #1037532). ++ Thanks to Sergio Durigan Junior for the patch. ++ ++ -- Sean Whitton Wed, 14 Jun 2023 11:49:40 +0100 ++ ++git-annex (10.20230126-3) unstable; urgency=medium ++ ++ * Backport fixes for data loss bug (Closes: #1033627). ++ Thanks to Joey Hess for the report and patches. ++ ++ -- Sean Whitton Sat, 01 Apr 2023 10:57:41 -0700 ++ ++git-annex (10.20230126-2) unstable; urgency=medium ++ ++ * Add m68k to list of archs for webapp build-deps (Closes: #1031647). ++ ++ -- Sean Whitton Fri, 24 Feb 2023 13:36:59 -0700 ++ ++git-annex (10.20230126-1) unstable; urgency=medium ++ ++ * New upstream release (Closes: #1030317). ++ - Drop version trstriction on libghc-cryptonite-dev build-dep. ++ ++ -- Sean Whitton Mon, 13 Feb 2023 11:07:12 -0700 ++ ++git-annex (10.20221003-3) unstable; urgency=medium ++ ++ * Cherry-pick upstream commits 5256be61c1 and 43f681d4c1 (Closes: #1024226). ++ This includes replacing Suggests: youtube-dl with Suggests: yt-dlp. ++ Thanks to Joey Hess for the patches. ++ ++ -- Sean Whitton Mon, 21 Nov 2022 16:29:06 -0700 ++ ++git-annex (10.20221003-2) unstable; urgency=medium ++ ++ * Drop obsolete build-dep on libghc-pcre-light-dev. ++ Thanks to Ilias Tsitsimpis for pointing this out, on IRC. ++ ++ -- Sean Whitton Thu, 06 Oct 2022 18:40:55 -0700 ++ ++git-annex (10.20221003-1) unstable; urgency=medium ++ ++ * New upstream release (Closes: #1021206). ++ ++ -- Sean Whitton Tue, 04 Oct 2022 20:00:50 -0700 ++ ++git-annex (10.20220724-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Sun, 21 Aug 2022 15:06:39 -0700 ++ ++git-annex (10.20220504-1) unstable; urgency=medium ++ ++ * New upstream release (Closes: #1010397). ++ * Drop version restriction on libghc-http-conduit-dev build-dep. ++ * Loosen version restriction on libghc-optparse-applicative-dev build-dep. ++ * Add build-dep on libghc-ansi-terminal-dev. ++ ++ -- Sean Whitton Sun, 08 May 2022 14:43:05 -0700 ++ ++git-annex (8.20211123-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Mon, 29 Nov 2021 12:38:57 -0700 ++ ++git-annex (8.20211011-2) unstable; urgency=medium ++ ++ * New upstream release (Closes: #994697). ++ ++ -- Sean Whitton Mon, 18 Oct 2021 15:09:52 -0700 ++ ++git-annex (8.20210903-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Mon, 06 Sep 2021 11:32:49 -0700 ++ ++git-annex (8.20210803-1) unstable; urgency=medium ++ ++ * New upstream release. ++ * Drop patch to Git/Tree.hs from previous upload. ++ Applied upstream. ++ ++ -- Sean Whitton Mon, 16 Aug 2021 13:17:20 -0700 ++ ++git-annex (8.20210223-2) unstable; urgency=medium ++ ++ * Apply backported patch to fix special remote import bug (Closes: #986947). ++ Thanks to Joey Hess for the fix and for making me aware of the problem. ++ ++ -- Sean Whitton Wed, 14 Apr 2021 10:05:22 -0700 ++ ++git-annex (8.20210223-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Sun, 28 Feb 2021 12:49:05 -0700 ++ ++git-annex (8.20201127-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Sun, 27 Dec 2020 15:09:49 -0700 ++ ++git-annex (8.20201103-1) unstable; urgency=medium ++ ++ * Drop spurious slash from the end of Vcs-Git. ++ * New upstream release. ++ ++ -- Sean Whitton Sat, 07 Nov 2020 13:08:22 -0700 ++ ++git-annex (8.20201007-1) unstable; urgency=medium ++ ++ * New upstream release. ++ * Add build-dep on libghc-criterion-dev. ++ * Raise debhelper compat to 13, and move debian/compat->debian/control. ++ ++ -- Sean Whitton Mon, 26 Oct 2020 15:29:31 -0700 ++ ++git-annex (8.20200908-1) unstable; urgency=medium ++ ++ * New upstream release (Closes: #969908). ++ * Add deps on http-client-restricted and git-lfs Haskell libs. ++ ++ -- Sean Whitton Sun, 13 Sep 2020 20:27:50 -0700 ++ ++git-annex (8.20200330-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Mon, 30 Mar 2020 20:26:25 -0700 ++ ++git-annex (8.20200309-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Mon, 09 Mar 2020 15:12:22 -0700 ++ ++git-annex (8.20200226-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Wed, 26 Feb 2020 22:03:39 -0700 ++ ++git-annex (7.20200219-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Fri, 21 Feb 2020 07:26:47 -0700 ++ ++git-annex (7.20191230-1) unstable; urgency=medium ++ ++ * New upstream release. ++ * Add libghc-filepath-bytestring-dev build-dep. ++ * Require git >=1:2.22. ++ * d/copyright updates: ++ - Add stanza for Utility/Attoparsec.hs ++ - Drop stanza for Annex/DirHashes.hs ++ The file header was mistakenly updated to say "GPL" in upstream ++ commit f845636e30728c5c45c0559e7059aa51c188bfd6. ++ - Merge `License: GPL-2` stanza into `License: Expat or GPL-2` stanza. ++ ++ -- Sean Whitton Thu, 02 Jan 2020 20:13:14 +0000 ++ ++git-annex (7.20191114-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Mon, 18 Nov 2019 16:04:46 -0700 ++ ++git-annex (7.20191024-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Mon, 28 Oct 2019 22:28:45 -0700 ++ ++git-annex (7.20191017-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Fri, 18 Oct 2019 08:50:20 -0700 ++ ++git-annex (7.20191009-1) unstable; urgency=medium ++ ++ * New upstream release. ++ * Add libghc-unliftio-core-dev build-dep. ++ ++ -- Sean Whitton Sat, 12 Oct 2019 14:59:58 -0700 ++ ++git-annex (7.20190912-1) unstable; urgency=medium ++ ++ * New upstream release. ++ - Update build-dep bounds. ++ * Fix COPYRIGHT for Annex/DirHashes.hs. ++ File header indicates GPL, not AGPL. ++ * Try dropping patch introduced in 7.20181211-2 upload now that v7 repos ++ are the default. ++ ++ -- Sean Whitton Sat, 28 Sep 2019 10:53:03 -0700 ++ ++git-annex (7.20190129-3) unstable; urgency=medium ++ ++ * Resolve a race in test cleanup by making second attempt more forceful ++ (Closes: #924800). ++ ++ -- Sean Whitton Sun, 31 Mar 2019 12:34:02 -0700 ++ ++git-annex (7.20190129-2) unstable; urgency=medium ++ ++ * Cherry pick upstream commit a64fca92f6dfea086b7b9e65a2b83fb50fee1ecf. ++ The most recent upload failed to build on mips; this should prevent ++ that failure. ++ ++ -- Sean Whitton Sun, 03 Feb 2019 15:54:29 -0700 ++ ++git-annex (7.20190129-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Tue, 29 Jan 2019 14:26:52 -0700 ++ ++git-annex (7.20190122-2) unstable; urgency=medium ++ ++ * Add 'flaky' restriction to d/tests/control (Closes: #920549). ++ Thanks to Paul Gevers for the suggestion. ++ ++ -- Sean Whitton Sat, 26 Jan 2019 21:30:24 -0700 ++ ++git-annex (7.20190122-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Tue, 22 Jan 2019 11:24:41 -0700 ++ ++git-annex (7.20181211-2) unstable; urgency=medium ++ ++ * Disable some flaky tests. ++ See https://git-annex.branchable.com/todo/test_suite_failures_since_7.20181121/ ++ ++ -- Sean Whitton Tue, 18 Dec 2018 21:54:07 +0000 ++ ++git-annex (7.20181211-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Wed, 12 Dec 2018 14:00:11 -0700 ++ ++git-annex (7.20181205-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Wed, 05 Dec 2018 14:52:08 -0700 ++ ++git-annex (7.20181121-2) unstable; urgency=medium ++ ++ * Drop build-dep on haskell-stm. ++ * Build-dep on ghc (>= 8.4.3), with which haskell-stm is now bundled. ++ ++ -- Sean Whitton Tue, 04 Dec 2018 21:25:28 -0700 ++ ++git-annex (7.20181121-1) unstable; urgency=medium ++ ++ * New upstream release. ++ * In d/rules, set DEB_HOST_ARCH using the ?= assignment operator. ++ See description of Lintian tag debian-rules-sets-dpkg-architecture-variable. ++ * Add Lintian overrides: ++ - debian-copyright-is-symlink ++ - debian-news-entry-has-unknown-version 7.20181031. ++ * Move and trim text under "License: Expat or GPL-2" to its own ++ "License: GPL-2" stanza to avoid duplicate license definitions in ++ COPYRIGHT. ++ * Declare compliance with Debian Policy 4.2.1. ++ Unfortunately, however, the package does not yet build reproducibly. ++ ++ -- Sean Whitton Wed, 21 Nov 2018 20:38:10 -0700 ++ ++git-annex (7.20181105-1) unstable; urgency=medium ++ ++ * New upstream release (Closes: #909023, #909435). ++ * Demote youtube-dl from Recommends to Suggests (Closes: #909434). ++ ++ -- Sean Whitton Mon, 05 Nov 2018 13:01:08 -0700 ++ ++git-annex (6.20180913-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Thu, 13 Sep 2018 16:55:07 -0700 ++ ++git-annex (6.20180807-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Fri, 10 Aug 2018 13:50:53 +0100 ++ ++git-annex (6.20180719-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Sun, 22 Jul 2018 13:20:48 +0800 ++ ++git-annex (6.20180626-2) unstable; urgency=high ++ ++ * Drop debian/cabal-wrapper, which should no longer be needed ++ (Closes: #902499). ++ Thanks Ilias Tsitsimpis for noticing that the wrapper is no longer ++ needed. ++ * urgency=high because CVE fixes have not yet migrated to testing users. ++ ++ -- Sean Whitton Thu, 28 Jun 2018 13:13:16 +0100 ++ ++git-annex (6.20180626-1) unstable; urgency=high ++ ++ * New upstream release. ++ - Fixes CVE-2018-10857 ++ - Fixes CVE-2018-10859 ++ See upstream CHANGELOG and NEWS for full details. ++ * Patch COPYRIGHT to refer to the MIT license by 'Expat'. ++ ++ -- Sean Whitton Tue, 26 Jun 2018 16:54:59 +0100 ++ ++git-annex (6.20180509-1) unstable; urgency=medium ++ ++ * New upstream release. ++ ++ -- Sean Whitton Wed, 09 May 2018 16:42:22 -0700 ++ ++git-annex (6.20180427-1) unstable; urgency=medium ++ ++ * New upstream release. ++ - Drop 'wget' from Depends. ++ - Add 'adb' to Suggests. ++ ++ -- Sean Whitton Sat, 28 Apr 2018 22:29:24 -0700 ++ ++git-annex (6.20180316-1) unstable; urgency=medium ++ ++ * New upstream release. ++ * Stop passing -optlo-O2 to ghc on arm{hf,el} in d/rules. ++ Upstream's git-annex.cabal now handles this. We still have to pass ++ -O1 -- see upstream commit bc1d56bdfd0f513e96c35059d9c32a1bba1539fd. ++ ++ -- Sean Whitton Tue, 20 Mar 2018 20:24:21 -0700 ++ ++git-annex (6.20180227-1) unstable; urgency=medium ++ ++ * New upstream release. ++ - Drop chrpath build-dep ++ - Add gnupg build-dep ++ - Add libghc-vector-dev build-dep ++ - Fix upstream's "Breaks: datalad ..." to use '<<' not '<' relation. ++ * Patch upstream's OPTIONS_GHC line out of Test.hs. ++ ++ That line is not sufficient to prevent the package build running out ++ of memory on arm{el,hf} hosts. This seems to be because ghc memory ++ leaks while compiling the files that come before Test.hs. By the time ++ it reaches Test.hs, it will run out of memory no matter how low the ++ optimisation of Test.hs is set. ++ ++ By contrast, reducing the optimisation of the whole build on ++ arm{hf,el}, as introduced in the previous upload, is sufficient to ++ avoid the memory leak breaking the build. Upstream's OPTIONS_GHC line ++ clashes with that, so patch out upstream's OPTIONS_GHC line and rely ++ on passing options to cabal-wrapper in d/rules. ++ ++ * Source package configuration for dgit-maint-merge(7) ++ - add d/source/options ++ - add d/source/patch-header. ++ ++ -- Sean Whitton Sun, 04 Mar 2018 14:23:47 -0700 ++ ++git-annex (6.20180112-2) unstable; urgency=medium ++ ++ * Pass --ghc-option=-O1 --ghc-option=-optlo-O2 to cabal-wrapper on armhf ++ and armel. This avoids the build failing due to running out of memory. ++ Thanks to Adrian Bunk for help finding the fix. ++ * Add quvi->youtube-dl change to changelog for 6.20180112-1. ++ Thanks Axel Beckert for noticing the error. ++ ++ -- Sean Whitton Fri, 16 Feb 2018 22:06:55 -0700 ++ ++git-annex (6.20180112-1) unstable; urgency=medium ++ ++ * New upstream release. ++ - Update Recommends: quvi -> Recommends: youtube-dl. ++ * Adopt package into Debian Haskell Group team maintainership. ++ - Move Richard Hartmann to Uploaders. ++ - Add myself as an uploader. ++ - Point Vcs-* at salsa. ++ * Stop copying upstream's changelog entries into the Debian changelog. ++ See /usr/share/doc/git-annex/changelog.gz for the upstream changelog. ++ * Add gpg-agent to Build-Depends. ++ Needed to run the test suite. ++ * Restore upstream's (harmless) .gitattributes. ++ This means that we can `dgit push{,-source}` without any special options. ++ * Update debian/gbp.conf ++ - Update packaging branch 'debian' -> 'master'. ++ - No longer maintaining an upstream branch. Instead, invoke `git ++ merge` on upstream's release tags directly. E.g. `git merge ++ 6.20180112`. ++ - Trim some cruft. ++ ++ -- Sean Whitton Tue, 13 Feb 2018 15:02:09 -0700 ++ ++git-annex (6.20171124-1) unstable; urgency=medium ++ ++ * Package 6.20171124-1 ++ ++ -- Richard Hartmann Sun, 26 Nov 2017 12:52:18 +0100 ++ ++git-annex (6.20171124) unstable; urgency=medium ++ ++ * Display progress meter when uploading a key without size information, ++ getting the size by statting the content file. ++ * Fix build with dns-3.0. ++ ++ -- Joey Hess Fri, 24 Nov 2017 10:49:36 -0400 ++ ++git-annex (6.20171109) unstable; urgency=medium ++ ++ * Fix export of subdir of a branch. ++ * Fix exporting of non-annexed files to external special remotes. ++ * unlock, lock: Support --json. ++ * When there are multiple urls for a file, still treat it as being present ++ in the web when some urls don't work, as long as at least one url does ++ work. ++ * Makefile improvement for sudo make install. ++ Thanks, Eric Siegerman ++ * Makefile improvement for BUILDER=stack, use stack to run ghc. ++ * testremote: Test exporttree. ++ * Fix directory special remote's cleanup of empty export directories. ++ ++ -- Joey Hess Thu, 09 Nov 2017 12:21:49 -0400 ++ ++git-annex (6.20171026) unstable; urgency=medium ++ ++ * Windows: Fix reversion that caused the path used to link ++ to annexed content to include the drive letter and full path, rather ++ than being relative. (`git annex fix` will fix up after this problem). ++ * Windows build fixed, and changed to use stack for more reliable build ++ environment. ++ * Windows: Remove wget from bundle; it needs libraries that are not ++ included, and git for windows includes curl which git-annex will use ++ instead. ++ * Add day to metadata when annex.genmetadata is enabled. ++ Thanks, Sean T Parsons ++ * stack.yaml: Added nix packages section. ++ Thanks, Sean T Parsons ++ ++ -- Joey Hess Thu, 26 Oct 2017 13:56:18 -0400 ++ ++git-annex (6.20171018) unstable; urgency=medium ++ ++ * add: Replace work tree file atomically on systems supporting hard ++ links. Avoids a window where interrupting an add could result in ++ the file being moved into the annex, with no symlink yet created. ++ * webdav: Avoid unncessisarily creating the collection at the top ++ of the repository when storing files there, since that collection ++ is created by initremote. ++ (This seems to work around some brokenness of the box.com webdav ++ server, which caused uploads to be very slow or sometimes fail.) ++ * webdav: Make --debug show all webdav operations. ++ * get -J/move -J/copy -J/mirror -J/sync -J: Avoid "transfer already in ++ progress" errors when two files use the same key. ++ * Konqueror desktop file location changed to one used by plasma 5. ++ Thanks, Félix Sipma. ++ * Avoid repeated checking that files passed on the command line exist. ++ * Fix build with aws-0.17. ++ * stack.yaml: Update to lts-9.9. ++ ++ -- Joey Hess Wed, 18 Oct 2017 15:40:06 -0400 ++ ++git-annex (6.20171003) unstable; urgency=medium ++ ++ * webdav: Improve error message for failed request to include the request ++ method and path. ++ * metadata: Added --remove-all. ++ * Warn when metadata is inherited from a previous version of a file, ++ to avoid the user being surprised in cases where that behavior is not ++ desired or expected. ++ * sync: Added --cleanup, which removes local and remote synced/ branches. ++ * external: When the external special remote program crashed, a newline ++ could be output, which messed up the expected output for --batch mode. ++ * external: Avoid checking EXPORTSUPPORTED for special remotes that are ++ not configured to use exports. ++ * test: Fix reversion that made it only run inside a git repository. ++ * copy, move: Behave same with --fast when sending to remotes located ++ on a local disk as when sending to other remotes. ++ * Fix process and file descriptor leak that was exposed when ++ git-annex was built with ghc 8.2.1. Broke git-annex test on OSX ++ due to running out of FDs, and may have also leaked in other situations. ++ * info: Improve cleanup of stale transfer info files. ++ ++ -- Joey Hess Tue, 03 Oct 2017 13:18:15 -0400 ++ ++git-annex (6.20170925) unstable; urgency=medium ++ ++ * git-annex export: New command, can create and efficiently update ++ exports of trees to special remotes. ++ * Use git-annex initremote with exporttree=yes to set up a special remote ++ for use by git-annex export. ++ * Implemented export to directory, S3, and webdav special remotes. ++ * External special remote protocol extended to support export. ++ Developers of external special remotes should consider if export makes ++ sense for them and add support. ++ * sync, assistant: Update tracking exports. ++ * Support building with feed-1.0, while still supporting older versions. ++ * init: Display an additional message when it detects a filesystem that ++ allows writing to files whose write bit is not set. ++ * S3: Allow removing files from IA. ++ * webdav: Checking if a non-existent file is present on Box.com ++ triggered a bug in its webdav support that generates an infinite series ++ of redirects. Deal with such problems by assuming such behavior means ++ the file is not present. ++ * webdav: Fix lack of url-escaping of filenames. Mostly impacted exports ++ of filenames containing eg spaces. ++ * webdav: Changed path used on webdav server for temporary files. ++ ++ -- Joey Hess Mon, 25 Sep 2017 11:13:58 -0400 ++ ++git-annex (6.20170818) unstable; urgency=high ++ ++ * Security fix: Disallow hostname starting with a dash, which ++ would get passed to ssh and be treated an option. This could ++ be used by an attacker who provides a crafted repository url ++ to cause the victim to execute arbitrary code via -oProxyCommand. ++ (The same class of security hole recently affected git itself.) ++ * git-annex.cabal: Deal with breaking changes in Cabal 2.0. ++ * Fix build with QuickCheck 2.10. ++ * fsck: Support --json. ++ * move, copy: Support --batch. ++ * Added GIT_ANNEX_VECTOR_CLOCK environment variable, which can be used to ++ override the default timestamps used in log files in the git-annex ++ branch. This is a dangerous environment variable; use with caution. ++ * Fix a git-annex test failure when run on NFS due to NFS lock files ++ preventing directory removal. ++ * test: Avoid most situations involving failure to delete test ++ directories, by forking a worker process and only deleting the test ++ directory once it exits. ++ * Disable http-client's default 30 second response timeout when HEADing ++ an url to check if it exists. Some web servers take quite a long time ++ to answer a HEAD request. ++ * Added remote configuration settings annex-ignore-command and ++ annex-sync-command, which are dynamic equivilants of the annex-ignore ++ and annex-sync configurations. ++ * Prevent spaces from being embedded in the name of new WORM keys, ++ as that handing spaces in keys would complicate things like the ++ external special remote protocol. ++ * migrate: WORM keys containing spaces will be migrated to not contain ++ spaces anymore. ++ * External special remotes will refuse to operate on keys with spaces in ++ their names. That has never worked correctly due to the design of the ++ external special remote protocol. Display an error message suggesting ++ migration. ++ * Fix incorrect external special remote documentation, which said that ++ the filename parameter to the TRANSFER command could not contain ++ spaces. It can in fact contain spaces. Special remotes implementors ++ that relied on that may need to fix bugs in their special remotes. ++ * Fix the external special remotes git-annex-remote-ipfs, ++ git-annex-remote-torrent and the example.sh template to correctly ++ support filenames with spaces. ++ * Windows: Win32 package has subsumed Win32-extras; update dependency. ++ ++ -- Joey Hess Fri, 18 Aug 2017 11:19:06 -0400 ++ ++git-annex (6.20170520) unstable; urgency=medium ++ ++ * move --to=here moves from all reachable remotes to the local repository. ++ * initremote, enableremote: Support gpg subkeys suffixed with an ++ exclamation mark, which forces gpg to use a specific subkey. ++ * Improve progress display when watching file size, in cases where ++ a transfer does not resume. ++ * Fix transfer log file locking problem when running concurrent ++ transfers. ++ * Avoid concurrent git-config setting problem when running concurrent ++ threads. ++ * metadata: When setting metadata of a file that did not exist, ++ no error message was displayed, unlike getting metadata and most other ++ git-annex commands. Fixed this oversight. ++ * Added annex.resolvemerge configuration, which can be set to false to ++ disable the usual automatic merge conflict resolution done by git-annex ++ sync and the assistant. ++ * sync: Added --no-resolvemerge option. ++ * Avoid error about git-annex-shell not being found when ++ syncing with -J with a git remote where git-annex-shell is not ++ installed. ++ * Fix bug that prevented transfer locks from working when ++ run on SMB or other filesystem that does not support fcntl locks ++ and hard links. ++ * assistant: Merge changes from refs/remotes/foo/master into master. ++ Previously, only sync branches were merged. This makes regular git push ++ into a repository watched by the assistant auto-merge. ++ * Makefile: Install completions for the fish and zsh shells ++ when git-annex is built with optparse-applicative-0.14. ++ * assistant: Don't trust OSX FSEvents's eventFlagItemModified to be called ++ when the last writer of a file closes it; apparently that sometimes ++ does not happen, which prevented files from being quickly added. ++ ++ -- Joey Hess Mon, 12 Jun 2017 13:37:16 -0400 ++ ++git-annex (6.20170519) unstable; urgency=medium ++ ++ * Ssh password prompting improved when using -J for concurrency. ++ When ssh connection caching is enabled (and when GIT_ANNEX_USE_GIT_SSH ++ is not set), only one ssh password prompt will be made per host, and ++ only one ssh password prompt will be made at a time. ++ * When built with concurrent-output 1.9, ssh password prompts will no ++ longer interfere with the -J display. ++ * Removed dependency on MissingH, instead depending on the split library. ++ * Progress is displayed for transfers of files of unknown size. ++ * Work around bug in git 2.13.0 involving GIT_COMMON_DIR that broke ++ merging changes into adjusted branches. ++ ++ -- Joey Hess Fri, 19 May 2017 10:37:57 -0400 ++ ++git-annex (6.20170510) unstable; urgency=medium ++ ++ * When a http remote does not expose an annex.uuid config, only warn ++ about it once, not every time git-annex is run. ++ * multicast: New command, uses uftp to multicast annexed files, for eg ++ a classroom setting. ++ * Added remote..annex-push and remote..annex-pull ++ which can be useful to make remotes that don't get fully synced with ++ local changes. ++ * Disable git-annex's support for GIT_SSH and GIT_SSH_COMMAND, unless ++ GIT_ANNEX_USE_GIT_SSH=1 is also set in the environment. This is ++ necessary because as feared, the extra -n parameter that git-annex ++ passes breaks uses of these environment variables that expect exactly ++ the parameters that git passes. ++ * enableremote: When enabling a non-special remote, param=value ++ parameters can't be used, so error out if any are provided. ++ * enableremote: Fix re-enabling of special remotes that have a git ++ url, so that eg, encryption key changes take effect. They were silently ++ ignored, a reversion introduced in 6.20160527. ++ * gcrypt: Support re-enabling to change eg, encryption parameters. ++ This was never supported before. ++ * git annex add -u now supported, analagous to git add -u ++ * version: Added "dependency versions" line. ++ * Keys marked as dead are now skipped by --all. ++ * annex.backend is the new name for what was annex.backends, and takes ++ a single key-value backend, rather than the unncessary and confusing ++ list. The old option still works if set. ++ ++ -- Joey Hess Wed, 10 May 2017 15:05:22 -0400 ++ ++git-annex (6.20170321) unstable; urgency=medium ++ ++ * Bugfix: Passing a command a filename that does not exist sometimes ++ did not display an error, when a path to a directory was also passed. ++ * status: Propigate nonzero exit code from git status. ++ * Linux standalone builds put the bundled ssh last in PATH, ++ so any system ssh will be preferred over it. ++ * assistant: Add 1/200th second delay between checking each file ++ in the full transfer scan, to avoid using too much CPU. ++ * get -J: Improve distribution of jobs amoung remotes when there are more ++ jobs than remotes. ++ * fsck -q: When a file has bad content, include the name of the file ++ in the warning message. ++ * Windows: Improve handling of shebang in external special remote ++ program, searching for the program in the PATH. ++ * Drop support for building with old versions of dns, http-conduit, ++ directory, feed, and http-types. ++ * Windows: Fix bug in shell script shebang lookup code that ++ caused a "delayed read on closed handle" error. ++ * git-annex-shell: Fix bug when used with a recently cloned repository, ++ where "merging" messages were included in the output of configlist ++ (and perhaps other commands) and caused a "Failed to get annex.uuid ++ configuration" error. ++ * Support GIT_SSH and GIT_SSH_COMMAND, which are handled close the same ++ as they are by git. However, unlike git, git-annex sometimes needs to ++ pass the -n parameter when using these. ++ * sync --content-of=path (-C path) added for when you want to sync ++ only some files' contents, not the whole working tree. ++ ++ -- Joey Hess Tue, 21 Mar 2017 11:27:38 -0400 ++ ++git-annex (6.20170301.1) unstable; urgency=medium ++ ++ * Fix reversion in yesterday's release that made SHA1E and MD5E backends ++ not work. ++ ++ -- Joey Hess Wed, 01 Mar 2017 12:46:03 -0400 ++ ++git-annex (6.20170301) unstable; urgency=medium ++ ++ * No changes from 6.20170228; a new version number was needed due ++ to a problem with Hackage. ++ ++ -- Joey Hess Wed, 01 Mar 2017 12:06:02 -0400 ++ ++git-annex (6.20170228) unstable; urgency=medium ++ ++ * Cryptographically secure hashes can be forced to be used in a ++ repository, by setting annex.securehashesonly. ++ This does not prevent the git repository from containing links ++ to insecure hashes, but it does prevent the content of such files ++ from being added to .git/annex/objects by any method. ++ * Tighten key parser to prevent SHA1 collision attacks generating ++ two keys that have the same SHA1. (Only done for keys that contain ++ a hash). This ensures that signed git commits of annexed files ++ will remain secure, as long as git-annex is using a secure hashing ++ backend. ++ * fsck: Warn about any files whose content is present, that don't ++ use secure hashes, when annex.securehashesonly is set. ++ * init: When annex.securehashesonly has been set with git-annex config, ++ copy that value to the annex.securehashesonly git config. ++ * Added --securehash option to match files using a secure hash function, ++ and corresponding securehash preferred content expression. ++ * sync, merge: Fail when the current branch has no commits yet, instead ++ of not merging in anything from remotes and appearing to succeed. ++ * Run ssh with -n whenever input is not being piped into it, ++ to avoid it consuming stdin that it shouldn't. ++ This fixes git-annex-checkpresentkey --batch remote, ++ which didn't output results for all keys passed into it. Other ++ git-annex commands that communicate with a remote over ssh may also ++ have been consuming stdin that they shouldn't have, which could have ++ impacted using them in eg, shell scripts. ++ * sync: Improve integration with receive.denyCurrentBranch=updateInstead, ++ displaying error messages from the remote then it fails to update ++ its checked out branch. ++ * Added post-recieve hook, which makes updateInstead work with direct ++ mode and adjusted branches. ++ * init: Set up the post-receive hook. ++ * sync: When syncing with a local repository located on a crippled ++ filesystem, run the post-receive hook there, since it wouldn't get run ++ otherwise. This makes pushing to repos on FAT-formatted removable ++ drives update them when receive.denyCurrentBranch=updateInstead. ++ * config group groupwanted numcopies schedule wanted required: ++ Avoid displaying extraneous messages about repository auto-init, ++ git-annex branch merging, etc, when being used to get information. ++ * adjust: Fix behavior when used in a repository that contains ++ submodules. ++ * Run wget with -nv instead of -q, so it will display HTTP errors. ++ * Run curl with -S, so HTTP errors are displayed, even when ++ it's otherwise silent. ++ * When downloading in --json or --quiet mode, use curl in preference ++ to wget, since curl is able to display only errors to stderr, unlike ++ wget. ++ * status: Pass --ignore-submodules=when option on to git status. ++ * config --set: As well as setting value in git-annex branch, ++ set local gitconfig. This is needed especially for ++ annex.securehashesonly, which is read only from local gitconfig and not ++ the git-annex branch. ++ * Removed support for building with the old cryptohash library. ++ Building with that library made git-annex not support SHA3; it's time ++ for that to always be supported in case SHA2 dominoes. ++ * git-annex.cabal: Make crypto-api a dependency even when built w/o ++ webapp and test suite. ++ ++ -- Joey Hess Tue, 28 Feb 2017 14:39:47 -0400 ++ ++git-annex (6.20170214) unstable; urgency=medium ++ ++ * Increase default cost for p2p remotes from 200 to 1000. ++ This makes git-annex prefer transferring data from special ++ remotes when possible. ++ * Remove -j short option for --json-progress; that option was already ++ taken for --json. ++ * vicfg: Include the numcopies configuation. ++ * config: New command for storing configuration in the git-annex branch. ++ * annex.autocommit can be configured via git-annex config, to control ++ the default behavior in all clones of a repository. ++ * New annex.synccontent config setting, which can be set to true to make ++ git annex sync default to --content. This may become the default at ++ some point in the future. As well as being configuable by git config, ++ it can be configured by git-annex config to control the default ++ behavior in all clones of a repository. ++ * stack.yaml: Update to lts-7.18. ++ * Some optimisations to string splitting code. ++ * unused: When large files are checked right into git, avoid buffering ++ their contents in memory. ++ * unused: Improved memory use significantly when there are a lot ++ of differences between branches. ++ * Wormhole pairing will start to provide an appid to wormhole on ++ 2021-12-31. An appid can't be provided now because Debian stable is going ++ to ship a older version of git-annex that does not provide an appid. ++ Assumption is that by 2021-12-31, this version of git-annex will be ++ shipped in a Debian stable release. If that turns out to not be the ++ case, this change will need to be cherry-picked into the git-annex in ++ Debian stable, or its wormhole pairing will break. ++ * Fix build with aws 0.16. Thanks, aristidb. ++ * assistant: Make --autostart --foreground wait for the children it ++ starts. Before, the --foreground was ignored when autostarting. ++ * initremote: When a uuid= parameter is passed, use the specified ++ UUID for the new special remote, instead of generating a UUID. ++ This can be useful in some situations, eg when the same data can be ++ accessed via two different special remote backends. ++ * import: Changed how --deduplicate, --skip-duplicates, and ++ --clean-duplicates determine if a file is a duplicate. ++ Before, only content known to be present somewhere was considered ++ a duplicate. Now, any content that has been annexed before will be ++ considered a duplicate, even if all annexed copies of the data have ++ been lost. ++ Note that --clean-duplicates and --deduplicate still check ++ numcopies, so won't delete duplicate files unless there's an annexed ++ copy. ++ * import: --deduplicate and --skip-duplicates were implemented ++ inneficiently; they unncessarily hashed each file twice. They have ++ been improved to only hash once. ++ * import: Added --reinject-duplicates. ++ * Added git template directory to Linux standalone tarball and OSX ++ app bundle. ++ * Improve pid locking code to work on filesystems that don't support hard ++ links. ++ * S3: Fix check of uuid file stored in bucket, which was not working. ++ * Work around sqlite's incorrect handling of umask when creating ++ databases. ++ ++ -- Joey Hess Tue, 14 Feb 2017 14:22:00 -0400 ++ ++git-annex (6.20170818-1) unstable; urgency=high ++ ++ * Package 6.20170818-1 ++ ++ -- Richard Hartmann Sun, 20 Aug 2017 12:25:57 +0200 ++ ++git-annex (6.20170818) unstable; urgency=high ++ ++ * Security fix: Disallow hostname starting with a dash, which ++ would get passed to ssh and be treated an option. This could ++ be used by an attacker who provides a crafted repository url ++ to cause the victim to execute arbitrary code via -oProxyCommand. ++ (The same class of security hole recently affected git itself.) ++ * git-annex.cabal: Deal with breaking changes in Cabal 2.0. ++ * Fix build with QuickCheck 2.10. ++ * fsck: Support --json. ++ * move, copy: Support --batch. ++ * Added GIT_ANNEX_VECTOR_CLOCK environment variable, which can be used to ++ override the default timestamps used in log files in the git-annex ++ branch. This is a dangerous environment variable; use with caution. ++ * Fix a git-annex test failure when run on NFS due to NFS lock files ++ preventing directory removal. ++ * test: Avoid most situations involving failure to delete test ++ directories, by forking a worker process and only deleting the test ++ directory once it exits. ++ * Disable http-client's default 30 second response timeout when HEADing ++ an url to check if it exists. Some web servers take quite a long time ++ to answer a HEAD request. ++ * Added remote configuration settings annex-ignore-command and ++ annex-sync-command, which are dynamic equivilants of the annex-ignore ++ and annex-sync configurations. ++ * Prevent spaces from being embedded in the name of new WORM keys, ++ as that handing spaces in keys would complicate things like the ++ external special remote protocol. ++ * migrate: WORM keys containing spaces will be migrated to not contain ++ spaces anymore. ++ * External special remotes will refuse to operate on keys with spaces in ++ their names. That has never worked correctly due to the design of the ++ external special remote protocol. Display an error message suggesting ++ migration. ++ * Fix incorrect external special remote documentation, which said that ++ the filename parameter to the TRANSFER command could not contain ++ spaces. It can in fact contain spaces. Special remotes implementors ++ that relied on that may need to fix bugs in their special remotes. ++ * Fix the external special remotes git-annex-remote-ipfs, ++ git-annex-remote-torrent and the example.sh template to correctly ++ support filenames with spaces. ++ * Windows: Win32 package has subsumed Win32-extras; update dependency. ++ ++ -- Joey Hess Fri, 18 Aug 2017 11:19:06 -0400 ++ ++git-annex (6.20170520) unstable; urgency=medium ++ ++ * move --to=here moves from all reachable remotes to the local repository. ++ * initremote, enableremote: Support gpg subkeys suffixed with an ++ exclamation mark, which forces gpg to use a specific subkey. ++ * Improve progress display when watching file size, in cases where ++ a transfer does not resume. ++ * Fix transfer log file locking problem when running concurrent ++ transfers. ++ * Avoid concurrent git-config setting problem when running concurrent ++ threads. ++ * metadata: When setting metadata of a file that did not exist, ++ no error message was displayed, unlike getting metadata and most other ++ git-annex commands. Fixed this oversight. ++ * Added annex.resolvemerge configuration, which can be set to false to ++ disable the usual automatic merge conflict resolution done by git-annex ++ sync and the assistant. ++ * sync: Added --no-resolvemerge option. ++ * Avoid error about git-annex-shell not being found when ++ syncing with -J with a git remote where git-annex-shell is not ++ installed. ++ * Fix bug that prevented transfer locks from working when ++ run on SMB or other filesystem that does not support fcntl locks ++ and hard links. ++ * assistant: Merge changes from refs/remotes/foo/master into master. ++ Previously, only sync branches were merged. This makes regular git push ++ into a repository watched by the assistant auto-merge. ++ * Makefile: Install completions for the fish and zsh shells ++ when git-annex is built with optparse-applicative-0.14. ++ * assistant: Don't trust OSX FSEvents's eventFlagItemModified to be called ++ when the last writer of a file closes it; apparently that sometimes ++ does not happen, which prevented files from being quickly added. ++ ++ -- Joey Hess Mon, 12 Jun 2017 13:37:16 -0400 ++ ++git-annex (6.20170519) unstable; urgency=medium ++ ++ * Ssh password prompting improved when using -J for concurrency. ++ When ssh connection caching is enabled (and when GIT_ANNEX_USE_GIT_SSH ++ is not set), only one ssh password prompt will be made per host, and ++ only one ssh password prompt will be made at a time. ++ * When built with concurrent-output 1.9, ssh password prompts will no ++ longer interfere with the -J display. ++ * Removed dependency on MissingH, instead depending on the split library. ++ * Progress is displayed for transfers of files of unknown size. ++ * Work around bug in git 2.13.0 involving GIT_COMMON_DIR that broke ++ merging changes into adjusted branches. ++ ++ -- Joey Hess Fri, 19 May 2017 10:37:57 -0400 ++ ++git-annex (6.20170510) unstable; urgency=medium ++ ++ * When a http remote does not expose an annex.uuid config, only warn ++ about it once, not every time git-annex is run. ++ * multicast: New command, uses uftp to multicast annexed files, for eg ++ a classroom setting. ++ * Added remote..annex-push and remote..annex-pull ++ which can be useful to make remotes that don't get fully synced with ++ local changes. ++ * Disable git-annex's support for GIT_SSH and GIT_SSH_COMMAND, unless ++ GIT_ANNEX_USE_GIT_SSH=1 is also set in the environment. This is ++ necessary because as feared, the extra -n parameter that git-annex ++ passes breaks uses of these environment variables that expect exactly ++ the parameters that git passes. ++ * enableremote: When enabling a non-special remote, param=value ++ parameters can't be used, so error out if any are provided. ++ * enableremote: Fix re-enabling of special remotes that have a git ++ url, so that eg, encryption key changes take effect. They were silently ++ ignored, a reversion introduced in 6.20160527. ++ * gcrypt: Support re-enabling to change eg, encryption parameters. ++ This was never supported before. ++ * git annex add -u now supported, analagous to git add -u ++ * version: Added "dependency versions" line. ++ * Keys marked as dead are now skipped by --all. ++ * annex.backend is the new name for what was annex.backends, and takes ++ a single key-value backend, rather than the unncessary and confusing ++ list. The old option still works if set. ++ ++ -- Joey Hess Wed, 10 May 2017 15:05:22 -0400 ++ ++git-annex (6.20170321) unstable; urgency=medium ++ ++ * Bugfix: Passing a command a filename that does not exist sometimes ++ did not display an error, when a path to a directory was also passed. ++ * status: Propigate nonzero exit code from git status. ++ * Linux standalone builds put the bundled ssh last in PATH, ++ so any system ssh will be preferred over it. ++ * assistant: Add 1/200th second delay between checking each file ++ in the full transfer scan, to avoid using too much CPU. ++ * get -J: Improve distribution of jobs amoung remotes when there are more ++ jobs than remotes. ++ * fsck -q: When a file has bad content, include the name of the file ++ in the warning message. ++ * Windows: Improve handling of shebang in external special remote ++ program, searching for the program in the PATH. ++ * Drop support for building with old versions of dns, http-conduit, ++ directory, feed, and http-types. ++ * Windows: Fix bug in shell script shebang lookup code that ++ caused a "delayed read on closed handle" error. ++ * git-annex-shell: Fix bug when used with a recently cloned repository, ++ where "merging" messages were included in the output of configlist ++ (and perhaps other commands) and caused a "Failed to get annex.uuid ++ configuration" error. ++ * Support GIT_SSH and GIT_SSH_COMMAND, which are handled close the same ++ as they are by git. However, unlike git, git-annex sometimes needs to ++ pass the -n parameter when using these. ++ * sync --content-of=path (-C path) added for when you want to sync ++ only some files' contents, not the whole working tree. ++ ++ -- Joey Hess Tue, 21 Mar 2017 11:27:38 -0400 ++ ++git-annex (6.20170301.1) unstable; urgency=medium ++ ++ * Fix reversion in yesterday's release that made SHA1E and MD5E backends ++ not work. ++ ++ -- Joey Hess Wed, 01 Mar 2017 12:46:03 -0400 ++ ++git-annex (6.20170301) unstable; urgency=medium ++ ++ * No changes from 6.20170228; a new version number was needed due ++ to a problem with Hackage. ++ ++ -- Joey Hess Wed, 01 Mar 2017 12:06:02 -0400 ++ ++git-annex (6.20170228) unstable; urgency=medium ++ ++ * Cryptographically secure hashes can be forced to be used in a ++ repository, by setting annex.securehashesonly. ++ This does not prevent the git repository from containing links ++ to insecure hashes, but it does prevent the content of such files ++ from being added to .git/annex/objects by any method. ++ * Tighten key parser to prevent SHA1 collision attacks generating ++ two keys that have the same SHA1. (Only done for keys that contain ++ a hash). This ensures that signed git commits of annexed files ++ will remain secure, as long as git-annex is using a secure hashing ++ backend. ++ * fsck: Warn about any files whose content is present, that don't ++ use secure hashes, when annex.securehashesonly is set. ++ * init: When annex.securehashesonly has been set with git-annex config, ++ copy that value to the annex.securehashesonly git config. ++ * Added --securehash option to match files using a secure hash function, ++ and corresponding securehash preferred content expression. ++ * sync, merge: Fail when the current branch has no commits yet, instead ++ of not merging in anything from remotes and appearing to succeed. ++ * Run ssh with -n whenever input is not being piped into it, ++ to avoid it consuming stdin that it shouldn't. ++ This fixes git-annex-checkpresentkey --batch remote, ++ which didn't output results for all keys passed into it. Other ++ git-annex commands that communicate with a remote over ssh may also ++ have been consuming stdin that they shouldn't have, which could have ++ impacted using them in eg, shell scripts. ++ * sync: Improve integration with receive.denyCurrentBranch=updateInstead, ++ displaying error messages from the remote then it fails to update ++ its checked out branch. ++ * Added post-recieve hook, which makes updateInstead work with direct ++ mode and adjusted branches. ++ * init: Set up the post-receive hook. ++ * sync: When syncing with a local repository located on a crippled ++ filesystem, run the post-receive hook there, since it wouldn't get run ++ otherwise. This makes pushing to repos on FAT-formatted removable ++ drives update them when receive.denyCurrentBranch=updateInstead. ++ * config group groupwanted numcopies schedule wanted required: ++ Avoid displaying extraneous messages about repository auto-init, ++ git-annex branch merging, etc, when being used to get information. ++ * adjust: Fix behavior when used in a repository that contains ++ submodules. ++ * Run wget with -nv instead of -q, so it will display HTTP errors. ++ * Run curl with -S, so HTTP errors are displayed, even when ++ it's otherwise silent. ++ * When downloading in --json or --quiet mode, use curl in preference ++ to wget, since curl is able to display only errors to stderr, unlike ++ wget. ++ * status: Pass --ignore-submodules=when option on to git status. ++ * config --set: As well as setting value in git-annex branch, ++ set local gitconfig. This is needed especially for ++ annex.securehashesonly, which is read only from local gitconfig and not ++ the git-annex branch. ++ * Removed support for building with the old cryptohash library. ++ Building with that library made git-annex not support SHA3; it's time ++ for that to always be supported in case SHA2 dominoes. ++ * git-annex.cabal: Make crypto-api a dependency even when built w/o ++ webapp and test suite. ++ ++ -- Joey Hess Tue, 28 Feb 2017 14:39:47 -0400 ++ ++git-annex (6.20170214) unstable; urgency=medium ++ ++ * Increase default cost for p2p remotes from 200 to 1000. ++ This makes git-annex prefer transferring data from special ++ remotes when possible. ++ * Remove -j short option for --json-progress; that option was already ++ taken for --json. ++ * vicfg: Include the numcopies configuation. ++ * config: New command for storing configuration in the git-annex branch. ++ * annex.autocommit can be configured via git-annex config, to control ++ the default behavior in all clones of a repository. ++ * New annex.synccontent config setting, which can be set to true to make ++ git annex sync default to --content. This may become the default at ++ some point in the future. As well as being configuable by git config, ++ it can be configured by git-annex config to control the default ++ behavior in all clones of a repository. ++ * stack.yaml: Update to lts-7.18. ++ * Some optimisations to string splitting code. ++ * unused: When large files are checked right into git, avoid buffering ++ their contents in memory. ++ * unused: Improved memory use significantly when there are a lot ++ of differences between branches. ++ * Wormhole pairing will start to provide an appid to wormhole on ++ 2021-12-31. An appid can't be provided now because Debian stable is going ++ to ship a older version of git-annex that does not provide an appid. ++ Assumption is that by 2021-12-31, this version of git-annex will be ++ shipped in a Debian stable release. If that turns out to not be the ++ case, this change will need to be cherry-picked into the git-annex in ++ Debian stable, or its wormhole pairing will break. ++ * Fix build with aws 0.16. Thanks, aristidb. ++ * assistant: Make --autostart --foreground wait for the children it ++ starts. Before, the --foreground was ignored when autostarting. ++ * initremote: When a uuid= parameter is passed, use the specified ++ UUID for the new special remote, instead of generating a UUID. ++ This can be useful in some situations, eg when the same data can be ++ accessed via two different special remote backends. ++ * import: Changed how --deduplicate, --skip-duplicates, and ++ --clean-duplicates determine if a file is a duplicate. ++ Before, only content known to be present somewhere was considered ++ a duplicate. Now, any content that has been annexed before will be ++ considered a duplicate, even if all annexed copies of the data have ++ been lost. ++ Note that --clean-duplicates and --deduplicate still check ++ numcopies, so won't delete duplicate files unless there's an annexed ++ copy. ++ * import: --deduplicate and --skip-duplicates were implemented ++ inneficiently; they unncessarily hashed each file twice. They have ++ been improved to only hash once. ++ * import: Added --reinject-duplicates. ++ * Added git template directory to Linux standalone tarball and OSX ++ app bundle. ++ * Improve pid locking code to work on filesystems that don't support hard ++ links. ++ * S3: Fix check of uuid file stored in bucket, which was not working. ++ * Work around sqlite's incorrect handling of umask when creating ++ databases. ++ ++ -- Joey Hess Tue, 14 Feb 2017 14:22:00 -0400 ++ ++git-annex (6.20170101-1) unstable; urgency=medium ++ ++ * Package 6.20170101-1 ++ ++ -- Richard Hartmann Fri, 06 Jan 2017 14:48:34 +0100 ++ ++git-annex (6.20170101) unstable; urgency=medium ++ ++ * XMPP support has been removed from the assistant in this release. ++ If your repositories used XMPP to keep in sync, that will no longer ++ work, and you should enable some other remote to keep them in sync. ++ A ssh server is one way, or use the new Tor pairing feature. ++ * p2p --pair makes it easy to pair repositories, over Tor, using ++ Magic Wormhole codes to find the other repository. ++ See http://git-annex.branchable.com/tips/peer_to_peer_network_with_tor/ ++ * webapp: The "Share with a friend" and "Share with your other devices" ++ pages have been changed to pair repositories using Tor and Magic Wormhole. ++ * metadata --batch: Fix bug when conflicting metadata changes were ++ made in the same batch run. ++ * Pass annex.web-options to wget and curl after other options, so that ++ eg --no-show-progress can be set by the user to disable the default ++ --show-progress. ++ * Revert ServerAliveInterval change in 6.20161111, which caused problems ++ with too many old versions of ssh and unusual ssh configurations. ++ It should have not been needed anyway since ssh is supposted to ++ have TCPKeepAlive enabled by default. ++ * Make all --batch input, as well as fromkey and registerurl stdin ++ be processed without requiring it to be in the current encoding. ++ * p2p: --link no longer takes a remote name, instead the --name ++ option can be used. ++ * Linux standalone: Improve generation of locale definition files, ++ supporting locales such as en_GB.UTF-8. ++ * rekey --force: Incorrectly marked the new key's content as being ++ present in the local repo even when it was not. ++ * enable-tor: Put tor sockets in /var/lib/tor-annex/, rather ++ than in /etc/tor/hidden_service/. ++ * enable-tor: No longer needs to be run as root. ++ * enable-tor: When run as a regular user, also tests a connection back to ++ the hidden service over tor. ++ * Support all common locations of the torrc file. ++ * Always use filesystem encoding for all file and handle reads and ++ writes. ++ * Fix build with directory-1.3. ++ * Debian: Suggest tor and magic-wormhole. ++ * Debian: Build webapp on armel. ++ ++ -- Joey Hess Sat, 31 Dec 2016 15:11:04 -0400 ++ ++git-annex (6.20161210-1) unstable; urgency=medium ++ ++ * Package 6.20161210-1 ++ ++ -- Richard Hartmann Sat, 10 Dec 2016 20:18:21 +0100 ++ ++git-annex (6.20161210) unstable; urgency=medium ++ ++ * enable-tor: New command, enables tor hidden service for P2P syncing. ++ * p2p: New command, allows linking repositories using a P2P network. ++ * remotedaemon: Serve tor hidden service. ++ * Added git-remote-tor-annex, which allows git pull and push to the tor ++ hidden service. ++ * remotedaemon: Fork to background by default. Added --foreground switch ++ to enable old behavior. ++ * addurl: Fix bug in checking annex.largefiles expressions using ++ largerthan, mimetype, and smallerthan; the first two always failed ++ to match, and the latter always matched. ++ * Relicense 5 source files that are not part of the webapp from AGPL to GPL. ++ * map: Run xdot if it's available in PATH. On OSX, the dot command ++ does not support graphical display, while xdot does. ++ * Debian: xdot is a better interactive viewer than dot, so Suggest ++ xdot, rather than graphviz. ++ * rmurl: Multiple pairs of files and urls can be provided on the ++ command line. ++ * rmurl: Added --batch mode. ++ * fromkey: Accept multiple pairs of files and keys. ++ Thanks, Daniel Brooks. ++ * rekey: Added --batch mode. ++ * add: Stage modified non-large files when running in indirect mode. ++ (This was already done in v6 mode and direct mode.) ++ * git-annex-shell, remotedaemon, git remote: Fix some memory DOS attacks. ++ * Fix build with http-client 0.5. ++ Thanks, Alper Nebi Yasak. ++ ++ -- Joey Hess Sat, 10 Dec 2016 11:56:25 -0400 ++ ++git-annex (6.20161118-1) unstable; urgency=medium ++ ++ * Package 6.20161118-1 ++ ++ -- Richard Hartmann Fri, 18 Nov 2016 17:37:25 +0100 ++ ++git-annex (6.20161118) unstable; urgency=medium ++ ++ * git-annex.cabal: Loosen bounds on persistent to allow 2.5, which ++ on Debian has been patched to work with esqueleto. ++ This may break cabal's resolver on non-Debian systems; ++ if so, either use stack to build, or run cabal with ++ --constraint='persistent ==2.2.4.1' ++ Hopefully this mess with esqueleto will be resolved soon. ++ * sync: Pass --allow-unrelated-histories to git merge when used with git ++ git 2.9.0 or newer. This makes merging a remote into a freshly created ++ direct mode repository work the same as it works in indirect mode. ++ * Avoid backtraces on expected failures when built with ghc 8; ++ only use backtraces for unexpected errors. ++ * fsck --all --from was checking the existence and content of files ++ in the local repository, rather than on the special remote. Oops. ++ * Linux arm standalone: Build with a 32kb page size, which is needed ++ on several ARM NAS devices, including Drobo 5N, and WD NAS. ++ ++ -- Joey Hess Fri, 18 Nov 2016 11:43:14 -0400 ++ ++git-annex (6.20161111-1) unstable; urgency=medium ++ ++ * Package 6.20161111-1 ++ ++ -- Richard Hartmann Wed, 16 Nov 2016 19:39:39 +0100 ++ ++git-annex (6.20161111) unstable; urgency=medium ++ ++ * Restarting a crashing git process could result in filename encoding ++ issues when not in a unicode locale, as the restarted processes's ++ handles were not read in raw mode. ++ * Make .git/annex/ssh.config file work with versions of ssh older than ++ 7.3, which don't support Include. When used with an older version ++ of ssh, any ServerAliveInterval in ~/.ssh/config will be overridden ++ by .git/annex/ssh.config. ++ * S3: Support the special case endpoint needed for the cn-north-1 region. ++ * Webapp: Don't list the Frankfurt S3 region, as this (and some other new ++ regions) need V4 authorization which the aws library does not yet use. ++ * reinject --known: Avoid second, unncessary checksum of file. ++ * OSX: Remove RPATHs from git-annex binary, which are not needed, ++ slow down startup, and break the OSX Sierra linker. ++ * webapp: Explicitly avoid checking for auth in static subsite ++ requests. Yesod didn't used to do auth checks for that, but this may ++ have changed. ++ * Linux standalone: Avoid using hard links in the tarball so it can be ++ untarred on eg, afs which does not support them. ++ ++ -- Joey Hess Fri, 11 Nov 2016 14:46:39 -0400 ++ ++git-annex (6.20161031-1) unstable; urgency=medium ++ ++ * Package 6.20161031-1 ++ * Update cabal dependency on persistent Closes: #842572 ++ ++ -- Richard Hartmann Sun, 06 Nov 2016 19:22:02 +0100 ++ ++git-annex (6.20161031) unstable; urgency=medium ++ ++ * Assistant, repair: Fix ignoring of git fsck errors due to ++ duplicate file entries in tree objects. ++ * Linux standalone: Fix location of locale files in the bundle. ++ * Fix reversion in 6.20161012 that prevented adding files with a space ++ in their name. ++ ++ -- Joey Hess Mon, 31 Oct 2016 18:55:59 -0400 ++ ++git-annex (6.20161027-1) unstable; urgency=medium ++ ++ * Package 6.20161027-1 ++ ++ -- Richard Hartmann Thu, 27 Oct 2016 21:53:55 +0200 ++ ++git-annex (6.20161027) unstable; urgency=medium ++ ++ * lock, smudge: Fix edge cases where data loss could occur in v6 mode ++ when the keys database was not populated. ++ * upgrade: Handle upgrade to v6 when the repository already contains ++ v6 unlocked files whose content is already present. ++ * Improve style of offline html build of website. ++ * importfeed: Drop URL parameters from file extension. ++ Thanks, James MacMahon. ++ * Assistant, repair: Improved filtering out of git fsck lines about ++ duplicate file entries in tree objects. ++ * test: Deal with gpg-agent behavior change that broke the test suite. ++ * Improve ssh socket cleanup code to skip over the cruft that ++ NFS sometimes puts in a directory when a file is being deleted. ++ * If a transfer fails for some reason, but some data managed to be sent, ++ the transfer will be retried. (The assistant already did this.) ++ * Run ssh with ServerAliveInterval 60, so that stalled transfers will ++ be noticed within about 3 minutes. ++ (Any setting in your ~/.ssh/config or /etc/ssh/ssh_config ++ overrides this.) ++ ++ -- Joey Hess Thu, 27 Oct 2016 15:21:58 -0400 ++ ++git-annex (6.20161012-1) unstable; urgency=medium ++ ++ * Package 6.20161012-1 ++ ++ -- Richard Hartmann Tue, 25 Oct 2016 21:28:12 +0200 ++ ++git-annex (6.20161012) unstable; urgency=medium ++ ++ * Optimisations to time it takes git-annex to walk working tree and find ++ files to work on. Sped up by around 18%. ++ * Optimisations to git-annex branch query and setting, avoiding repeated ++ copies of the environment. Speeds up commands like ++ "git-annex find --in remote" by over 50%. ++ * Optimised git-annex branch log file timestamp parsing. ++ * Add "total-size" field to --json-progress output. ++ * Make --json-progress output be shown even when the size of a object ++ is not known. ++ * Multiple external special remote processes for the same remote will be ++ started as needed when using -J. This should not beak any existing ++ external special remotes, because running multiple git-annex commands ++ at the same time could already start multiple processes for the same ++ external special remotes. ++ * Linux standalone: Include locale files in the bundle, and generate ++ locale definition files for the locales in use when starting runshell. ++ (Currently only done for utf-8 locales.) ++ * Avoid using a lot of memory when large objects are present in the git ++ repository and have to be checked to see if they are a pointed to an ++ annexed file. Cases where such memory use could occur included, but ++ were not limited to: ++ - git commit -a of a large unlocked file (in v5 mode) ++ - git-annex adjust when a large file was checked into git directly ++ * When auto-upgrading a v3 remote, avoid upgrading to version 6, ++ instead keep it at version 5. ++ * Support using v3 repositories without upgrading them to v5. ++ * sync: Fix bug in adjusted branch merging that could cause recently ++ added files to be lost when updating the adjusted branch. ++ ++ -- Joey Hess Wed, 12 Oct 2016 09:37:41 -0400 ++ ++git-annex (6.20160923-1) unstable; urgency=medium ++ ++ * Package 6.20160923-1 ++ ++ -- Richard Hartmann Fri, 30 Sep 2016 20:31:25 +0200 ++ ++git-annex (6.20160923) unstable; urgency=medium ++ ++ * Rate limit console progress display updates to 10 per second. ++ Was updating as frequently as changes were reported, up to hundreds of ++ times per second, which used unncessary bandwidth when running git-annex ++ over ssh etc. ++ * Make --json and --quiet work when used with -J. ++ Previously, -J override the other options. ++ * addurl, get: Added --json-progress option, which adds progress ++ objects to the json output. ++ * Remove key:null from git-annex add --json output. ++ * copy, move, mirror: Support --json and --json-progress. ++ * Improve gpg secret key list parser to deal with changes in gpg 2.1.15. ++ Fixes key name display in webapp. ++ * info: Support being passed a treeish, and show info about the annexed ++ files in it similar to how a directory is handled. ++ * sync: Previously, when run in a branch with a slash in its name, ++ such as "foo/bar", the sync branch was "synced/bar". That conflicted ++ with the sync branch used for branch "bar", so has been changed to ++ "synced/foo/bar". ++ * Note that if you're using an old version of git-annex to sync with ++ a branch with a slash in its name, it won't see some changes synced by ++ this version, and this version won't see some changes synced by the older ++ version. This is not a problem if there's a central bare repository, ++ but may impact other configurations until git-annex is upgraded to this ++ version. ++ * adjust: Previously, when adjusting a branch with a slash in its name, ++ such as "foo/bar", the adjusted branch was "adjusted/bar(unlocked)". ++ That conflicted with the adjusted branch used for branch "bar", ++ so has been changed to "adjusted/foo/bar(unlocked)" ++ * Also, running sync in an adjusted branch did not correctly sync ++ changes back to the parent branch when it had a slash in its name. ++ This bug has been fixed. ++ * addurl, importfeed: Improve behavior when file being added is gitignored. ++ ++ -- Joey Hess Fri, 23 Sep 2016 09:43:26 -0400 ++ ++git-annex (6.20160907) unstable; urgency=medium ++ ++ * Windows: Handle shebang in external special remote program. ++ * Fix formatting of git-annex-smudge man page, and improve mdwn2man. ++ Thanks, Jim Paris. ++ * examimekey: Allow being run in a git repo that is not initialized by ++ git-annex yet. ++ * Android: Fix disabling use of cp --reflink=auto, curl, sha224, and sha384. ++ * Make --json and --quiet suppress automatic init messages, and any ++ other messages that might be output before a command starts. ++ Fixes a reversion introduced in version 5.20150727. ++ * Assistant, repair: Filter out git fsck lines about duplicate file ++ entries in tree objects. ++ * get -J, sync --content -J: Download different files from different ++ remotes when the remotes have the same costs. ++ ++ -- Joey Hess Wed, 07 Sep 2016 11:12:11 -0400 ++ ++git-annex (6.20160808-1) unstable; urgency=medium ++ ++ * Package 6.2016008-1 ++ ++ -- Richard Hartmann Sat, 27 Aug 2016 01:23:16 +0200 ++ ++git-annex (6.20160808) unstable; urgency=medium ++ ++ * metadata --json output format has changed, adding a inner json object ++ named "fields" which contains only the fields and their values. ++ This should be easier to parse than the old format, which mixed up ++ metadata fields with other keys in the json object. ++ Any consumers of the old format will need to be updated. ++ * Added metadata --batch option, which allows getting, setting, deleting, ++ and modifying metadata for multiple files/keys. ++ * Added --branch option to copy, drop, fsck, get, metadata, mirror, move, ++ and whereis commands. This option makes git-annex operate on files that ++ are included in a specified branch (or other treeish). ++ * git-annex.cabal: Temporarily limit to http-conduit <2.2.0 ++ since aws 0.14.0 is not compatible with the newer version. ++ * git-annex.cabal: Temporarily limit to persistent <2.5 ++ since esqueleto 2.4.3 is not compatible with the newer version. ++ * Removed dependency on json library; all JSON is now handled by aeson. ++ * When built with uuid-1.3.12, generate more random UUIDs than before. ++ (However, this did not impact git-annex much, so a hard depedency has ++ not been added on uuid-1.3.12.) ++ * info: When run on a file now includes an indication of whether ++ the content is present locally. ++ * get, move, copy, mirror: Added --failed switch which retries ++ failed copies/moves. ++ * Re-enable accumulating transfer failure log files for command-line ++ actions (disabled in 5.20150522), and remove the log files after ++ successful transfers. ++ ++ -- Joey Hess Mon, 08 Aug 2016 11:42:17 -0400 ++ ++git-annex (6.20160719-1) unstable; urgency=medium ++ ++ * Package 6.20160719-1 ++ * Note that upstream typo-ed the version as June, I am releasing as July ++ ++ -- Richard Hartmann Wed, 20 Jul 2016 07:50:14 +0200 ++ ++git-annex (6.20160619) unstable; urgency=medium ++ ++ * get, drop: Add --batch and --json options. ++ * testremote: Fix crash when testing a freshly made external special remote. ++ * Remove unnecessary rpaths in the git-annex binary, but only when ++ it's built using make, not cabal. ++ This speeds up git-annex startup time by around 50%. ++ * Speed up startup time by caching the refs that have been merged into ++ the git-annex branch. ++ This can speed up git-annex commands by as much as a second, ++ depending on the number of remotes. ++ * fsck: Fix a reversion in direct mode fsck of a file that is ++ present when the location log thinks it is not. Reversion introduced ++ in version 5.20151208. ++ * uninit: Fix crash due to trying to write to deleted keys db. ++ Reversion introduced by v6 mode support, affects v5 too. ++ * Fix a similar crash when the webapp is used to delete a repository. ++ * Support checking presence of content at a http url that redirects to ++ a ftp url. ++ * log: Added --all option. ++ * New url for git-remote-gcrypt, now maintained by spwhitton. ++ * webapp: Don't allow deleting a remote that has syncing disabled, ++ as such a deletion will never finish. ++ Thanks, Farhan Kathawala. ++ * webapp: Escape unusual characters in ssh hostnames when generating ++ mangled hostnames. This allows IPv6 addresses to be used on filesystems ++ not supporting : in filenames. ++ * Avoid any access to keys database in v5 mode repositories, which ++ are not supposed to use that database. ++ * Remove the EKG build flag, since Gentoo for some reason decided to ++ enable this flag, depsite it not being intended for production use and ++ so disabled by default. ++ ++ -- Joey Hess Tue, 19 Jul 2016 14:17:54 -0400 ++ ++git-annex (6.20160613-1) unstable; urgency=medium ++ ++ * Package 6.20160613-1 ++ ++ -- Richard Hartmann Tue, 19 Jul 2016 18:48:50 +0200 ++ ++git-annex (6.20160613) unstable; urgency=medium ++ ++ * Improve SHA*E extension extraction code. ++ * Windows: Avoid terminating git-annex branch lines with \r\n when ++ union merging and performing transitions. ++ * Remove Makefile from cabal tarball; man page building is now handled by ++ a small haskell program. ++ * sync --content: Fix bug that caused transfers of files to be made ++ to a git remote that does not have a UUID. This particularly impacted ++ clones from gcrypt repositories. ++ * Pass -S to git commit-tree when commit.gpgsign is set and when ++ making a non-automatic commit, in order to preserve current behavior ++ when used with git 2.9, which has stopped doing this itself. ++ * remotedaemon: Fixed support for notifications of changes to gcrypt ++ remotes, which was never tested and didn't quite work before. ++ * list: Do not include dead repositories. ++ * move --to: Better behavior when system is completely out of disk space; ++ drop content from disk before writing location log. ++ * Avoid a crash if getpwuid does not work, when querying the user's full ++ name. ++ * Automatically enable v6 mode when initializing in a clone from a repo ++ that has an adjusted branch checked out. ++ * v6: Fix initialization of a bare clone of a repo that has an adjusted ++ branch checked out. ++ * v6: Fix bad automatic merge conflict resolution between an annexed file ++ and a directory with the same name when in an adjusted branch. ++ * v6: Fix bad merge in an adjusted branch that resulted in an empty tree. ++ * v6: Fix bug in initialization of clone from a repo with an adjusted branch ++ that had not been synced back to master. ++ (This bug caused broken tree objects to get built by a later git annex ++ sync.) ++ * v6: Make lock and unlock work on files whose content is not present. ++ * v6: Fix update of associated files db when unlocking a file. ++ * v6: Make git clean filter preserve the backend that was used for a file. ++ ++ -- Joey Hess Mon, 13 Jun 2016 14:57:38 -0400 ++ ++git-annex (6.20160511-1) unstable; urgency=medium ++ ++ * Package 6.20160511-1 ++ ++ -- Richard Hartmann Sat, 14 May 2016 15:50:11 +0200 ++ ++git-annex (6.20160511) unstable; urgency=medium ++ ++ * Fix bug that sometimes prevented git-annex smudge --clean from consuming ++ all its input, which resulted in git add bypassing git-annex. ++ * Fix build with directory-1.2.6.2. ++ * Improve behavior when a just added http remote is not available ++ during uuid probe. Do not mark it as annex-ignore, so it will be tried ++ again later. ++ * Android: Icon refresh. ++ Thanks, freewheelinfranks. ++ * Added DIRHASH-LOWER to external special remote protocol. ++ * git-annex.cabal: Add Setup-Depends. ++ * stack.yaml: Enable explicit-setup-deps. ++ * Windows: Fix several bugs in propigation of changes from the adjusted ++ branch back to the master branch. ++ * Windows: Fix an over-long temp directory name. ++ * map: Hide dead repositories that are not connected to the graph. ++ * map: Changed colors; red is used for untrusted repositories and grey ++ for dead. ++ * version: Display OS version and architecture too. ++ * Propigate GIT_DIR and GIT_WORK_TREE environment to external special ++ remotes. ++ * Added annex.gnupg-decrypt-options and ++ remote..annex-gnupg-decrypt-options, which are passed to gpg ++ when it's decrypting data. ++ * fsck: When a key is not previously known in the location log, ++ record something so that reinject --known will work. ++ * In the unusual configuration where annex.crippledfilesystem=true but ++ core.symlinks=true, store object contents in mixed case hash ++ directories so that symlinks will point to them. ++ * Added new encryption=sharedpubkey mode for special remotes. ++ This is useful for makking a special remote that anyone with a clone ++ of the repo and your public keys can upload files to, but only you can ++ decrypt the files stored in it. ++ ++ -- Joey Hess Wed, 11 May 2016 12:41:42 -0400 ++ ++git-annex (6.20160419-1) unstable; urgency=high ++ ++ * Package 6.20160419-1 ++ ++ -- Richard Hartmann Sat, 30 Apr 2016 08:58:17 +0200 ++ ++git-annex (6.20160419) unstable; urgency=medium ++ ++ * Fix bug that prevented resuming of uploads to encrypted special remotes ++ that used chunking. ++ * That bug could also expose the names of keys to such remotes, so it is a ++ minor security issue. ++ * Fix duplicate progress meter display when downloading from a git remote ++ over http with -J. ++ * reinject: When src file's content cannot be verified, leave it alone, ++ instead of deleting it. ++ * reinject: Added new mode which can reinject known files into the annex. ++ For example: git-annex reinject --known /mnt/backup/* ++ * calckey: New plumbing command, calculates the key that would be used ++ to refer to a file. ++ * Fix bug that prevented annex.sshcaching=false configuration from taking ++ effect when on a crippled filesystem. Thanks, divergentdave. ++ * git 2.9.0 is going to prevent git merge from merging in unrelated ++ branches. Since the webapp's pairing etc features often combine ++ together repositories with unrelated histories, work around ++ this behavior change when the assistant merges, by passing ++ --allow-unrelated-histories. Note though that this is not done ++ for git annex sync's merges, so it will follow git's default or ++ configured behavior. ++ * When git-annex is used with a git version older than 2.2.0, disable ++ support for adjusted branches, since GIT_COMMON_DIR is needed to update ++ them and was first added in that version of git. ++ * Avoid setting LOCPATH in linux standalone builds that are built with ++ a ghc that has been fixed to not hang when it cannot find locale files. ++ * Isolate test suite from global git config settings. ++ ++ -- Joey Hess Thu, 28 Apr 2016 09:31:14 -0400 ++ ++git-annex (6.20160418-1) unstable; urgency=medium ++ ++ * Package 6.20160418-1 ++ ++ -- Richard Hartmann Thu, 21 Apr 2016 06:12:10 +0200 ++ ++git-annex (6.20160418) unstable; urgency=medium ++ ++ * smudge: Print a warning when annex.thin is set, as git's smudge ++ interface does not allow honoring that configuration. ++ * webapp: When $HOME is a git repository, and has been initialized for ++ use by git-annex, opening the webapp went ahead and ran the assistant ++ there, annexing all files. Since this is almost certianly not ++ desirable, especially when the user is just opening the webapp from ++ a dekstop menu which happens to run it in $HOME, the webapp will now not ++ treat such a $HOME git repository as a git-annex repository. ++ * webapp: Update url to add gitlab.com ssh key. ++ * Fix bug in v6 mode that prevented treating unlocked executable files ++ as annexed. If you have such files, run git annex init --version=6 ++ to update the cache after upgrading to this version of git-annex. ++ * Preserve execute bits of unlocked files in v6 mode. ++ * fsck: Warn when core.sharedRepository is set and an annex object file's ++ write bit is not set and cannot be set due to the file being owned ++ by a different user. ++ * Fix hang when dropping content needs to lock the content on a ++ ssh remote, which occurred when the remote has git-annex version ++ 5.20151019 or newer. (The bug was in the client side; the remote ++ git-annex-shell does not need to be upgraded.) ++ ++ -- Joey Hess Mon, 18 Apr 2016 18:33:52 -0400 ++ ++git-annex (6.20160412-1) unstable; urgency=medium ++ ++ * Package 6.20160412-1 ++ ++ -- Richard Hartmann Fri, 15 Apr 2016 01:14:02 +0200 ++ ++git-annex (6.20160412) unstable; urgency=medium ++ ++ * adjust --unlock: Enters an adjusted branch in which all annexed files ++ are unlocked. The v6 equivilant of direct mode, but much cleaner! ++ * Upgrading a direct mode repository to v6 has changed to enter ++ an adjusted unlocked branch. This makes the direct mode to v6 upgrade ++ able to be performed in one clone of a repository without affecting ++ other clones, which can continue using v5 and direct mode. ++ * init --version=6: Automatically enter the adjusted unlocked branch ++ when filesystem doesn't support symlinks. ++ * ddar remote: fix ssh calls ++ Thanks, Robie Basak ++ * log: Display time with time zone. ++ * log --raw-date: Use to display seconds from unix epoch. ++ * v6: Close pointer file handles more quickly, to avoid problems on Windows. ++ * sync: Show output of git commit. ++ * annex.thin and annex.hardlink are now supported on Windows. ++ * unannex --fast now makes hard links on Windows. ++ * Fix bug in annex.largefiles mimetype= matching when git-annex ++ is run in a subdirectory of the repository. ++ * Fix build with ghc v7.11. Thanks, Gabor Greif. ++ ++ -- Joey Hess Tue, 12 Apr 2016 14:53:22 -0400 ++ ++git-annex (6.20160318) unstable; urgency=medium ++ ++ * metadata: Added -r to remove all current values of a field. ++ * Fix data loss that can occur when annex.pidlock is set in a repository. ++ * Fix bug preventing moving files to/from a repository with annex.pidlock set. ++ * Fix shared lock file FD leak. ++ * Fix metadata hook behavior when multiple files are added at once. ++ Thanks, Klaus Ethgen. ++ * Added dependencies on haskell mountpoints and disk-free-space ++ libraries, removing FFI code from git-annex. ++ * dropkey: Add --batch and --json. ++ * Fix OSX dmg to include libraries needed by bundled gpg, ++ lost in last release. ++ * Always try to thaw content, even when annex.crippledfilesystem is set. ++ * Correct git-annex info to include unlocked files in v6 repository. ++ * Sped up git-annex add in direct mode and v6 by using ++ git hash-object --stdin-paths. ++ * Sped up git-annex merge by using git hash-object --stdin-paths. ++ ++ -- Joey Hess Fri, 18 Mar 2016 11:30:36 -0400 ++ ++git-annex (6.20160229-1) unstable; urgency=medium ++ ++ * Package 6.20160229-1 ++ ++ -- Richard Hartmann Tue, 08 Mar 2016 00:12:28 +0100 ++ ++git-annex (6.20160229) unstable; urgency=medium ++ ++ * Update perlmagick build dependency. Closes: #789225 ++ * Fix memory leak in last release, which affected commands like ++ git-annex status when a large non-annexed file is present in the work ++ tree. ++ * fsck: When the only copy of a file is in a dead repository, mention ++ the repository. ++ * info: Mention when run in a dead repository. ++ * Linux and OSX standalone builds put the bundled gpg last in PATH, ++ so any system gpg will be preferred over it. ++ * Avoid crashing when built with MagicMime support, but when the magic ++ database cannot be loaded. ++ * Include magic database in the linux and OSX standalone builds. ++ * Fix memory leak when hashing files, which triggered during fsck ++ when an external hash program was not used. ++ (This leak was introduced in version 6.20160114.) ++ * Support --metadata fieldnumber etc ++ to match ranges of numeric values. ++ * Similarly, support preferred content expressions like ++ metadata=fieldnumber ++ * The pre-commit-annex hook script that automatically extracts ++ metadata has been updated to also use exiftool. ++ Thanks, Klaus Ethgen. ++ ++ -- Joey Hess Mon, 29 Feb 2016 12:41:49 -0400 ++ ++git-annex (6.20160217) unstable; urgency=medium ++ ++ * Support getting files from read-only repositories. ++ * checkpresentkey: Allow to be run without an explicit remote. ++ * checkpresentkey: Added --batch. ++ * Work around problem with concurrent-output when in a non-unicode locale ++ by avoiding use of it in such a locale. Instead -J will behave as if ++ it was built without concurrent-output support in this situation. ++ * Fix storing of filenames of v6 unlocked files when the filename is not ++ representable in the current locale. ++ * fsck: Detect and fix missing associated file mappings in v6 repositories. ++ * fsck: Populate unlocked files in v6 repositories whose content is ++ present in annex/objects but didn't reach the work tree. ++ * When initializing a v6 repo on a crippled filesystem, don't force it ++ into direct mode. ++ * Windows: Fix v6 unlocked files to actually work. ++ * add, addurl, import, importfeed: When in a v6 repository on a crippled ++ filesystem, add files unlocked. ++ * annex.addunlocked: New configuration setting, makes files always be ++ added unlocked. (v6 only) ++ * Improve format of v6 unlocked pointer files to support keys containing ++ slashes. ++ ++ -- Joey Hess 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 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 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 Thu, 14 Jan 2016 10:14:19 -0400 ++ ++git-annex (5.20151208-1) unstable; urgency=medium ++ ++ * Package 5.20151208-1 ++ ++ -- Richard Hartmann Wed, 09 Dec 2015 13:07:41 +0100 ++ ++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 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 Tue, 08 Dec 2015 11:14:03 -0400 ++ ++git-annex (5.20151116-1) unstable; urgency=medium ++ ++ * Package 5.20151116-1 ++ ++ -- Richard Hartmann Sat, 28 Nov 2015 10:19:20 +0100 ++ ++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 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 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 Mon, 02 Nov 2015 12:41:20 -0400 ++ ++git-annex (5.20151019-1) unstable; urgency=medium ++ ++ * Package 5.20151019-1 ++ ++ -- Richard Hartmann Mon, 19 Oct 2015 21:54:57 +0200 ++ ++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..annex-verify=false. ++ * setkey, rekey: These commands also now verify that the provided file ++ matches the expected checksum of the key, unless annex.verify=false. ++ * reinject: Already verified content; this can now be disabled by ++ setting annex.verify=false. ++ * sync, merge, assistant: When git merge failed for a reason other ++ than a conflicted merge, such as a crippled filesystem not allowing ++ particular characters in filenames, git-annex would make a merge commit ++ that could omit such files or otherwise be bad. Fixed by aborting the ++ whole merge process when git merge fails for any reason other than a ++ merge conflict. ++ * Allow building with S3 disabled again. ++ * Ported disk free space checking code to work on Solaris. ++ * Windows webapp: Fix support for entering password when setting ++ up a ssh remote. ++ * copy --auto was checking the wrong repo's preferred content. ++ (--from was checking what --to should, and vice-versa.) ++ Fixed this bug, which was introduced in version 5.20150727. ++ * Avoid unncessary write to the location log when a file is unlocked ++ and then added back with unchanged content. ++ * S3: Fix support for using https. ++ * Avoid displaying network transport warning when a ssh remote ++ does not yet have an annex.uuid set. ++ * Debian: Add torrent library to build-depends as it's packaged now, ++ and stop recommending bittornado | bittorrent. ++ * Debian: Remove build dependency on transformers library, as it is now ++ included in ghc. ++ * Debian: Remove menu file, since a desktop file is provided and ++ lintian says there can be only one. ++ ++ -- Joey Hess Mon, 19 Oct 2015 13:59:01 -0400 ++ ++git-annex (5.20150930-1) unstable; urgency=medium ++ ++ * Package 5.20150930-1 ++ ++ -- Richard Hartmann Sun, 18 Oct 2015 20:39:03 +0200 ++ ++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 Wed, 30 Sep 2015 14:31:52 -0400 ++ ++git-annex (5.20150916-1) unstable; urgency=medium ++ ++ * Package 5.20150916-1 ++ ++ -- Richard Hartmann Thu, 17 Sep 2015 12:13:47 +0200 ++ ++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 Wed, 16 Sep 2015 10:31:24 -0400 ++ ++git-annex (5.20150824-1) unstable; urgency=medium ++ ++ * Package 5.20150824-1 ++ ++ -- Richard Hartmann Sun, 13 Sep 2015 22:02:06 +0200 ++ ++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 Mon, 24 Aug 2015 14:11:05 -0700 ++ ++git-annex (5.20150812-2) unstable; urgency=medium ++ ++ * Override lintian errors ++ ++ -- Richard Hartmann Sat, 15 Aug 2015 02:02:00 +0200 ++ ++git-annex (5.20150812-1) unstable; urgency=medium ++ ++ * Package 5.20150812-1 ++ ++ -- Richard Hartmann Thu, 13 Aug 2015 20:47:58 +0200 ++ ++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 Wed, 12 Aug 2015 11:14:58 -0400 ++ ++git-annex (5.20150731-1) unstable; urgency=medium ++ ++ * Package 5.20150731 ++ ++ -- Richard Hartmann Tue, 04 Aug 2015 23:41:14 +0200 ++ ++git-annex (5.20150731) unstable; urgency=medium ++ ++ * webapp: Support enabling known gitlab.com remotes. ++ * Fix rsync special remote to work when -Jn is used for concurrent ++ uploads. ++ * The last release accidentially removed a number of options from the ++ copy command. (-J, file matching options, etc). These have been added ++ back. ++ * init: Detect when the filesystem is crippled such that it ignores ++ attempts to remove the write bit from a file, and enable direct mode. ++ Seen with eg, NTFS fuse on linux. ++ * Fix man page installation by cabal install; all the new man pages are ++ now installed. ++ ++ -- Joey Hess Fri, 31 Jul 2015 11:34:36 -0400 ++ ++git-annex (5.20150727-2) unstable; urgency=medium ++ ++ * Remove lintian from gbp.conf for now. ++ ++ -- Richard Hartmann Wed, 29 Jul 2015 21:05:31 +0200 ++ ++git-annex (5.20150727-1) unstable; urgency=medium ++ ++ * Package 5.20150727 ++ ++ -- Richard Hartmann Wed, 29 Jul 2015 00:44:11 +0200 ++ ++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 Mon, 27 Jul 2015 12:24:49 -0400 ++ ++git-annex (5.20150710-2) unstable; urgency=medium ++ ++ [ Richard Hartmann ] ++ * Joey Hess had fixed 786659. Closes: #786659 ++ ++ -- Richard Hartmann Thu, 23 Jul 2015 01:05:44 +0200 ++ ++git-annex (5.20150710-1) unstable; urgency=medium ++ ++ [ Joey Hess ] ++ * 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. ++ ++ [ Richard Hartmann ] ++ * Switch to dpkg-source 3.0 (quilt) format, just so we have any non-native ++ format ++ * Switched Maintainer to Richard Hartmann ++ ++ -- Richard Hartmann Wed, 22 Jul 2015 23:49:46 +0200 ++ ++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 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 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 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 Mon, 11 May 2015 12:08:58 -0400 ++ ++git-annex (5.20150508) unstable; urgency=medium ++ ++ * Improve behavior when a git-annex command is told to operate ++ on a file that doesn't exist. It will now continue to other ++ files specified after that on the command line, and only error out at ++ the end. ++ * S3: Enable debug logging when annex.debug or --debug is set. ++ * S3: git annex info will show additional information about a S3 remote ++ (endpoint, port, storage class) ++ * S3: Let git annex enableremote be used, without trying to recreate ++ a bucket that should already exist. ++ * S3: Fix incompatability with bucket names used by hS3; the aws library ++ cannot handle upper-case bucket names. git-annex now converts them to ++ lower case automatically. ++ * import: Check for gitignored files before moving them into the tree. ++ (Needs git 1.8.4 or newer.) ++ * import: Don't stop entire import when one file fails due to being ++ gitignored or conflicting with something in the work tree. ++ * import: Before removing a duplicate file in --deduplicate or ++ --clean-duplicates mode, verify that enough copies of its content still ++ exist. ++ * Improve integration with KDE's file manager to work with dolphin ++ version 14.12.3 while still being compatable with 4.14.2. ++ Thanks, silvio. ++ * assistant: Added --autostop to complement --autostart. ++ * Work around wget bug #784348 which could cause it to clobber git-annex ++ symlinks when downloading from ftp. ++ * Support checking ftp urls for file presence. ++ * Fix bogus failure of fsck --fast. ++ * fsck: Ignore error recording the fsck in the activity log, ++ which can happen when running fsck in a read-only repository. ++ Closes: #698559 ++ (fsck can still need to write to the repository if it find problems, ++ but a successful fsck can be done read-only) ++ * Improve quvi 0.4 output parsing to handle cases wher there is no known ++ filename extension. This is currently the case when using quvi with ++ youtube. In this case, the extension ".m" will be used. ++ * Dropped support for older versions of yesod, warp, and dbus than the ones ++ in Debian Jessie. ++ * Switch from the obsolete dataenc library for base64 encoding to sandi. ++ (Thanks, Magnus Therning) ++ * Debian's ghc now supports TH on arm! Adjust build dependencies ++ to build the webapp on arm, and enable DAV support on arm. \o/ ++ * Adjust some other arch specific build dependencies that are now ++ available on more architectures in Devian unstable. ++ * Windows: Remove cygwin ssh, the newer version of which has stopped ++ honoring the setting of HOME. Instead, copy msysgit's ssh into PATH. ++ Note that setting up a remote ssh server using password authentication ++ is known to be broken in this release on Windows. ++ * Windows: Roll back to an older version of rsync from cygwin. ++ The newer version has some dependency on a newer ssh from cygwin. ++ ++ -- Joey Hess 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 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 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 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 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 " ++ * --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 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 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 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 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 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 Wed, 31 Dec 2014 15:15:46 -0400 ++ ++git-annex (5.20141219) unstable; urgency=medium ++ ++ * Webapp: When adding a new box.com remote, use the new style chunking. ++ Thanks, Jon Ander Peñalba. ++ * External special remote protocol now includes commands for setting ++ and getting the urls associated with a key. ++ * Urls can now be claimed by remotes. This will allow creating, ++ for example, a external special remote that handles magnet: and ++ *.torrent urls. ++ * Use wget -q --show-progress for less verbose wget output, ++ when built with wget 1.16. ++ * Added bittorrent special remote. ++ * addurl behavior change: When downloading an url ending in .torrent, ++ it will download files from bittorrent, instead of the old behavior ++ of adding the torrent file to the repository. ++ * Added Recommends on aria2. ++ * When possible, build with the haskell torrent library for parsing ++ torrent files. As a fallback, can instead use btshowmetainfo from ++ bittornado | bittorrent. ++ * Fix build with -f-S3. ++ ++ -- Joey Hess Fri, 19 Dec 2014 16:53:26 -0400 ++ ++git-annex (5.20141203) unstable; urgency=medium ++ ++ * proxy: New command for direct mode repositories, allows bypassing ++ the direct mode guard in a safe way to do all sorts of things ++ including git revert, git mv, git checkout ... ++ * undo: New command to undo the most recent change to a file ++ or to the contents of a directory. ++ * Add undo action to nautilus and konqueror integration. ++ * diffdriver: New git-annex command, to make git external diff drivers ++ work with annexed files. ++ * pre-commit: Block partial commit of unlocked annexed file, since ++ that left a typechange staged in index due to some infelicity of git's ++ handling of partial commits. ++ * Work around behavior change in lsof 4.88's -F output format. ++ * S3: Switched to using the haskell aws library. ++ * S3: No longer buffers entire files in memory when uploading without ++ chunking. ++ * S3: When built with a new enough version of the haskell aws library, ++ supports doing multipart uploads, in order to store extremely large ++ files in S3 when not using chunking. ++ * Don't show "(gpg)" when decrypting the remote encryption cipher, ++ since this could be taken to read that's the only time git-annex ++ runs gpg, which is not the case. ++ * Debian package is now maintained by Gergely Nagy. ++ * Windows: Remove Alt+A keyboard shortcut, which turns out to have scope ++ outside the menus. ++ * Windows: Install ssh and other bundled programs to Git/cmd, ++ instead of Git/bin, since the latter is not in the default msysgit PATH. ++ ++ -- Joey Hess Wed, 03 Dec 2014 15:16:52 -0400 ++ ++git-annex (5.20141125) unstable; urgency=medium ++ ++ * Remove fixup code for bad bare repositories created by ++ versions 5.20131118 through 5.20131127. That fixup code would ++ accidentially fire when --git-dir was incorrectly ++ pointed at the working tree of a git-annex repository, ++ possibly resulting in data loss. Closes: #768093 ++ * Windows: Fix crash when user.name is not set in git config. ++ ++ -- Joey Hess Wed, 05 Nov 2014 11:41:51 -0400 ++ ++git-annex (5.20141024) unstable; urgency=medium ++ ++ * vicfg: Deleting configurations now resets to the default, where ++ before it has no effect. ++ * Remove hurd stuff from cabal file, since hackage currently rejects ++ it, and the test suite fails on hurd. ++ * initremote: Don't allow creating a special remote that has the same ++ name as an existing git remote. ++ * Windows: Use haskell setenv library to clean up several ugly workarounds ++ for inability to manipulate the environment on windows. This includes ++ making git-annex not re-exec itself on start on windows, and making the ++ test suite on Windows run tests without forking. ++ * glacier: Fix pipe setup when calling glacier-cli to retrieve an object. ++ * info: When run on a single annexed file, displays some info about the ++ file, including its key and size. ++ * info: When passed the name or uuid of a remote, displays info about that ++ remote. Remotes that support encryption, chunking, or embedded ++ creds will include that in their info. ++ * enableremote: When the remote has creds, update the local creds cache ++ file. Before, the old version of the creds could be left there, and ++ would continue to be used. ++ ++ -- Joey Hess Fri, 24 Oct 2014 13:03:29 -0400 ++ ++git-annex (5.20141013) unstable; urgency=medium ++ ++ * Adjust cabal file to support building w/o assistant on the hurd. ++ * Support building with yesod 1.4. ++ * S3: Fix embedcreds=yes handling for the Internet Archive. ++ * map: Handle .git prefixed remote repos. Closes: #614759 ++ * repair: Prevent auto gc from happening when fetching from a remote. ++ ++ -- Joey Hess Mon, 13 Oct 2014 10:13:06 -0400 ++ ++git-annex (5.20140927) unstable; urgency=medium ++ ++ * Really depend (not just build-depend) on new enough git for --no-gpg-sign ++ to work. Closes: #763057 ++ * Add temporary workaround for bug #763078 which broke building on armel ++ and armhf. ++ ++ -- Joey Hess Sat, 27 Sep 2014 14:25:09 -0400 ++ ++git-annex (5.20140926) unstable; urgency=high ++ ++ * Depend on new enough git for --no-gpg-sign to work. Closes: #762446 ++ * Work around failure to build on mips by using cabal, not Setup, ++ to build in debian/rules. ++ ++ -- Joey Hess Fri, 26 Sep 2014 15:09:02 -0400 ++ ++git-annex (5.20140919) unstable; urgency=high ++ ++ * Security fix for S3 and glacier when using embedcreds=yes with ++ encryption=pubkey or encryption=hybrid. CVE-2014-6274 ++ The creds embedded in the git repo were *not* encrypted. ++ git-annex enableremote will warn when used on a remote that has ++ this problem. For details, see: ++ https://git-annex.branchable.com/upgrades/insecure_embedded_creds/ ++ * assistant: Detect when repository has been deleted or moved, and ++ automatically shut down the assistant. Closes: #761261 ++ * Windows: Avoid crashing trying to list gpg secret keys, for gcrypt ++ which is not yet supported on Windows. ++ * WebDav: Fix enableremote crash when the remote already exists. ++ (Bug introduced in version 5.20140817.) ++ * add: In direct mode, adding an annex symlink will check it into git, ++ as was already done in indirect mode. ++ ++ -- Joey Hess Fri, 19 Sep 2014 12:53:42 -0400 ++ ++git-annex (5.20140915) unstable; urgency=medium ++ ++ * New annex.hardlink setting. Closes: #758593 ++ * init: Automatically detect when a repository was cloned with --shared, ++ and set annex.hardlink=true, as well as marking the repository as ++ untrusted. ++ * Fix parsing of ipv6 address in git remote address when it was not ++ formatted as an url. ++ * The annex-rsync-transport configuration is now also used when checking ++ if a key is present on a rsync remote, and when dropping a key from ++ the remote. ++ * Promote file not found warning message to an error. ++ * Fix transfer lock file FD leak that could occur when two separate ++ git-annex processes were both working to perform the same set of ++ transfers. ++ * sync: Ensure that pending changes to git-annex branch are committed ++ before push when in direct mode. (Fixing a very minor reversion.) ++ * WORM backend: Switched to include the relative path to the file inside ++ the repository, rather than just the file's base name. Note that if you're ++ relying on such things to keep files separate with WORM, you should really ++ be using a better backend. ++ * Rather than crashing when there's a problem with the requested bloomfilter ++ capacity/accuracy, fall back to a reasonable default bloom filter size. ++ * Fix build with optparse-applicative 0.10. Closes: #761484 ++ * webapp: Fixed visual glitch in xmpp pairing that was reported live by a ++ user who tracked me down in front of a coffee cart in Portland. ++ (New bug reporting method of choice?) ++ ++ -- Joey Hess Mon, 15 Sep 2014 10:45:00 -0400 ++ ++git-annex (5.20140831) unstable; urgency=medium ++ ++ * Make --help work when not in a git repository. Closes: #758592 ++ * Ensure that all lock fds are close-on-exec, fixing various problems with ++ them being inherited by child processes such as git commands. ++ * When accessing a local remote, shut down git-cat-file processes ++ afterwards, to ensure that remotes on removable media can be unmounted. ++ Closes: #758630 ++ * Fix handing of autocorrection when running outside a git repository. ++ * Fix stub git-annex test support when built without tasty. ++ * Do not preserve permissions and acls when copying files from ++ one local git repository to another. Timestamps are still preserved ++ as long as cp --preserve=timestamps is supported. Closes: #729757 ++ ++ -- Joey Hess Sun, 31 Aug 2014 12:30:08 -0700 ++ ++git-annex (5.20140817) unstable; urgency=medium ++ ++ * New chunk= option to chunk files stored in special remotes. ++ Supported by: directory, S3, webdav, gcrypt, rsync, and all external ++ and hook special remotes. ++ * Partially transferred files are automatically resumed when using ++ chunked remotes! ++ * The old chunksize= option is deprecated. Do not use for new remotes. ++ * Legacy code for directory remotes using the old chunksize= option ++ will keep them working, but more slowly than before. ++ * webapp: Automatically install Konqueror integration scripts ++ to get and drop files. ++ * repair: Removing bad objects could leave fsck finding no more ++ unreachable objects, but some branches no longer accessible. ++ Fix this, including support for fixing up repositories that ++ were incompletely repaired before. ++ * Fix cost calculation for non-encrypted remotes. ++ * Display exception message when a transfer fails due to an exception. ++ * WebDAV: Sped up by avoiding making multiple http connections ++ when storing a file. ++ * WebDAV: Avoid buffering whole file in memory when uploading and ++ downloading. ++ * WebDAV: Dropped support for DAV before 1.0. ++ * testremote: New command to test uploads/downloads to a remote. ++ * Dropping an object from a bup special remote now deletes the git branch ++ for the object, although of course the object's content cannot be deleted ++ due to the nature of bup. ++ * unlock: Better error handling; continue past files that are not available ++ or cannot be unlocked due to disk space, and try all specified files. ++ * Windows: Now uses actual inode equivilants in new direct mode ++ repositories, for safer detection of eg, renaming of files with the same ++ size and mtime. ++ * direct: Fix ugly warning messages. ++ * WORM backend: When adding a file in a subdirectory, avoid including the ++ subdirectory in the key name. ++ * S3, Glacier, WebDAV: Fix bug that prevented accessing the creds ++ when the repository was configured with encryption=shared embedcreds=yes. ++ * direct: Avoid leaving file content in misctemp if interrupted. ++ * git-annex-shell sendkey: Don't fail if a remote asks for a key to be sent ++ that already has a transfer lock file indicating it's being sent to that ++ remote. The remote may have moved between networks, or reconnected. ++ * Switched from the old haskell HTTP library to http-conduit. ++ ++ -- Joey Hess Sun, 17 Aug 2014 10:30:58 -0400 ++ ++git-annex (5.20140717) unstable; urgency=high ++ ++ * Fix minor FD leak in journal code. Closes: #754608 ++ * direct: Fix handling of case where a work tree subdirectory cannot ++ be written to due to permissions. ++ * migrate: Avoid re-checksumming when migrating from hashE to hash backend. ++ * uninit: Avoid failing final removal in some direct mode repositories ++ due to file modes. ++ * S3: Deal with AWS ACL configurations that do not allow creating or ++ checking the location of a bucket, but only reading and writing content to ++ it. ++ * resolvemerge: New plumbing command that runs the automatic merge conflict ++ resolver. ++ * Deal with change in git 2.0 that made indirect mode merge conflict ++ resolution leave behind old files. ++ * sync: Fix git sync with local git remotes even when they don't have an ++ annex.uuid set. (The assistant already did so.) ++ * Set gcrypt-publish-participants when setting up a gcrypt repository, ++ to avoid unncessary passphrase prompts. ++ This is a security/usability tradeoff. To avoid exposing the gpg key ++ ids who can decrypt the repository, users can unset ++ gcrypt-publish-participants. ++ * Install nautilus hooks even when ~/.local/share/nautilus/ does not yet ++ exist, since it is not automatically created for Gnome 3 users. ++ * Windows: Move .vbs files out of git\bin, to avoid that being in the ++ PATH, which caused some weird breakage. (Thanks, divB) ++ * Windows: Fix locking issue that prevented the webapp starting ++ (since 5.20140707). ++ ++ -- Joey Hess Thu, 17 Jul 2014 11:27:25 -0400 ++ ++git-annex (5.20140709) unstable; urgency=medium ++ ++ * Fix race in direct mode merge code that could cause all files in the ++ repository to be removed. It should be able to recover repositories ++ experiencing this bug without data loss. See: ++ http://git-annex.branchable.com/bugs/bad_merge_commit_deleting_all_files/ ++ * Fix git version that supported --no-gpg-sign. ++ * Fix bug in automatic merge conflict resolution, when one side is an ++ annexed symlink, and the other side is a non-annexed symlink. ++ * Really fix bug that caused the assistant to make many unncessary ++ empty merge commits. ++ ++ -- Joey Hess Wed, 09 Jul 2014 15:28:03 -0400 ++ ++git-annex (5.20140707) unstable; urgency=medium ++ ++ * assistant: Fix bug, introduced in last release, that caused the assistant ++ to make many unncessary empty merge commits. ++ * assistant: Fix one-way assistant->assistant sync in direct mode. ++ * Fix bug in annex.queuesize calculation that caused much more ++ queue flushing than necessary. ++ * importfeed: When annex.genmetadata is set, metadata from the feed ++ is added to files that are imported from it. ++ * Support users who have set commit.gpgsign, by disabling gpg signatures ++ for git-annex branch commits and commits made by the assistant. ++ * Fix memory leak when committing millions of changes to the git-annex ++ branch, eg after git-annex add has run on 2 million files in one go. ++ * Support building with bloomfilter 2.0.0. ++ * Run standalone install process when the assistant is started ++ (was only being run when the webapp was opened). ++ * Android: patch git to avoid fchmod, which fails on /sdcard. ++ * Windows: Got rid of that pesky DOS box when starting the webapp. ++ * Windows: Added Startup menu item so assistant starts automatically ++ on login. ++ * Windows: Fix opening file browser from webapp when repo is in a ++ directory with spaces. ++ * Windows: Assistant now logs to daemon.log. ++ ++ -- Joey Hess Mon, 07 Jul 2014 12:24:13 -0400 ++ ++git-annex (5.20140613) unstable; urgency=medium ++ ++ * Ignore setsid failures. ++ * Avoid leaving behind .tmp files when failing in some cases, including ++ importing files to a disk that is full. ++ * Avoid bad commits after interrupted direct mode sync (or merge). ++ * Fix build with wai 0.3.0. ++ * Deal with FAT's low resolution timestamps, which in combination with ++ Linux's caching of higher res timestamps while a FAT is mounted, caused ++ direct mode repositories on FAT to seem to have modified files after ++ they were unmounted and remounted. ++ * Windows: Fix opening webapp when repository is in a directory with ++ spaces in the path. ++ * Detect when Windows has lost its mind in a timezone change, and ++ automatically apply a delta to the timestamps it returns, to get back to ++ sane values. ++ ++ -- Joey Hess Fri, 13 Jun 2014 09:58:07 -0400 ++ ++git-annex (5.20140606) unstable; urgency=medium ++ ++ * webapp: When adding a new local repository, fix bug that caused its ++ group and preferred content to be set in the current repository, ++ even when not combining. ++ * webapp: Avoid stomping on existing description, group and ++ preferred content settings when enabling or combining with ++ an already existing remote. ++ * assistant: Make sanity checker tmp dir cleanup code more robust. ++ * unused: Avoid checking view branches for unused files. ++ * webapp: Include ssh port in mangled hostname. ++ * Windows: Fix bug introduced in last release that caused files ++ in the git-annex branch to have lines teminated with \r. ++ * Windows: Fix retrieving of files from local bare git repositories. ++ ++ -- Joey Hess Fri, 06 Jun 2014 12:54:06 -0400 ++ ++git-annex (5.20140529) unstable; urgency=medium ++ ++ * Fix encoding of data written to git-annex branch. Avoid truncating ++ unicode characters to 8 bits. Allow any encoding to be used, as with ++ filenames (but utf8 is the sane choice). Affects metadata and repository ++ descriptions, and preferred content expressions. ++ * assistant: When there are multiple remotes giving different ways ++ to access the same repository, honor remote cost settings and use ++ the cheapest available. ++ * webapp: More robust startup when annex directory is not a git repo. ++ * initremote/enableremote: Basic support for using with regular git remotes; ++ initremote stores the location of an already existing git remote, ++ and enableremote setups up a remote using its stored location. ++ * webapp: Support for enabling known git repositories on ssh servers. ++ The repository must have been added using initremote. ++ * webapp: When setting up a ssh remote, record it using initremote, ++ so that it can be easily enabled elsewhere. ++ * webapp: When setting up a ssh remote, if the user inputs ~/foo, ++ normalize that to foo, since it's in the home directory by default. ++ * Use exceptions in place of deprecated MonadCatchIO-transformers ++ Thanks, Ben Gamari. ++ * android: Run busybox install with -s, since some versions of Android ++ prohibit making hard links. ++ * Android webapp: Fix EvilSplicer bugs that mangled the css files, ++ preventing icons from displaying, and also slightly broke the js files. ++ ++ -- Joey Hess Thu, 29 May 2014 14:41:56 -0400 ++ ++git-annex (5.20140517) unstable; urgency=medium ++ ++ * webapp: Switched to bootstrap 3. ++ Thanks, Sören Brunk. ++ * Standalone builds now check gpg signatures before upgrading. ++ * Simplified repository description line format. The remote name, ++ if any, is always in square brackets after the description. ++ * assistant: Clean up stale tmp files on startup. ++ * webapp: Better ssh password prompting. ++ * Depend on git-remote-gcrypt 0.20130908-6. Older versions ++ fail when the assistant is run with no controlling tty. ++ * Added ddar special remote. ++ Thanks, Robie Basak. ++ * webapp: Fixed drag and drop to reorder the list of remotes. ++ * group: When no groups are specified to set, lists the current groups ++ of a repository. ++ * Add remote.$name.annex-shell configuration. ++ Thanks, Fraser Tweedale ++ * Support symlinking git-annex and git-annex-shell ++ from the Linux standalone bundle into PATH. ++ Thanks, jlebar. ++ ++ -- Joey Hess Sat, 17 May 2014 13:30:39 -0400 ++ ++git-annex (5.20140421) unstable; urgency=medium ++ ++ * assistant: Now detects immediately when other repositories push ++ changes to a ssh remote, and pulls. ++ ** XMPP is no longer needed in this configuration! ** ++ This requires the remote server have git-annex-shell with ++ notifychanges support (>= 5.20140405) ++ * webapp: Show a network signal icon next to ssh and xmpp remotes that ++ it's currently connected with. ++ * webapp: Rework xmpp nudge to prompt for either xmpp or a ssh remote ++ to be set up. ++ * sync, assistant, remotedaemon: Use ssh connection caching for git pushes ++ and pulls. ++ * remotedaemon: When network connection is lost, close all cached ssh ++ connections. ++ * Improve handling of monthly/yearly scheduling. ++ * Avoid depending on shakespeare except for when building the webapp. ++ * uninit: Avoid making unncessary copies of files. ++ * info: Allow use in a repository where annex.uuid is not set. ++ * reinit: New command that can initialize a new repository using ++ the configuration of a previously known repository. ++ Useful if a repository got deleted and you want ++ to clone it back the way it was. ++ * drop --from: When local repository is untrusted, its copy of a file does ++ not count. ++ * Bring back rsync -p, but only when git-annex is running on a non-crippled ++ file system. This is a better approach to fix #700282 while not ++ unncessarily losing file permissions on non-crippled systems. ++ * webapp: Start even if the current directory is listed in ++ ~/.config/git-annex/autostart but no longer has a git repository in it. ++ * findref: New command, like find but shows files in a specified git ref. ++ * webapp: Fix UI for removing XMPP connection. ++ * When init detects that git is not configured to commit, and sets ++ user.email to work around the problem, also make it set user.name. ++ * webapp: Support using git-annex on a remote server, which was installed ++ from the standalone tarball or OSX app, and so does not have ++ git-annex in PATH (and may also not have git or rsync in PATH). ++ * standalone tarball, OSX app: Install a ~/.ssh/git-annex-wrapper, which ++ can be used to run git-annex, git, rsync, etc. ++ ++ -- Joey Hess Sun, 20 Apr 2014 19:43:14 -0400 ++ ++git-annex (5.20140412) unstable; urgency=high ++ ++ * Last release didn't quite fix the high cpu issue in all cases, this should. ++ ++ -- Joey Hess Fri, 11 Apr 2014 17:14:38 -0400 ++ ++git-annex (5.20140411) unstable; urgency=high ++ ++ * importfeed: Filename template can now contain an itempubdate variable. ++ Needs feed 0.3.9.2. ++ * Fix rsync progress parsing in locales that use comma in number display. ++ Closes: #744148 ++ * assistant: Fix high CPU usage triggered when a monthly fsck is scheduled, ++ and the last time the job ran was a day of the month > 12. This caused a ++ runaway loop. Thanks to Anarcat for his assistance, and to Maximiliano ++ Curia for identifying the cause of this bug. ++ * Remove wget from OSX dmg, due to issues with cert paths that broke ++ git-annex automatic upgrading. Instead, curl is used, unless the ++ OSX system has wget installed, which will then be used. ++ ++ -- Joey Hess Fri, 11 Apr 2014 14:59:49 -0400 ++ ++git-annex (5.20140405) unstable; urgency=medium ++ ++ * git-annex-shell: Added notifychanges command. ++ * Improve display of dbus notifications. Thanks, Johan Kiviniemi. ++ * Fix nautilus script installation to not crash when the nautilus script dir ++ does not exist. Instead, only install scripts when the directory already ++ exists. ++ ++ -- Joey Hess Sat, 05 Apr 2014 16:54:33 -0400 ++ ++git-annex (5.20140402) unstable; urgency=medium ++ ++ * unannex, uninit: Avoid committing after every file is unannexed, ++ for massive speedup. ++ * --notify-finish switch will cause desktop notifications after each ++ file upload/download/drop completes ++ (using the dbus Desktop Notifications Specification) ++ * --notify-start switch will show desktop notifications when each ++ file upload/download starts. ++ * webapp: Automatically install Nautilus integration scripts ++ to get and drop files. ++ * tahoe: Pass -d parameter before subcommand; putting it after ++ the subcommand no longer works with tahoe-lafs version 1.10. ++ (Thanks, Alberto Berti) ++ * forget --drop-dead: Avoid removing the dead remote from the trust.log, ++ so that if git remotes for it still exist anywhere, git annex info ++ will still know it's dead and not show it. ++ * git-annex-shell: Make configlist automatically initialize ++ a remote git repository, as long as a git-annex branch has ++ been pushed to it, to simplify setup of remote git repositories, ++ including via gitolite. ++ * add --include-dotfiles: New option, perhaps useful for backups. ++ * Version 5.20140227 broke creation of glacier repositories, ++ not including the datacenter and vault in their configuration. ++ This bug is fixed, but glacier repositories set up with the broken ++ version of git-annex need to have the datacenter and vault set ++ in order to be usable. This can be done using git annex enableremote ++ to add the missing settings. For details, see ++ http://git-annex.branchable.com/bugs/problems_with_glacier/ ++ * Added required content configuration. ++ * assistant: Improve ssh authorized keys line generated in local pairing ++ or for a remote ssh server to set environment variables in an ++ alternative way that works with the non-POSIX fish shell, as well ++ as POSIX shells. ++ ++ -- Joey Hess Wed, 02 Apr 2014 16:42:53 -0400 ++ ++git-annex (5.20140320) unstable; urgency=medium ++ ++ * Fix zombie leak and general inneficiency when copying files to a ++ local git repo. ++ * Fix ssh connection caching stop method to work with openssh 6.5p1, ++ which broke the old method. ++ * webapp: Added a "Sync now" item to each repository's menu. ++ * webapp: Use securemem for constant time auth token comparisons. ++ * copy --fast --to remote: Avoid printing anything for files that ++ are already believed to be present on the remote. ++ * Commands that allow specifying which repository to act on using ++ the repository's description will now fail when multiple repositories ++ match, rather than picking a repository at random. ++ (So will --in=) ++ * Better workaround for problem umasks when eg, setting up ssh keys. ++ * "standard" can now be used as a first-class keyword in preferred content ++ expressions. For example "standard or (include=otherdir/*)" ++ * groupwanted can be used in preferred content expressions. ++ * vicfg: Allows editing preferred content expressions for groups. ++ * Improve behavior when unable to parse a preferred content expression ++ (thanks, ion). ++ * metadata: Add --get ++ * metadata: Support --key option (and some other ones like --all) ++ * For each metadata field, there's now an automatically maintained ++ "$field-lastchanged" that gives the date of the last change to that ++ field. Also the "lastchanged" field for the date of the last change ++ to any of a file's metadata. ++ * unused: In direct mode, files that are deleted from the work tree ++ and so have no content present are no longer incorrectly detected as ++ unused. ++ * Avoid encoding errors when using the unused log file. ++ * map: Fix crash when one of the remotes of a repo is a local directory ++ that does not exist, or is not a git repo. ++ * repair: Improve memory usage when git fsck finds a great many broken ++ objects. ++ * Windows: Fix some filename encoding bugs. ++ * rsync special remote: Fix slashes when used on Windows. ++ ++ -- Joey Hess Thu, 20 Mar 2014 13:21:12 -0400 ++ ++git-annex (5.20140306) unstable; urgency=high ++ ++ * sync: Fix bug in direct mode that caused a file that was not ++ checked into git to be deleted when there was a conflicting ++ merge with a remote. ++ * webapp: Now supports HTTPS. ++ * webapp: No longer supports a port specified after --listen, since ++ it was buggy, and that use case is better supported by setting up HTTPS. ++ * annex.listen can be configured, instead of using --listen ++ * annex.startupscan can be set to false to disable the assistant's startup ++ scan. ++ * Probe for quvi version at run time. ++ * webapp: Filter out from Switch Repository list any ++ repositories listed in autostart file that don't have a ++ git directory anymore. (Or are bare) ++ * webapp: Refuse to start in a bare git repository. ++ * assistant --autostart: Refuse to start in a bare git repository. ++ * webapp: Don't list the public repository group when editing a ++ git repository; it only makes sense for special remotes. ++ * view, vfilter: Add support for filtering tags and values out of a view, ++ using !tag and field!=value. ++ * vadd: Allow listing multiple desired values for a field. ++ * view: Refuse to enter a view when no branch is currently checked out. ++ * metadata: To only set a field when it's not already got a value, use ++ -s field?=value ++ * Run .git/hooks/pre-commit-annex whenever a commit is made. ++ * sync: Automatically resolve merge conflict between and annexed file ++ and a regular git file. ++ * glacier: Pass --region to glacier checkpresent. ++ * webdav: When built with a new enough haskell DAV (0.6), disable ++ the http response timeout, which was only 5 seconds. ++ * webapp: Include no-pty in ssh authorized_keys lines. ++ * assistant: Smarter log file rotation, which takes free disk space ++ into account. ++ ++ -- Joey Hess Thu, 06 Mar 2014 12:28:04 -0400 ++ ++git-annex (5.20140227) unstable; urgency=medium ++ ++ * metadata: Field names limited to alphanumerics and a few whitelisted ++ punctuation characters to avoid issues with views, etc. ++ * metadata: Field names are now case insensative. ++ * When constructing views, metadata is available about the location of the ++ file in the view's reference branch. Allows incorporating parts of the ++ directory hierarchy in a view. ++ For example `git annex view tag=* podcasts/=*` makes a view in the form ++ tag/showname. ++ * --metadata field=value can now use globs to match, and matches ++ case insensatively, the same as git annex view field=value does. ++ * annex.genmetadata can be set to make git-annex automatically set ++ metadata (year and month) when adding files. ++ * Make annex.web-options be used in several places that call curl. ++ * Fix handling of rsync remote urls containing a username, ++ including rsync.net. ++ * Preserve metadata when staging a new version of an annexed file. ++ * metadata: Support --json ++ * webapp: Fix creation of box.com and Amazon S3 and Glacier ++ repositories, broken in 5.20140221. ++ * webdav: When built with DAV 0.6.0, use the new DAV monad to avoid ++ locking files, which is not needed by git-annex's use of webdav, and ++ does not work on Box.com. ++ * webdav: Fix path separator bug when used on Windows. ++ * repair: Optimise unpacking of pack files, and avoid repeated error ++ messages about corrupt pack files. ++ * Add build dep on regex-compat to fix build on mipsel, which lacks ++ regex-tdfa. ++ * Disable test suite on sparc, which is missing optparse-applicative. ++ * Put non-object tmp files in .git/annex/misctmp, leaving .git/annex/tmp ++ for only partially transferred objects. ++ ++ -- Joey Hess Thu, 27 Feb 2014 11:34:19 -0400 ++ ++git-annex (5.20140221) unstable; urgency=medium ++ ++ * metadata: New command that can attach metadata to files. ++ * --metadata can be used to limit commands to acting on files ++ that have particular metadata. ++ * Preferred content expressions can use metadata=field=value ++ to limit them to acting on files that have particular metadata. ++ * view: New command that creates and checks out a branch that provides ++ a structured view of selected metadata. ++ * vfilter, vadd, vpop, vcycle: New commands for operating within views. ++ * pre-commit: Update metadata when committing changes to locations ++ of annexed files within a view. ++ * Add progress display for transfers to/from external special remotes. ++ * unused: Fix to actually detect unused keys when in direct mode. ++ * fsck: When run with --all or --unused, while .gitattributes ++ annex.numcopies cannot be honored since it's operating on keys ++ instead of files, make it honor the global numcopies setting, ++ and the annex.numcopies git config setting. ++ * trust, untrust, semitrust, dead: Warn when the trust level is ++ overridden in .git/config. ++ * glacier: Do not try to run glacier value create when an existing glacier ++ remote is enabled. ++ * fsck: Refuse to do anything if more than one of --incremental, --more, ++ and --incremental-schedule are given, since it's not clear which option ++ should win. ++ * Windows webapp: Can set up box.com, Amazon S3, and rsync.net remotes ++ * Windows webapp: Can create repos on removable drives. ++ * Windows: Ensure HOME is set, as needed by bundled cygwin utilities. ++ ++ -- Joey Hess Fri, 21 Feb 2014 11:23:59 -0400 ++ ++git-annex (5.20140210) unstable; urgency=medium ++ ++ * --in can now refer to files that were located in a repository at ++ some past date. For example, --in="here@{yesterday}" ++ * Fixed direct mode annexed content locking code, which is used to ++ guard against recursive file drops. ++ * This is the first beta-level release of the Windows port with important ++ fixes (see below). ++ (The webapp and assistant are still alpha-level on Windows.) ++ * sync --content: Honor annex-ignore configuration. ++ * sync: Don't try to sync with xmpp remotes, which are only currently ++ supported when using the assistant. ++ * sync --content: Re-pull from remotes after downloading content, ++ since that can take a while and other changes may be pushed in the ++ meantime. ++ * sync --content: Reuse smart copy code from copy command, including ++ handling and repairing out of date location tracking info. ++ Closes: #737480 ++ * sync --content: Drop files from remotes that don't want them after ++ getting them. ++ * sync: Fix bug in automatic merge conflict resolution code when used ++ on a filesystem not supporting symlinks, which resulted in it losing ++ track of the symlink bit of annexed files. ++ * Added ways to configure rsync options to be used only when uploading ++ or downloading from a remote. Useful to eg limit upload bandwidth. ++ * Fix initremote with encryption=pubkey to work with S3, glacier, webdav, ++ and external special remotes. ++ * Avoid building with DAV 0.6 which is badly broken (see #737902). ++ * Fix dropping of unused keys with spaces in their name. ++ * Fix build on platforms not supporting the webapp. ++ * Document in man page that sshcaching uses ssh ControlMaster. ++ Closes: #737476 ++ * Windows: It's now safe to run multiple git-annex processes concurrently ++ on Windows; the lock files have been sorted out. ++ * Windows: Avoid using unix-compat's rename, which refuses to rename ++ directories. ++ * Windows: Fix deletion of repositories by test suite and webapp. ++ * Windows: Test suite 100% passes again. ++ * Windows: Fix bug in symlink calculation code. ++ * Windows: Fix handling of absolute unix-style git repository paths. ++ * Android: Avoid crashing when unable to set file mode for ssh config file ++ due to Android filesystem horribleness. ++ ++ -- Joey Hess Mon, 10 Feb 2014 12:54:57 -0400 ++ ++git-annex (5.20140127) unstable; urgency=medium ++ ++ * sync --content: New option that makes the content of annexed files be ++ transferred. Similar to the assistant, this honors any configured ++ preferred content expressions. ++ * Remove --json option from commands not supporting it. ++ * status: Support --json. ++ * list: Fix specifying of files to list. ++ * Allow --all to be mixed with matching options like --copies and --in ++ (but not --include and --exclude). ++ * numcopies: New command, sets global numcopies value that is seen by all ++ clones of a repository. ++ * The annex.numcopies git config setting is deprecated. Once the numcopies ++ command is used to set the global number of copies, any annex.numcopies ++ git configs will be ignored. ++ * assistant: Make the prefs page set the global numcopies. ++ * Add lackingcopies, approxlackingcopies, and unused to ++ preferred content expressions. ++ * Client, transfer, incremental backup, and archive repositories ++ now want to get content that does not yet have enough copies. ++ * Client, transfer, and source repositories now do not want to retain ++ unused file contents. ++ * assistant: Checks daily for unused file contents, and when possible ++ moves them to a repository (such as a backup repository) that ++ wants to retain them. ++ * assistant: annex.expireunused can be configured to cause unused ++ file contents to be deleted after some period of time. ++ * webapp: Nudge user to see if they want to expire old unused file ++ contents when a lot of them seem to be piling up in the repository. ++ * repair: Check git version at run time. ++ * assistant: Run the periodic git gc in batch mode. ++ * added annex.secure-erase-command config option. ++ * test suite: Use tasty-rerun, and expose tasty command-line options. ++ * Optimise non-bare http remotes; no longer does a 404 to the wrong ++ url every time before trying the right url. Needs annex-bare to be ++ set to false, which is done when initially probing the uuid of a ++ http remote. ++ * webapp: After upgrading a git repository to git-annex, fix ++ bug that made it temporarily not be synced with. ++ * whereis: Support --all. ++ * All commands that support --all also support a --key option, ++ which limits them to acting on a single key. ++ ++ -- Joey Hess Mon, 27 Jan 2014 13:43:28 -0400 ++ ++git-annex (5.20140117) unstable; urgency=medium ++ ++ * Really fix FTBFS on mipsel and sparc due to test suite not being available ++ on those architectures. ++ ++ -- Joey Hess Fri, 17 Jan 2014 14:46:27 -0400 ++ ++git-annex (5.20140116) unstable; urgency=medium ++ ++ * Added tahoe special remote. ++ * external special remote protocol: Added GETGITDIR, and GETAVAILABILITY. ++ * Refuse to build with git older than 1.7.1.1, which is needed for ++ git checkout -B ++ * map: Fix display of v5 direct mode repos. ++ * repair: Support old git versions from before git fsck --no-dangling was ++ implemented. ++ * Fix a long-standing bug that could cause the wrong index file to be used ++ when committing to the git-annex branch, if GIT_INDEX_FILE is set in the ++ environment. This typically resulted in git-annex branch log files being ++ committed to the master branch and later showing up in the work tree. ++ (These log files can be safely removed.) ++ * assistant: Detect if .git/annex/index is corrupt at startup, and ++ recover. ++ * repair: Fix bug in packed refs file exploding code that caused a .gitrefs ++ directory to be created instead of .git/refs ++ * Fix FTBFS on mipsel and sparc due to test suite not being available ++ on those architectures. ++ * Android: Avoid passing --clobber to busybox wget. ++ ++ -- Joey Hess Thu, 16 Jan 2014 11:34:54 -0400 ++ ++git-annex (5.20140107) unstable; urgency=medium ++ ++ * mirror: Support --all (and --unused). ++ * external special remote protocol: Added GETUUID, GETWANTED, SETWANTED, ++ SETSTATE, GETSTATE, DEBUG. ++ * Windows: Fix bug in direct mode merge code that could cause files ++ in subdirectories to go missing. ++ * Windows: Avoid eating stdin when running ssh to add a authorized key, ++ since this is used for password prompting. ++ * Avoid looping if long-running git cat-file or git hash-object crashes ++ and keeps crashing when restarted. ++ * Assistant: Remove stale MERGE_HEAD files in lockfile cleanup. ++ * Remotes can now be made read-only, by setting remote..annex-readonly ++ * wanted, schedule: Avoid printing "ok" after requested value. ++ * assistant: Ensure that .ssh/config and .ssh/authorized_keys are not ++ group or world writable when writing to those files, as that can make ++ ssh refuse to use them, if it allows another user to write to them. ++ * addurl, importfeed: Honor annex.diskreserve as long as the size of the ++ url can be checked. ++ * add: Fix rollback when disk is completely full. ++ * assistant: Fixed several minor memory leaks that manifested when ++ adding a large number of files. ++ * assistant: Start a new git-annex transferkeys process ++ after a network connection change, so that remotes that use a persistent ++ network connection are restarted. ++ * Adjust Debian build deps to match current state of sparc, mipsel. ++ ++ -- Joey Hess Tue, 07 Jan 2014 12:22:18 -0400 ++ ++git-annex (5.20131230) unstable; urgency=medium ++ ++ * Added new external special remote interface. ++ * importfeed: Support youtube playlists. ++ * Add tasty to build-depends, so that test suite builds again. ++ (tasty was stuck in incoming.) ++ * Fix typo in test suite. ++ * Fix bug in Linux standalone build's shimming that broke git-annex-shell. ++ * Include git-receive-pack, git-upload-pack, git, and git-shell wrappers ++ in the Linux standalone build, and OSX app, so they will be available ++ when it's added to PATH. ++ * addurl, importfeed: Sanitize | and some other symbols and special ++ characters. ++ * Auto-upgrade v3 indirect repos to v5 with no changes. ++ This also fixes a problem when a direct mode repo was somehow set to v3 ++ rather than v4, and so the automatic direct mode upgrade to v5 was not ++ done. ++ * Android: Avoid trying to use Android's own ionice, which does not ++ allow specifying a command to run. Fixes transferring files to/from ++ android and probably a few other things. ++ ++ -- Joey Hess Mon, 30 Dec 2013 14:13:40 -0400 ++ ++git-annex (5.20131221) unstable; urgency=low ++ ++ * assistant: Fix OSX-specific bug that caused the startup scan to try to ++ follow symlinks to other directories, and add their contents to the annex. ++ * assistant: Set StrictHostKeyChecking yes when creating ssh remotes, ++ and add it to the configuration for any ssh remotes previously created ++ by the assistant. This avoids repeated prompts by ssh if the host key ++ changes, instead syncing with such a remote will fail. Closes: #732602 ++ * Fix test suite to cover lock --force change. ++ * Add plumbing-level lookupkey and examinekey commands. ++ * find --format: Added hashdirlower, hashdirmixed, keyname, and mtime ++ format variables. ++ * assistant: Always batch changes found in startup scan. ++ * An armel Linux standalone build is now available, which includes the ++ webapp. ++ * Programs from Linux and OSX standalone builds can now be symlinked ++ into a directory in PATH as an alternative installation method, and will ++ use readlink to find where the build was unpacked. ++ * Include man pages in Linux and OSX standalone builds. ++ * Linux standalone build now includes its own glibc and forces the linker to ++ use it, to remove dependence on the host glibc. ++ ++ -- Joey Hess Sat, 21 Dec 2013 12:00:17 -0400 ++ ++git-annex (5.20131213) unstable; urgency=low ++ ++ * Avoid using git commit in direct mode, since in some situations ++ it will read the full contents of files in the tree. ++ * assistant: Batch jobs are now run with ionice and nocache, when ++ those commands are available. ++ * assistant: Run transferkeys as batch jobs. ++ * Automatically fix up bad bare repositories created by ++ versions 5.20131118 through 5.20131127. ++ * rsync special remote: Fix fallback mode for rsync remotes that ++ use hashDirMixed. Closes: #731142 ++ * copy --from, get --from: When --force is used, ignore the ++ location log and always try to get the file from the remote. ++ * Deal with box.com changing the url of their webdav endpoint. ++ * Android: Fix SRV record lookups for XMPP to use android getprop ++ command to find DNS server, since there is no resolv.conf. ++ * import: Add --skip-duplicates option. ++ * lock: Require --force. Closes: #731606 ++ * import: better handling of overwriting an existing file/directory/broken ++ link when importing ++ * Windows: assistant and webapp work! (very experimental) ++ * Windows: Support annex.diskreserve. ++ * Fix bad behavior in Firefox, which was caused by an earlier fix to ++ bad behavior in Chromium. ++ * repair: Improve repair of git-annex index file. ++ * repair: Remove damaged git-annex sync branches. ++ * status: Ignore new files that are gitignored. ++ * Fix direct mode's handling when modifications to non-annexed files ++ are pulled from a remote. A bug prevented the files from being updated ++ in the work tree, and this caused the modification to be reverted. ++ * OSX: Remove ssh and ssh-keygen from dmg as they're included in OSX by ++ default. ++ ++ -- Joey Hess Fri, 13 Dec 2013 14:20:32 -0400 ++ ++git-annex (5.20131130) unstable; urgency=low ++ ++ * init: Fix a bug that caused git annex init, when run in a bare ++ repository, to set core.bare=false. ++ ++ -- Joey Hess Sat, 30 Nov 2013 16:32:35 -0400 ++ ++git-annex (5.20131127.1) unstable; urgency=low ++ ++ * Rebuild that does not try to use quvi 0.9 from experimental. ++ ++ -- Joey Hess Thu, 28 Nov 2013 07:57:36 -0400 ++ ++git-annex (5.20131127) unstable; urgency=low ++ ++ * webapp: Detect when upgrades are available, and upgrade if the user ++ desires. ++ (Only when git-annex is installed using the prebuilt binaries ++ from git-annex upstream, not from eg Debian.) ++ * assistant: Detect when the git-annex binary is modified or replaced, ++ and either prompt the user to restart the program, or automatically ++ restart it. ++ * annex.autoupgrade configures both the above upgrade behaviors. ++ * Added support for quvi 0.9. Slightly suboptimal due to limitations in its ++ interface compared with the old version. ++ * Bug fix: annex.version did not get set on automatic upgrade to v5 direct ++ mode repo, so the upgrade was performed repeatedly, slowing commands down. ++ * webapp: Fix bug that broke switching between local repositories ++ that use the new guarded direct mode. ++ * Android: Fix stripping of the git-annex binary. ++ * Android: Make terminal app show git-annex version number. ++ * Android: Re-enable XMPP support. ++ * reinject: Allow to be used in direct mode. ++ * Futher improvements to git repo repair. Has now been tested in tens ++ of thousands of intentionally damaged repos, and successfully ++ repaired them all. ++ * Allow use of --unused in bare repository. ++ ++ -- Joey Hess Wed, 27 Nov 2013 18:41:44 -0400 ++ ++git-annex (5.20131120) unstable; urgency=low ++ ++ * Fix Debian package to not try to run test suite, since haskell-tasty ++ is not out of new or in Build-Depends yet. ++ * dropunused, addunused: Allow "all" instead of a range to ++ act on all unused data. ++ * Ensure execute bit is set on directories when core.sharedrepository is set. ++ * Ensure that core.sharedrepository is honored when creating the .git/annex ++ directory. ++ * Improve repair code in the case where the index file is corrupt, ++ and this hides other problems from git fsck. ++ ++ -- Joey Hess Wed, 20 Nov 2013 12:54:18 -0400 ++ ++git-annex (5.20131118) unstable; urgency=low ++ ++ * Direct mode repositories now have core.bare=true set, to prevent ++ accidentally running git commands that try to operate on the work tree, ++ and so do the wrong thing in direct mode. ++ * annex.version is now set to 5 for direct mode repositories. ++ This upgrade is handled fully automatically, no need to run ++ git annex upgrade ++ * The "status" command has been renamed to "info", to allow ++ "git annex status" to be used in direct mode repositories, now that ++ "git status" won't work in them. ++ * The -c option now not only modifies the git configuration seen by ++ git-annex, but it is passed along to every git command git-annex runs. ++ * watcher: Avoid loop when adding a file owned by someone else fails ++ in indirect mode because its permissions cannot be modified. ++ * webapp: Avoid encoding problems when displaying the daemon log file. ++ * webapp: Improve UI around remote that have no annex.uuid set, ++ either because setup of them is incomplete, or because the remote ++ git repository is not a git-annex repository. ++ * Include ssh-keygen in standalone bundle. ++ * Allow optionally configuring git-annex with -fEKG to enable awesome ++ remote monitoring interfaceat http://localhost:4242/ ++ * Fix bug that caused bad information to be written to the git-annex branch ++ when running describe or other commands with a remote that has no uuid. ++ * Work around Android linker problem that had prevented git-annex from ++ running on Android 4.3 and 4.4. ++ * repair: Handle case where index file is corrupt, but all objects are ok. ++ * assistant: Notice on startup when the index file is corrupt, and ++ auto-repair. ++ * Fix direct mode merge bug when a direct mode file was deleted and replaced ++ with a directory. An ordering problem caused the directory to not get ++ created in this case. ++ Thanks to Tim for the test case. ++ * Direct mode .git/annex/objects directories are no longer left writable, ++ because that allowed writing to symlinks of files that are not present, ++ which followed the link and put bad content in an object location. ++ Thanks to Tim for the test case. ++ * fsck: Fix up .git/annex/object directory permissions. ++ * Switched to the tasty test framework. ++ * Android: Adjust default .gitignore to ignore .thumbnails at any location ++ in the tree, not just at its top. ++ * webapp: Check annex.version. ++ ++ -- Joey Hess Mon, 18 Nov 2013 10:45:43 -0400 ++ ++git-annex (4.20131106) unstable; urgency=low ++ ++ * Improve local pairing behavior when two computers both try to start ++ the pairing process separately. ++ * sync: Work even when the local git repository is new and empty, ++ with no master branch. ++ * gcrypt, bup: Fix bug that prevented using these special remotes ++ with encryption=pubkey. ++ * Fix enabling of gcrypt repository accessed over ssh; ++ git-annex-shell gcryptsetup had a bug that caused it to fail ++ with permission denied. ++ * Fix zombie process that occurred when switching between repository ++ views in the webapp. ++ * map: Work when there are gcrypt remotes. ++ * Fix build w/o webapp. ++ * Fix exception handling bug that could cause .git/annex/index to be used ++ for git commits outside the git-annex branch. Known to affect git-annex ++ when used with the git shipped with Ubuntu 13.10. ++ ++ -- Joey Hess Wed, 06 Nov 2013 11:17:47 -0400 ++ ++git-annex (4.20131101) unstable; urgency=low ++ ++ * The "git annex content" command is renamed to "git annex wanted". ++ * New --want-get and --want-drop options which can be used to ++ test preferred content settings. ++ For example, "git annex find --in . --want-drop" ++ * assistant: When autostarted, wait 5 seconds before running the startup ++ scan, to avoid contending with the user's desktop login process. ++ * webapp: When setting up a bare shared repository, enable non-fast-forward ++ pushes. ++ * sync: Show a hint about receive.denyNonFastForwards when a push fails. ++ * directory, webdav: Fix bug introduced in version 4.20131002 that ++ caused the chunkcount file to not be written. Work around repositories ++ without such a file, so files can still be retreived from them. ++ * assistant: Automatically repair damanged git repository, if it can ++ be done without losing data. ++ * assistant: Support repairing git remotes that are locally accessible ++ (eg, on removable drives). ++ * add: Fix reversion in 4.20130827 when adding unlocked files that have ++ not yet been committed. ++ * unannex: New, much slower, but more safe behavior: Copies files out of ++ the annex. This avoids an unannex of one file breaking other files that ++ link to the same content. Also, it means that the content ++ remains in the annex using up space until cleaned up with ++ "git annex unused". ++ (The behavior of unannex --fast has not changed; it still hard links ++ to content in the annex. --fast was not made the default because it is ++ potentially unsafe; editing such a hard linked file can unexpectedly ++ change content stored in the annex.) ++ ++ -- Joey Hess Fri, 01 Nov 2013 11:34:27 -0400 ++ ++git-annex (4.20131024) unstable; urgency=low ++ ++ * webapp: Fix bug when adding a remote and git-remote-gcrypt ++ is not installed. ++ * The assitant can now run scheduled incremental fsck jobs on the local ++ repository and remotes. These can be configured using vicfg or with the ++ webapp. ++ * repair: New command, which can repair damaged git repositories ++ (even ones not using git-annex). ++ * webapp: When git repository damange is detected, repairs can be ++ done using the webapp UI. ++ * Automatically and safely detect and recover from dangling ++ .git/annex/index.lock files, which would prevent git from ++ committing to the git-annex branch, eg after a crash. ++ * assistant: Detect stale git lock files at startup time, and remove them. ++ * addurl: Better sanitization of generated filenames. ++ * Better sanitization of problem characters when generating URL and WORM ++ keys. ++ * The control socket path passed to ssh needs to be 17 characters ++ shorter than the maximum unix domain socket length, because ssh ++ appends stuff to it to make a temporary filename. Closes: #725512 ++ * status: Fix space leak in local mode, introduced in version 4.20130920. ++ * import: Skip .git directories. ++ * Remove bogus runshell loop check. ++ * addurl: Improve message when adding url with wrong size to existing file. ++ * Fixed handling of URL keys that have no recorded size. ++ * status: Fix a crash if a temp file went away while its size was ++ being checked for status. ++ * Deal with git check-attr -z output format change in git 1.8.5. ++ * Work around sed output difference that led to version containing a newline ++ on OSX. ++ * sync: Fix automatic resolution of merge conflicts where one side is an ++ annexed file, and the other side is a non-annexed file, or a directory. ++ * S3: Try to ensure bucket name is valid for archive.org. ++ * assistant: Bug fix: When run in a subdirectory, files from incoming merges ++ were wrongly added to that subdirectory, and removed from their original ++ locations. ++ * Windows: Deal with strange msysgit 1.8.4 behavior of not understanding ++ DOS formatted paths for --git-dir and --work-tree. ++ * Removed workaround for bug in git 1.8.4r0. ++ * Added git-recover-repository command to git-annex source ++ (not built by default; this needs to move to someplace else). ++ * webapp: Move sidebar to the right hand side of the screen. ++ ++ -- Joey Hess Thu, 24 Oct 2013 12:59:55 -0400 ++ ++git-annex (4.20131002) unstable; urgency=low ++ ++ * Note that the layout of gcrypt repositories has changed, and ++ if you created one you must manually upgrade it. ++ See http://git-annex.branchable.com/upgrades/gcrypt/ ++ * webapp: Support setting up and using encrypted git repositories on ++ any ssh server, as well as on rsync.net. ++ * git-annex-shell: Added support for operating inside gcrypt repositories. ++ * Disable receive.denyNonFastForwards when setting up a gcrypt special ++ remote, since gcrypt needs to be able to fast-forward the master branch. ++ * import: Preserve top-level directory structure. ++ * Use cryptohash rather than SHA for hashing when no external hash program ++ is available. This is a significant speedup for SHA256 on OSX, for ++ example. ++ * Added SKEIN256 and SKEIN512 backends. ++ * Android build redone from scratch, many dependencies updated, ++ and entire build can now be done using provided scripts. ++ * assistant: Clear the list of failed transfers when doing a full transfer ++ scan. This prevents repeated retries to download files that are not ++ available, or are not referenced by the current git tree. ++ * indirect, direct: Better behavior when a file is not owned by ++ the user running the conversion. ++ * add, import, assistant: Better preserve the mtime of symlinks, ++ when when adding content that gets deduplicated. ++ * Send a git-annex user-agent when downloading urls. ++ Overridable with --user-agent option. ++ (Not yet done for S3 or WebDAV due to limitations of libraries used.) ++ * webapp: Fixed a bug where when a new remote is added, one file ++ may fail to sync to or from it due to the transferrer process not ++ yet knowing about the new remote. ++ * OSX: Bundled gpg upgraded, now compatible with config files ++ written by MacGPG. ++ * assistant: More robust inotify handling; avoid crashing if a directory ++ cannot be read. ++ * Moved list of backends and remote types from status to version ++ command. ++ ++ -- Joey Hess Wed, 02 Oct 2013 16:00:39 -0400 ++ ++git-annex (4.20130920) unstable; urgency=low ++ ++ * webapp: Initial support for setting up encrypted removable drives. ++ * Recommend using my patched gcrypt, which fixes some bugs: ++ https://github.com/joeyh/git-remote-gcrypt ++ * Support hot-swapping of removable drives containing gcrypt repositories. ++ * list: New command, displays a compact table of remotes that ++ contain files. ++ (Thanks, anarcat for display code and mastensg for inspiration.) ++ * fsck: Fix detection and fixing of present direct mode files that are ++ wrongly represented as standin symlinks on crippled filesystems. ++ * sync: Fix bug that caused direct mode mappings to not be updated ++ when merging files into the tree on Windows. ++ * sync: Don't fail if the directory it is run in gets removed by the ++ sync. ++ * addurl: Fix quvi audodetection, broken in last release. ++ * status: In local mode, displays information about variance from configured ++ numcopies levels. (--fast avoids calculating these) ++ * gcrypt: Ensure that signing key is set to one of the participants keys. ++ * webapp: Show encryption information when editing a remote. ++ * Avoid unnecessarily catting non-symlink files from git, which can be ++ so large it runs out of memory. ++ ++ -- Joey Hess Fri, 20 Sep 2013 10:34:51 -0400 ++ ++git-annex (4.20130911) unstable; urgency=low ++ ++ * Fix problem with test suite in non-unicode locale. ++ ++ -- Joey Hess Wed, 11 Sep 2013 12:14:16 -0400 ++ ++git-annex (4.20130909) unstable; urgency=low ++ ++ * initremote: Syntax change when setting up an encrypted special remote. ++ Now use keyid=$KEYID rather than the old encryption=$KEYID ++ * forget: New command, causes git-annex branch history to be forgotten ++ in a way that will spread to other clones of the repository. ++ (As long as they're running this version or newer of git-annex.) ++ * forget --drop-dead: Completely removes mentions of repositories that ++ have been marked as dead from the git-annex branch. ++ * sync, assistant: Force push of the git-annex branch. Necessary ++ to ensure it gets pushed to remotes after being rewritten by forget. ++ * Added gcrypt support. This combines a fully encrypted git ++ repository (using git-remote-gcrypt) with an encrypted git-annex special ++ remote. ++ * sync: Support syncing with gcrypt remotes. ++ * importfeed: Also ignore transient problems with downloading content ++ from feeds. ++ * Honor core.sharedrepository when receiving and adding files in direct ++ mode. ++ * enableremote: gpg keys can be removed from those a remote encrypts ++ to by passing "keyid-=$KEYID". keyid+= is also provided. ++ (Thanks, guilhem for the patch.) ++ * Added encryption=pubkey scheme, which encrypts to public keys directly ++ rather than the hybrid approach. See documentation for advantages ++ and disadvantages, but encryption=hybrid is the recommended scheme still. ++ (Thanks, guilhem for the patch.) ++ * Fix Feeds display in build flags. ++ * Remind user when annex-ignore is set for some remotes, if unable to ++ get or drop a file, possibly because it's on an ignored remote. ++ * gpg: Force --no-textmode in case the user has it turned on in config. ++ * webapp: Improve javascript's handling of longpolling connection ++ failures, by reloading the current page in this case. ++ Works around chromium behavior where ajax connections to urls ++ that were already accessed are denied after navigating back to ++ a previous page. ++ * Allow building without quvi support. ++ ++ -- Joey Hess Mon, 09 Sep 2013 09:47:02 -0400 ++ ++git-annex (4.20130827) unstable; urgency=low ++ ++ * Youtube support! (And 53 other video hosts). When quvi is installed, ++ git-annex addurl automatically uses it to detect when an page is ++ a video, and downloads the video file. ++ * web special remote: Also support using quvi, for getting files, ++ or checking if files exist in the web. ++ * unused: Is now a minimum of 30 times faster, and typically many ++ more times than that (when a repository has several branches). ++ (Thanks, guilhem for the patch.) ++ * unused: Fix bugs in two edge cases involving manually staged changes. ++ (Thanks, guilhem for the patch.) ++ * Android: Fix bug in terminal app that caused it to spin using much ++ CPU and battery. This problem was introduced in version 4.20130601. ++ * sync, merge: Bug fix: Don't try to merge into master when in a bare repo. ++ * import: Add options to control handling of duplicate files: ++ --duplicate, --deduplicate, and --clean-duplicates ++ * mirror: New command, makes two repositories contain the same set of files. ++ * Set --clobber when running wget to ensure resuming works properly. ++ * Unescape characters in 'file://...' URIs. (Thanks, guilhem for the patch.) ++ * Better error message when trying to use a git remote that has annex.ignore ++ set. ++ * Fix bug that caused typechanged symlinks to be assumed to be unlocked ++ files, so they were added to the annex by the pre-commit hook. ++ * Debian: Run the builtin test suite as an autopkgtest. ++ * Debian: Recommend ssh-askpass, which ssh will use when the assistant ++ is run w/o a tty. Closes: #719832 ++ ++ -- Joey Hess Tue, 27 Aug 2013 11:03:00 -0400 ++ ++git-annex (4.20130815) unstable; urgency=low ++ ++ * assistant, watcher: .gitignore files and other git ignores are now ++ honored, when git 1.8.4 or newer is installed. ++ (Thanks, Adam Spiers, for getting the necessary support into git for this.) ++ * importfeed: Ignores transient problems with feeds. Only exits nonzero ++ when a feed has repeatedly had a problems for at least 1 day. ++ * importfeed: Fix handling of dots in extensions. ++ * Windows: Added support for encrypted special remotes. ++ * Windows: Fixed permissions problem that prevented removing files ++ from directory special remote. Directory special remotes now fully usable. ++ ++ -- Joey Hess Thu, 15 Aug 2013 10:14:33 +0200 ++ ++git-annex (4.20130802) unstable; urgency=low ++ ++ * dropunused behavior change: Now refuses to drop the last copy of a ++ file, unless you use the --force. ++ This was the last place in git-annex that could remove data referred ++ to by the git history, without being forced. ++ Like drop, dropunused checks remotes, and honors the global ++ annex.numcopies setting. (However, .gitattributes settings cannot ++ apply to unused files.) ++ * Fix inverted logic in last release's fix for data loss bug, ++ that caused git-annex sync on FAT or other crippled filesystems to add ++ symlink standin files to the annex. ++ * importfeed can be used to import files from podcast feeds. ++ * webapp: When setting up a dedicated ssh key to access the annex ++ on a host, set IdentitiesOnly to prevent the ssh-agent from forcing ++ use of a different ssh key. That could result in unncessary password ++ prompts, or prevent git-annex-shell from being run on the remote host. ++ * webapp: Improve handling of remotes whose setup has stalled. ++ * Add status message to XMPP presence tag, to identify to others that ++ the client is a git-annex client. Closes: #717652 ++ * webapp: When creating a repository on a removable drive, set ++ core.fsyncobjectfiles, to help prevent data loss when the drive is yanked. ++ * Always build with -threaded, to avoid a deadlock when communicating with ++ gpg. ++ * unused: No longer shows as unused tmp files that are actively being ++ transferred. ++ * assistant: Fix NetWatcher to not sync with remotes that have ++ remote..annex-sync set to false. ++ * assistant: Fix deadlock that could occur when adding a lot of files ++ at once in indirect mode. ++ * assistant: Fix bug that caused it to stall when adding a very large ++ number of files at once (around 5 thousand). ++ * OSX: Make git-annex-webapp run in the background, so that the app icon ++ can be clicked on the open a new webapp when the assistant is already ++ running. ++ * Improve test suite on Windows; now tests git annex sync. ++ * Fix a few bugs involving filenames that are at or near the filesystem's ++ maximum filename length limit. ++ * find: Avoid polluting stdout with progress messages. Closes: #718186 ++ * Escape ':' in file/directory names to avoid it being treated ++ as a pathspec by some git commands. Closes: #718185 ++ * Slow and ugly work around for bug #718517 in git 1.8.4~rc0, which broke ++ git-cat-file --batch for filenames containing spaces. ++ (Will be reverted after next git pre-release fixes the problem.) ++ ++ -- Joey Hess Fri, 02 Aug 2013 11:35:16 -0400 ++ ++git-annex (4.20130723) unstable; urgency=low ++ ++ * Fix data loss bug when adding an (uncompressed) tarball of a ++ git-annex repository, or other file that begins with something ++ that can be mistaken for a git-annex link. Closes: #717456 ++ * New improved version of the git-annex logo, contributed by ++ John Lawrence. ++ * Rsync.net have committed to support git-annex and offer a special ++ discounted rate for git-annex users. Updated the webapp to reflect this. ++ http://www.rsync.net/products/git-annex-pricing.html ++ * Install XDG desktop icon files. ++ * Support unannex and uninit in direct mode. ++ * Support import in direct mode. ++ * webapp: Better display of added files. ++ * fix: Preserve the original mtime of fixed symlinks. ++ * uninit: Preserve .git/annex/objects at the end, if it still ++ has content, so that old versions of files and deleted files ++ are not deleted. Print a message with some suggested actions. ++ * When a transfer is already being run by another process, ++ proceed on to the next file, rather than dying. ++ * Fix checking when content is present in a non-bare repository ++ accessed via http. ++ * Display byte sizes with more precision. ++ * watcher: Fixed a crash that could occur when a directory was renamed ++ or deleted before it could be scanned. ++ * watcher: Partially worked around a bug in hinotify, no longer crashes ++ if hinotify cannot process a directory (but can't detect changes in it) ++ * directory special remote: Fix checking that there is enough disk space ++ to hold an object, was broken when using encryption. ++ * webapp: Differentiate between creating a new S3/Glacier/WebDav remote, ++ and initializing an existing remote. When creating a new remote, avoid ++ conflicts with other existing (or deleted) remotes with the same name. ++ * When an XMPP server has SRV records, try them, but don't then fall ++ back to the regular host if they all fail. ++ * For long hostnames, use a hash of the hostname to generate the socket ++ file for ssh connection caching. ++ ++ -- Joey Hess Tue, 23 Jul 2013 10:46:05 -0400 ++ ++git-annex (4.20130709) unstable; urgency=low ++ ++ * --all: New switch that makes git-annex operate on all data stored ++ in the git annex, including old versions of files. Supported by ++ fsck, get, move, copy. ++ * --unused: New switch that makes git-annex operate on all data found ++ by the last run of git annex unused. Supported by fsck, move, copy. ++ * get, move, copy: Can now be run in a bare repository, ++ like fsck already could. --all is enabled automatically in this case. ++ * merge: Now also merges synced/master or similar branches, which ++ makes it useful to put in a post-receive hook to make a repository ++ automatically update its working copy when git annex sync or the assistant ++ sync with it. ++ * webapp: Fix ssh setup with nonstandard port, broken in last release. ++ * init: Detect systems on which git commit fails due to not being able to ++ determine the FQDN, and put in a workaround so committing to the git-annex ++ branch works. ++ * addurl --pathdepth: Fix failure when the pathdepth specified is deeper ++ than the urls's path. ++ * Windows: Look for .exe extension when searching for a command in path. ++ * Pass -f to curl when downloading a file with it, so it propigates failure. ++ * Windows: Fix url to object when using a http remote. ++ * webapp: Fix authorized_keys line added when setting up a rsync remote ++ on a server that also supports git-annex, to not force running ++ git-annex-shell. ++ * OSX Mountain Lion: Fixed gpg bundled in dmg to not fail due to a missing ++ gpg-agent. ++ * Android: gpg is built without --enable-minimal, so it interoperates ++ better with other gpg builds that may default to using other algorithms ++ for encryption. ++ * dropunused, addunused: Complain when asked to operate on a number that ++ does not correspond to any unused key. ++ * fsck: Don't claim to fix direct mode when run on a symlink whose content ++ is not present. ++ * Make --numcopies override annex.numcopies set in .gitattributes. ++ ++ -- Joey Hess Tue, 09 Jul 2013 13:55:39 -0400 ++ ++git-annex (4.20130627) unstable; urgency=low ++ ++ * assistant --autostart: Automatically ionices the daemons it starts. ++ * assistant: Daily sanity check thread is run niced. ++ * bup: Handle /~/ in bup remote paths. ++ Thanks, Oliver Matthews ++ * fsck: Ensures that direct mode is used for files when it's enabled. ++ * webapp: Fix bug when setting up a remote ssh repo repeatedly on the same ++ server. ++ * webapp: Ensure that ssh keys generated for different directories ++ on a server are always different. ++ * webapp: Fix bug setting up ssh repo if the user enters "~/" at the start ++ of the path. ++ * assistant: Fix bug that prevented adding files written by gnucash, ++ and more generally support adding hard links to files. However, ++ other operations on hard links are still unsupported. ++ * webapp: Fix bug that caused the webapp to hang when built with yesod 1.2. ++ ++ -- Joey Hess Thu, 27 Jun 2013 14:21:55 -0400 ++ ++git-annex (4.20130621) unstable; urgency=low ++ ++ * Supports indirect mode on encfs in paranoia mode, and other ++ filesystems that do not support hard links, but do support ++ symlinks and other POSIX filesystem features. ++ * Android: Add .thumbnails to .gitignore when setting up a camera ++ repository. ++ * Android: Make the "Open webapp" menu item open the just created ++ repository when a new repo is made. ++ * webapp: When the user switches to display a different repository, ++ that repository becomes the default repository to be displayed next time ++ the webapp gets started. ++ * glacier: Better handling of the glacier inventory, which avoids ++ duplicate uploads to the same glacier repository by `git annex copy`. ++ * Direct mode: No longer temporarily remove write permission bit of files ++ when adding them. ++ * sync: Better support for bare git remotes. Now pushes directly to the ++ master branch on such a remote, instead of to synced/master. This ++ makes it easier to clone from a bare git remote that has been populated ++ with git annex sync or by the assistant. ++ * Android: Fix use of cp command to not try to use features present ++ only on build system. ++ * Windows: Fix hang when adding several files at once. ++ * assistant: In direct mode, objects are now only dropped when all ++ associated files are unwanted. This avoids a repreated drop/get loop ++ of a file that has a copy in an archive directory, and a copy not in an ++ archive directory. (Indirect mode still has some buggy behavior in this ++ area, since it does not keep track of associated files.) ++ Closes: #712060 ++ * status: No longer shows dead repositories. ++ * annex.debug can now be set to enable debug logging by default. ++ The webapp's debugging check box does this. ++ * fsck: Avoid getting confused by Windows path separators ++ * Windows: Multiple bug fixes, including fixing the data written to the ++ git-annex branch. ++ * Windows: The test suite now passes on Windows (a few broken parts are ++ disabled). ++ * assistant: On Linux, the expensive transfer scan is run niced. ++ * Enable assistant and WebDAV support on powerpc and sparc architectures, ++ which now have the necessary dependencies built. ++ ++ -- Joey Hess Fri, 21 Jun 2013 10:18:41 -0400 ++ ++git-annex (4.20130601) unstable; urgency=medium ++ ++ * XMPP: Git push over xmpp made much more robust. ++ * XMPP: Avoid redundant and unncessary pushes. Note that this breaks ++ compatibility with previous versions of git-annex, which will refuse ++ to accept any XMPP pushes from this version. ++ * XMPP: Send pings and use them to detect when contact with the server ++ is lost. ++ * hook special remote: Added combined hook program support. ++ * Android app: Avoid using hard links to app's lib directory, which ++ is sometimes on a different filesystem than the data directory. ++ * Fix bug in parsing of parens in some preferred content expressions. ++ This fixes the behavior of the manual mode group. ++ * assistant: Work around git-cat-file's not reloading the index after files ++ are staged. ++ * Improve error handling when getting uuid of http remotes to auto-ignore, ++ like with ssh remotes. ++ * content: New command line way to view and configure a repository's ++ preferred content settings. ++ * sync: Fix double merge conflict resolution handling. ++ * XMPP: Fix a file descriptor leak. ++ * Android: Added an "Open WebApp" item to the terminal's menu. ++ * Android: Work around Android devices where the `am` command doesn't work. ++ * Can now restart certain long-running git processes if they crash, and ++ continue working. ++ ++ -- Joey Hess Sat, 01 Jun 2013 19:16:04 -0400 ++ ++git-annex (4.20130521) unstable; urgency=low ++ ++ * Sanitize debian changelog version before putting it into cabal file. ++ Closes: #708619 ++ * Switch to MonadCatchIO-transformers for better handling of state while ++ catching exceptions. ++ * Fix a zombie that could result when running a process like gpg to ++ read and write to it. ++ * Allow building with gpg2. ++ * Disable building with the haskell threaded runtime when the webapp ++ is not built. This may fix builds on mips, s390x and sparc, which are ++ failing to link -lHSrts_thr ++ * Temporarily build without webapp on kfreebsd-i386, until yesod is ++ installable there again. ++ * Direct mode bug fix: After a conflicted merge was automatically resolved, ++ the content of a file that was already present could incorrectly ++ be replaced with a symlink. ++ * Fix a bug in the git-annex branch handling code that could ++ cause info from a remote to not be merged and take effect immediately. ++ * Direct mode is now fully tested by the test suite. ++ * Detect bad content in ~/.config/git-annex/program and look in PATH instead. ++ * OSX: Fixed gpg included in dmg. ++ * Linux standalone: Back to being built with glibc 2.13 for maximum ++ portability. ++ ++ -- Joey Hess Tue, 21 May 2013 13:10:26 -0400 ++ ++git-annex (4.20130516) unstable; urgency=low ++ ++ * Android: The webapp is ported and working. ++ * Windows: There is a very rough Windows port. Do not trust it with ++ important data. ++ * git-annex-shell: Ensure that received files can be read. Files ++ transferred from some Android devices may have very broken permissions ++ as received. ++ * direct mode: Direct mode commands now work on files staged in the index, ++ they do not need to be committed to git. ++ * Temporarily add an upper bound to the version of yesod that can be built ++ with, since yesod 1.2 has a great many changes that will require extensive ++ work on the webapp. ++ * Disable building with the haskell threaded runtime when the assistant ++ is not built. This may fix builds on s390x and sparc, which are failing ++ to link -lHSrts_thr ++ * Avoid depending on regex-tdfa on mips, mipsel, and s390, where it fails ++ to build. ++ * direct: Fix a bug that could cause some files to be left in indirect mode. ++ * When initializing a directory special remote with a relative path, ++ the path is made absolute. ++ * SHA: Add a runtime sanity check that sha commands output something ++ that appears to be a real sha. ++ * configure: Better checking that sha commands output in the desired format. ++ * rsync special remotes: When sending from a crippled filesystem, use ++ the destination's default file permissions, as the local ones can ++ be arbitrarily broken. (Ie, ----rwxr-x for files on Android) ++ * migrate: Detect if a file gets corrupted while it's being migrated. ++ * Debian: Add a menu file. ++ ++ -- Joey Hess Thu, 16 May 2013 11:03:35 -0400 ++ ++git-annex (4.20130501) unstable; urgency=low ++ ++ * sync, assistant: Behavior changes: Sync with remotes that have ++ annex-ignore set, so that git remotes on servers without git-annex ++ installed can be used to keep clients' git repos in sync. ++ * assistant: Work around misfeature in git 1.8.2 that makes ++ `git commit --alow-empty -m ""` run an editor. ++ * sync: Bug fix, avoid adding to the annex the ++ dummy symlinks used on crippled filesystems. ++ * Add public repository group. ++ (And inpreferreddir to preferred content expressions.) ++ * webapp: Can now set up Internet Archive repositories. ++ * S3: Dropping content from the Internet Archive doesn't work, but ++ their API indicates it does. Always refuse to drop from there. ++ * Automatically register public urls for files uploaded to the ++ Internet Archive. ++ * To enable an existing special remote, the new enableremote command ++ must be used. The initremote command now is used only to create ++ new special remotes. ++ * initremote: If two existing remotes have the same name, ++ prefer the one with a higher trust level. ++ * assistant: Improved XMPP protocol to better support multiple repositories ++ using the same XMPP account. Fixes bad behavior when sharing with a friend ++ when you or the friend have multiple reposotories on an XMPP account. ++ Note that XMPP pairing with your own devices still pairs with all ++ repositories using your XMPP account. ++ * assistant: Fix bug that could cause incoming pushes to not get ++ merged into the local tree. Particularly affected XMPP pushes. ++ * webapp: Display some additional information about a repository on ++ its edit page. ++ * webapp: Install FDO desktop menu file when started in standalone mode. ++ * webapp: Don't default to making repository in cwd when started ++ from within a directory containing a git-annex file (eg, standalone ++ tarball directory). ++ * Detect systems that have no user name set in GECOS, and also ++ don't have user.name set in git config, and put in a workaround ++ so that commits to the git-annex branch (and the assistant) ++ will still succeed despite git not liking the system configuration. ++ * webapp: When told to add a git repository on a remote server, and ++ the repository already exists as a non-bare repository, use it, ++ rather than initializing a bare repository in the same directory. ++ * direct, indirect: Refuse to do anything when the assistant ++ or git-annex watch daemon is running. ++ * assistant: When built with git before 1.8.0, use `git remote rm` ++ to delete a remote. Newer git uses `git remote remove`. ++ * rmurl: New command, removes one of the recorded urls for a file. ++ * Detect when the remote is broken like bitbucket is, and exits 0 when ++ it fails to run git-annex-shell. ++ * assistant: Several improvements to performance and behavior when ++ performing bulk adds of a large number of files (tens to hundreds ++ of thousands). ++ * assistant: Sanitize XMPP presence information logged for debugging. ++ * webapp: Now automatically fills in any creds used by an existing remote ++ when creating a new remote of the same type. Done for Internet Archive, ++ S3, Glacier, and Box.com remotes. ++ * Store an annex-uuid file in the bucket when setting up a new S3 remote. ++ * Support building with DAV 0.4. ++ ++ -- Joey Hess Wed, 01 May 2013 01:42:46 -0400 ++ ++git-annex (4.20130417) unstable; urgency=low ++ ++ * initremote: Generates encryption keys with high quality entropy. ++ This can be disabled using --fast to get the old behavior. ++ The assistant still uses low-quality entropy when creating encrypted ++ remotes, to avoid delays. (Thanks, guilhem for the patch.) ++ * Bugfix: Direct mode no longer repeatedly checksums duplicated files. ++ * assistant: Work around horrible, terrible, very bad behavior of ++ gnome-keyring, by not storing special-purpose ssh keys in ~/.ssh/*.pub. ++ Apparently gnome-keyring apparently will load and indiscriminately use ++ such keys in some cases, even if they are not using any of the standard ++ ssh key names. Instead store the keys in ~/.ssh/annex/, ++ which gnome-keyring will not check. ++ * addurl: Bugfix: Did not properly add file in direct mode. ++ * assistant: Bug fix to avoid annexing the files that git uses ++ to stand in for symlinks on FAT and other filesystem not supporting ++ symlinks. ++ * Adjust preferred content expressions so that content in archive ++ directories is preferred until it has reached an archive or smallarchive ++ repository. ++ * webapp: New --listen= option allows running the webapp on one computer ++ and connecting to it from another. (Note: Does not yet use HTTPS.) ++ * Added annex.web-download-command setting. ++ * Added per-remote annex-rsync-transport option. (guilhem again) ++ * Ssh connection caching is now also used by rsync special remotes. ++ (guilhem yet again) ++ * The version number is now derived from git, unless built with ++ VERSION_FROM_CHANGELOG. ++ * assistant: Stop any transfers the assistant initiated on shutdown. ++ * assistant: Added sequence numbers to XMPP git push packets. (Not yet used.) ++ * addurl: Register transfer so the webapp can see it. ++ * addurl: Automatically retry downloads that fail, as long as some ++ additional content was downloaded. ++ * webapp: Much improved progress bar display for downloads from encrypted ++ remotes. ++ * Avoid using runghc, as that needs ghci. ++ * webapp: When a repository's group is changed, rescan for transfers. ++ * webapp: Added animations. ++ * webapp: Include the repository directory in the mangled hostname and ++ ssh key name, so that a locked down ssh key for one repository is not ++ re-used when setting up additional repositories on the same server. ++ * Fall back to internal url downloader when built without curl. ++ * fsck: Check content of direct mode files (only when the inode cache ++ thinks they are unmodified). ++ ++ -- Joey Hess Wed, 17 Apr 2013 09:07:38 -0400 ++ ++git-annex (4.20130405) unstable; urgency=low ++ ++ * Group subcommands into sections in usage. Closes: #703797 ++ * Per-command usage messages. ++ * webapp: Fix a race that sometimes caused alerts or other notifications ++ to be missed if they occurred while a page was loading. ++ * webapp: Progess bar fixes for many types of special remotes. ++ * Build debian package without using cabal, which writes to HOME. ++ Closes: #704205 ++ * webapp: Run ssh server probes in a way that will work when the ++ login shell is a monstrosity that should have died 25 years ago, ++ such as csh. ++ * New annex.largefiles setting, which configures which files ++ `git annex add` and the assistant add to the annex. ++ * assistant: Check small files into git directly. ++ * Remotes can be configured to use other MAC algorithms than HMACSHA1 ++ to encrypt filenames. ++ Thanks, guilhem for the patch. ++ * git-annex-shell: Passes rsync --bwlimit options on rsync. ++ Thanks, guilhem for the patch. ++ * webapp: Added UI to delete repositories. Closes: #689847 ++ * Adjust built-in preferred content expressions to make most types ++ of repositories want content that is only located on untrusted, dead, ++ and unwanted repositories. ++ * drop --auto: Fix bug that prevented dropping files from untrusted ++ repositories. ++ * assistant: Fix bug that could cause direct mode files to be unstaged ++ from git. ++ * Update working tree files fully atomically. ++ * webapp: Improved transfer queue management. ++ * init: Probe whether the filesystem supports fifos, and if not, ++ disable ssh connection caching. ++ * Use lower case hash directories for storing files on crippled filesystems, ++ same as is already done for bare repositories. ++ ++ -- Joey Hess Fri, 05 Apr 2013 10:42:18 -0400 ++ ++git-annex (4.20130323) unstable; urgency=low ++ ++ * webapp: Repository list is now included in the dashboard, and other ++ UI tweaks. ++ * webapp: Improved UI for pairing your own devices together using XMPP. ++ * webapp: Display an alert when there are XMPP remotes, and a cloud ++ transfer repository needs to be configured. ++ * Add incrementalbackup repository group. ++ * webapp: Encourage user to install git-annex on a server when adding ++ a ssh server, rather than just funneling them through to rsync. ++ * xmpp: --debug now enables a sanitized dump of the XMPP protocol ++ * xmpp: Try harder to detect presence of clients when there's a git push ++ to send. ++ * xmpp: Re-enable XA flag, since disabling it did not turn out to help ++ with the problems Google Talk has with not always sending presence ++ messages to clients. ++ * map: Combine duplicate repositories, for a nicer looking map. ++ * Fix several bugs caused by a bad Ord instance for Remote. ++ * webapp: Switch all forms to POST. ++ * assistant: Avoid syncing with annex-ignored remotes when reconnecting ++ to the network, or connecting a drive. ++ * assistant: Fix OSX bug that prevented committing changed files to a ++ repository when in indirect mode. ++ * webapp: Improved alerts displayed when syncing with remotes, and ++ when syncing with a remote fails. ++ * webapp: Force wrap long filenames in transfer display. ++ * assistant: The ConfigMonitor left one zombie behind each time ++ it checked for changes, now fixed. ++ * get, copy, move: Display an error message when an identical transfer ++ is already in progress, rather than failing with no indication why. ++ * assistant: Several optimisations to file transfers. ++ * OSX app and standalone Linux tarball now both support being added to ++ PATH; no need to use runshell to start git-annex. ++ * webapp: When adding a removable drive, you can now specify the ++ directory inside it to use. ++ * webapp: Confirm whether user wants to combine repositories when ++ adding a removable drive that already has a repository on it. ++ ++ -- Joey Hess Fri, 22 Mar 2013 18:54:05 -0400 ++ ++git-annex (4.20130314) unstable; urgency=low ++ ++ * Bugfix: git annex add, when ran without any file or directory specified, ++ should add files in the current directory, but not act on unlocked files ++ elsewhere in the tree. ++ * Bugfix: drop --from an unavailable remote no longer updates the location ++ log, incorrectly, to say the remote does not have the key. ++ * Bugfix: If the UUID of a remote is not known, prevent --from, --to, ++ and other ways of specifying remotes by name from selecting it, ++ since it is not possible to sanely use it. ++ * Bugfix: Fix bug in inode cache sentinal check, which broke ++ copying to local repos if the repo being copied from had moved ++ to a different filesystem or otherwise changed all its inodes ++ ++ * Switch from using regex-compat to regex-tdfa, as the C regex library ++ is rather buggy. ++ * status: Can now be run with a directory path to show only the ++ status of that directory, rather than the whole annex. ++ * Added remote..annex-gnupg-options setting. ++ Thanks, guilhem for the patch. ++ * addurl: Add --relaxed option. ++ * addurl: Escape invalid characters in urls, rather than failing to ++ use an invalid url. ++ * addurl: Properly handle url-escaped characters in file:// urls. ++ ++ * assistant: Fix dropping content when a file is moved to an archive ++ directory, and getting contennt when a file is moved back out. ++ * assistant: Fix bug in direct mode that could occur when a symlink is ++ moved out of an archive directory, and resulted in the file not being ++ set to direct mode when it was transferred. ++ * assistant: Generate better commits for renames. ++ * assistant: Logs are rotated to avoid them using too much disk space. ++ * assistant: Avoid noise in logs from git commit about typechanged ++ files in direct mode repositories. ++ * assistant: Set gc.auto=0 when creating repositories to prevent ++ automatic commits from causing git-gc runs. ++ * assistant: If gc.auto=0, run git-gc once a day, packing loose objects ++ very non-aggressively. ++ * assistant: XMPP git pull and push requests are cached and sent when ++ presence of a new client is detected. ++ * assistant: Sync with all git remotes on startup. ++ * assistant: Get back in sync with XMPP remotes after network reconnection, ++ and on startup. ++ * assistant: Fix syncing after XMPP pairing. ++ * assistant: Optimised handling of renamed files in direct mode, ++ avoiding re-checksumming. ++ * assistant: Detects most renames, including directory renames, and ++ combines all their changes into a single commit. ++ * assistant: Fix ~/.ssh/git-annex-shell wrapper to work when the ++ ssh key does not force a command. ++ * assistant: Be smarter about avoiding unncessary transfers. ++ ++ * webapp: Work around bug in Warp's slowloris attack prevention code, ++ that caused regular browsers to stall when they reuse a connection ++ after leaving it idle for 30 seconds. ++ (See https://github.com/yesodweb/wai/issues/146) ++ * webapp: New preferences page allows enabling/disabling debug logging ++ at runtime, as well as configuring numcopies and diskreserve. ++ * webapp: Repository costs can be configured by dragging repositories around ++ in the repository list. ++ * webapp: Proceed automatically on from "Configure jabber account" ++ to pairing. ++ * webapp: Only show up to 10 queued transfers. ++ * webapp: DTRT when told to create a git repo that already exists. ++ * webapp: Set locally paired repositories to a lower cost than other ++ network remotes. ++ ++ * Run ssh with -T to avoid tty allocation and any login scripts that ++ may do undesired things with it. ++ * Several improvements to Makefile and cabal file. Thanks, Peter Simmons ++ * Stop depending on testpack. ++ * Android: Enable test suite. ++ ++ -- Joey Hess Thu, 14 Mar 2013 15:29:20 -0400 ++ ++git-annex (4.20130227) unstable; urgency=low ++ ++ * annex.version is now set to 4 for direct mode repositories. ++ * Should now fully support git repositories with core.symlinks=false; ++ always using git's pseudosymlink files in such repositories. ++ * webapp: Allow creating repositories on filesystems that lack support for ++ symlinks. ++ * webapp: Can now add a new local repository, and make it sync with ++ the main local repository. ++ * Android: Bundle now includes openssh. ++ * Android: Support ssh connection caching. ++ * Android: Assistant is fully working. (But no webapp yet.) ++ * Direct mode: Support filesystems like FAT which can change their inodes ++ each time they are mounted. ++ * Direct mode: Fix support for adding a modified file. ++ * Avoid passing -p to rsync, to interoperate with crippled filesystems. ++ Closes: #700282 ++ * Additional GIT_DIR support bugfixes. May actually work now. ++ * webapp: Display any error message from git init if it fails to create ++ a repository. ++ * Fix a reversion in matching globs introduced in the last release, ++ where "*" did not match files inside subdirectories. No longer uses ++ the Glob library. ++ * copy: Update location log when no copy was performed, if the location ++ log was out of date. ++ * Makefile now builds using cabal, taking advantage of cabal's automatic ++ detection of appropriate build flags. ++ * test: The test suite is now built into the git-annex binary, and can ++ be run at any time. ++ ++ -- Joey Hess Wed, 27 Feb 2013 14:07:24 -0400 ++ ++git-annex (3.20130216) unstable; urgency=low ++ ++ * Now uses the Haskell uuid library, rather than needing a uuid program. ++ * Now uses the Haskell Glob library, rather than pcre-light, avoiding ++ the need to install libpcre. Currently done only for Cabal or when ++ the Makefile is made to use -DWITH_GLOB ++ * Android port now available (command-line only). ++ * New annex.crippledfilesystem setting, allows use of git-annex ++ repositories on FAT and even worse filesystems; avoiding use of ++ hard links and locked down permissions settings. (Support is incomplete.) ++ * init: Detect when the repository is on a filesystem that does not ++ support hard links, or symlinks, or unix permissions, and set ++ annex.crippledfilesystem, as well as annex.direct. ++ * add: Improved detection of files that are modified while being added. ++ * Fix a bug in direct mode, introduced in the previous release, where ++ if a file was dropped and then got back, it would be stored in indirect ++ mode. ++ ++ -- Joey Hess Sat, 16 Feb 2013 10:03:26 -0400 ++ ++git-annex (3.20130207) unstable; urgency=low ++ ++ * webapp: Now allows restarting any threads that crash. ++ * Adjust debian package to only build-depend on DAV on architectures ++ where it is available. ++ * addurl --fast: Use curl, rather than haskell HTTP library, to support https. ++ * annex.autocommit: New setting, can be used to disable autocommit ++ of changed files by the assistant, while it still does data syncing ++ and other tasks. ++ * assistant: Ignore .DS_Store on OSX. ++ * assistant: Fix location log when adding new file in direct mode. ++ * Deal with stale mappings for deleted file in direct mode. ++ * pre-commit: Update direct mode mappings. ++ * uninit, unannex --fast: If hard link creation fails, fall back to slow ++ mode. ++ * Clean up direct mode cache and mapping info when dropping keys. ++ * dropunused: Clean up stale direct mode cache and mapping info not ++ removed before. ++ ++ -- Joey Hess Thu, 07 Feb 2013 12:45:25 -0400 ++ ++git-annex (3.20130124) unstable; urgency=low ++ ++ * Added source repository group, that only retains files until they've ++ been transferred to another repository. Useful for things like ++ repositories on cameras. ++ * Added manual repository group. Use to prevent the assistant from ++ downloading any file contents to keep things in sync. Instead ++ `git annex get`, `git annex drop` etc can be used manually as desired. ++ * webapp: More adjustments to longpoll code to deal with changes in ++ variable quoting in different versions of shakespeare-js. ++ * webapp: Avoid an error if a transfer is stopped just as it finishes. ++ Closes: #698184 ++ * webapp: Now always logs to .git/annex/daemon.log ++ * webapp: Has a page to view the log, accessed from the control menu. ++ * webapp: Fix crash adding removable drive that has an annex directory ++ in it that is not a git repository. ++ * Deal with incompatability in gpg2, which caused prompts for encryption ++ passphrases rather than using the supplied --passphrase-fd. ++ * bugfix: Union merges involving two or more repositories could sometimes ++ result in data from one repository getting lost. This could result ++ in the location log data becoming wrong, and fsck being needed to fix it. ++ * sync: Automatic merge conflict resolution now stages deleted files. ++ * Depend on git 1.7.7.6 for --no-edit. Closes: #698399 ++ * Fix direct mode mapping code to always store direct mode filenames ++ relative to the top of the repository, even when operating inside a ++ subdirectory. ++ * fsck: Detect and fix consistency errors in direct mode mapping files. ++ * Avoid filename encoding errors when writing direct mode mappings. ++ ++ -- Joey Hess Tue, 22 Jan 2013 07:11:59 +1100 ++ ++git-annex (3.20130114) unstable; urgency=low ++ ++ * Now handles the case where a file that's being transferred to a remote ++ is modified in place, which direct mode allows. When this ++ happens, the transfer now fails, rather than allow possibly corrupt ++ data into the remote. ++ * fsck: Better checking of file content in direct mode. ++ * drop: Suggest using git annex move when numcopies prevents dropping a file. ++ * webapp: Repo switcher filters out repos that do not exist any more ++ (or are on a drive that's not mounted). ++ * webapp: Use IP address, rather than localhost, since some systems may ++ have configuration problems or other issues that prevent web browsers ++ from connecting to the right localhost IP for the webapp. ++ * webapp: Adjust longpoll code to work with recent versions of ++ shakespeare-js. ++ * assistant: Support new gvfs dbus names used in Gnome 3.6. ++ * In direct mode, files with the same key are no longer hardlinked, as ++ that would cause a surprising behavior if modifying one, where the other ++ would also change. ++ * webapp: Avoid illegal characters in hostname when creating S3 or ++ Glacier remote. ++ * assistant: Avoid committer crashing if a file is deleted at the wrong ++ instant. ++ ++ -- Joey Hess Mon, 14 Jan 2013 15:25:18 -0400 ++ ++git-annex (3.20130107) unstable; urgency=low ++ ++ * webapp: Add UI to stop and restart assistant. ++ * committer: Fix a file handle leak. ++ * assistant: Make expensive transfer scan work fully in direct mode. ++ * More commands work in direct mode repositories: find, whereis, move, copy, ++ drop, log, fsck, add, addurl. ++ * sync: No longer automatically adds files in direct mode. ++ * assistant: Detect when system is not configured with a user name, ++ and set environment to prevent git from failing. ++ * direct: Avoid hardlinking symlinks that point to the same content ++ when the content is not present. ++ * Fix transferring files to special remotes in direct mode. ++ ++ -- Joey Hess Mon, 07 Jan 2013 01:01:41 -0400 ++ ++git-annex (3.20130102) unstable; urgency=low ++ ++ * direct, indirect: New commands, that switch a repository to and from ++ direct mode. In direct mode, files are accessed directly, rather than ++ via symlinks. Note that direct mode is currently experimental. Many ++ git-annex commands do not work in direct mode. Some git commands can ++ cause data loss when used in direct mode repositories. ++ * assistant: Now uses direct mode by default when setting up a new ++ local repository. ++ * OSX assistant: Uses the FSEvents API to detect file changes. ++ This avoids issues with running out of file descriptors on large trees, ++ as well as allowing detection of modification of files in direct mode. ++ Other BSD systems still use kqueue. ++ * kqueue: Fix bug that made broken symlinks not be noticed. ++ * vicfg: Quote filename. Closes: #696193 ++ * Bugfix: Fixed bug parsing transfer info files, where the newline after ++ the filename was included in it. This was generally benign, but in ++ the assistant, it caused unexpected dropping of preferred content. ++ * Bugfix: Remove leading \ from checksums output by sha*sum commands, ++ when the filename contains \ or a newline. Closes: #696384 ++ * fsck: Still accept checksums with a leading \ as valid, now that ++ above bug is fixed. ++ * SHA*E backends: Exclude non-alphanumeric characters from extensions. ++ * migrate: Remove leading \ in SHA* checksums, and non-alphanumerics ++ from extensions of SHA*E keys. ++ ++ -- Joey Hess Wed, 02 Jan 2013 13:21:34 -0400 ++ ++git-annex (3.20121211) unstable; urgency=low ++ ++ * webapp: Defaults to sharing box.com account info with friends, allowing ++ one-click enabling of the repository. ++ * Fix broken .config/git-annex/program installed by standalone tarball. ++ * assistant: Retrival from glacier now handled. ++ * Include ssh in standalone tarball and OSX app. ++ * watch: Avoid leaving hard links to files behind in .git/annex/tmp ++ if a file is deleted or moved while it's being quarantined in preparation ++ to being added to the annex. ++ * Allow `git annex drop --from web`; of course this does not remove ++ any file from the web, but it does make git-annex remove all urls ++ associated with a file. ++ * webapp: S3 and Glacier forms now have a select list of all ++ currently-supported AWS regions. ++ * webdav: Avoid trying to set props, avoiding incompatability with ++ livedrive.com. Needs DAV version 0.3. ++ * webapp: Prettify error display. ++ * webapp: Fix bad interaction between required fields and modals. ++ * webapp: Added help buttons and links next to fields that require ++ explanations. ++ * webapp: Encryption can be disabled when setting up remotes. ++ * assistant: Avoid trying to drop content from remotes that don't have it. ++ * assistant: Allow periods in ssh key comments. ++ * get/copy --auto: Transfer data even if it would exceed numcopies, ++ when preferred content settings want it. ++ * drop --auto: Fix dropping content when there are no preferred content ++ settings. ++ * webapp: Allow user to specify the port when setting up a ssh or rsync ++ remote. ++ * assistant: Fix syncing to just created ssh remotes. ++ * Enable WebDAV support in Debian package. Closes: #695532 ++ ++ -- Joey Hess Tue, 11 Dec 2012 11:25:03 -0400 ++ ++git-annex (3.20121127) unstable; urgency=low ++ ++ * Fix dirContentsRecursive, which had missed some files in deeply nested ++ subdirectories. Could affect various parts of git-annex. ++ * rsync: Fix bug introduced in last release that broke encrypted rsync ++ special remotes. ++ * The standalone builds now unset their special path and library path ++ variables before running the system web browser. ++ ++ -- Joey Hess Tue, 27 Nov 2012 17:07:32 -0400 ++ ++git-annex (3.20121126) unstable; urgency=low ++ ++ * New webdav and Amazon glacier special remotes. ++ * Display a warning when a non-existing file or directory is specified. ++ * webapp: Added configurator for Box.com. ++ * webapp: Show error messages to user when testing XMPP creds. ++ * Fix build of assistant without yesod. ++ * webapp: The list of repositiories refreshes when new repositories are ++ added, including when new repository configurations are pushed in from ++ remotes. ++ * OSX: Fix RunAtLoad value in plist file. ++ * Getting a file from chunked directory special remotes no longer buffers ++ it all in memory. ++ * S3: Added progress display for uploading and downloading. ++ * directory special remote: Made more efficient and robust. ++ * Bugfix: directory special remote could loop forever storing a key ++ when a too small chunksize was configured. ++ * Allow controlling whether login credentials for S3 and webdav are ++ committed to the repository, by setting embedcreds=yes|no when running ++ initremote. ++ * Added smallarchive repository group, that only archives files that are ++ in archive directories. Used by default for glacier when set up in the ++ webapp. ++ * assistant: Fixed handling of toplevel archive directory and ++ client repository group. ++ * assistant: Apply preferred content settings when a new symlink ++ is created, or a symlink gets renamed. Made archive directories work. ++ ++ -- Joey Hess Mon, 26 Nov 2012 11:37:49 -0400 ++ ++git-annex (3.20121112) unstable; urgency=low ++ ++ * assistant: Can use XMPP to notify other nodes about pushes made to other ++ repositories, as well as pushing to them directly over XMPP. ++ * wepapp: Added an XMPP configuration interface. ++ * webapp: Supports pairing over XMPP, with both friends, and other repos ++ using the same account. ++ * assistant: Drops non-preferred content when possible. ++ * assistant: Notices, and applies config changes as they are made to ++ the git-annex branch, including config changes pushed in from remotes. ++ * git-annex-shell: GIT_ANNEX_SHELL_DIRECTORY can be set to limit it ++ to operating on a specified directory. ++ * webapp: When setting up authorized_keys, use GIT_ANNEX_SHELL_DIRECTORY. ++ * Preferred content path matching bugfix. ++ * Preferred content expressions cannot use "in=". ++ * Preferred content expressions can use "present". ++ * Fix handling of GIT_DIR when it refers to a git submodule. ++ * Depend on and use the Haskell SafeSemaphore library, which provides ++ exception-safe versions of SampleVar and QSemN. ++ Thanks, Ben Gamari for an excellent patch set. ++ * file:/// URLs can now be used with the web special remote. ++ * webapp: Allow dashes in ssh key comments when pairing. ++ * uninit: Check and abort if there are symlinks to annexed content that ++ are not checked into git. ++ * webapp: Switched to using the same multicast IP address that avahi uses. ++ * bup: Don't pass - to bup-split to make it read stdin; bup 0.25 ++ does not accept that. ++ * bugfix: Don't fail transferring content from read-only repos. ++ Closes: #691341 ++ * configure: Check that checksum programs produce correct checksums. ++ * Re-enable dbus, using a new version of the library that fixes the memory ++ leak. ++ * NetWatcher: When dbus connection is lost, try to reconnect. ++ * Use USER and HOME environment when set, and only fall back to getpwent, ++ which doesn't work with LDAP or NIS. ++ * rsync special remote: Include annex-rsync-options when running rsync ++ to test a key's presence. ++ * The standalone tarball's runshell now takes care of installing a ++ ~/.ssh/git-annex-shell wrapper the first time it's run. ++ * webapp: Make an initial, empty commit so there is a master branch ++ * assistant: Fix syncing local drives. ++ * webapp: Fix creation of rsync.net repositories. ++ * webapp: Fix renaming of special remotes. ++ * webapp: Generate better git remote names. ++ * webapp: Ensure that rsync special remotes are enabled using the same ++ name they were originally created using. ++ * Bugfix: Fix hang in webapp when setting up a ssh remote with an absolute ++ path. ++ ++ -- Joey Hess Mon, 12 Nov 2012 10:39:47 -0400 ++ ++git-annex (3.20121017) unstable; urgency=low ++ ++ * Fix zombie cleanup reversion introduced in 3.20121009. ++ * Additional fix to support git submodules. ++ ++ -- Joey Hess Tue, 16 Oct 2012 21:10:14 -0400 ++ ++git-annex (3.20121016) unstable; urgency=low ++ ++ * vicfg: New file format, avoids ambiguity with repos that have the same ++ description, or no description. ++ * Bug fix: A recent change caused git-annex-shell to crash. ++ * Better preferred content expression for transfer repos. ++ * webapp: Repository edit form can now edit the name of a repository. ++ * webapp: Make bare repositories on removable drives, as there is nothing ++ to ensure non-bare repos get updated when syncing. ++ * webapp: Better behavior when pausing syncing to a remote when a transfer ++ scan is running and queueing new transfers for that remote. ++ * The standalone binaries are now built to not use ssh connection caching, ++ in order to work with old versions of ssh. ++ * A relative core.worktree is relative to the gitdir. Now that this is ++ handled correctly, git-annex can be used in git submodules. ++ * Temporarily disable use of dbus, as the haskell dbus library blows up ++ when losing connection, which will need to be fixed upstream. ++ ++ -- Joey Hess Tue, 16 Oct 2012 15:25:22 -0400 ++ ++git-annex (3.20121010) unstable; urgency=low ++ ++ * Renamed --ingroup to --inallgroup. ++ * Standard groups changed to client, transfer, archive, and backup. ++ Each of these has its own standard preferred content setting. ++ * dead: Remove dead repository from all groups. ++ * Avoid unsetting HOME when running certian git commands. Closes: #690193 ++ * test: Fix threaded runtime hang. ++ * Makefile: Avoid building with -threaded if the ghc threaded runtime does ++ not exist. ++ * webapp: Improve wording of intro display. Closes: #689848 ++ * webapp: Repositories can now be configured, to change their description, ++ their group, or even to disable syncing to them. ++ * git config remote.name.annex-sync can be used to control whether ++ a remote gets synced. ++ * Fix a crash when merging files in the git-annex branch that contain ++ invalid utf8. ++ * Automatically detect when a ssh remote does not have git-annex-shell ++ installed, and set annex-ignore. ++ ++ -- Joey Hess Fri, 12 Oct 2012 13:45:21 -0400 ++ ++git-annex (3.20121009) unstable; urgency=low ++ ++ * watch, assistant: It's now safe to git annex unlock files while ++ the watcher is running, as well as modify files checked into git ++ as normal files. Additionally, .gitignore settings are now honored. ++ Closes: #689979 ++ * group, ungroup: New commands to indicate groups of repositories. ++ * webapp: Adds newly created repositories to one of these groups: ++ clients, drives, servers ++ * vicfg: New command, allows editing (or simply viewing) most ++ of the repository configuration settings stored in the git-annex branch. ++ * Added preferred content expressions, configurable using vicfg. ++ * get --auto: If the local repository has preferred content ++ configured, only get that content. ++ * drop --auto: If the repository the content is dropped from has ++ preferred content configured, drop only content that is not preferred. ++ * copy --auto: Only transfer content that the destination repository prefers. ++ * assistant: Now honors preferred content settings when deciding what to ++ transfer. ++ * --copies=group:number can now be used to match files that are present ++ in a specified number of repositories in a group. ++ * Added --smallerthan, --largerthan, and --inall limits. ++ * Only build-depend on libghc-clientsession-dev on arches that will have ++ the webapp. ++ * uninit: Unset annex.version. Closes: #689852 ++ ++ -- Joey Hess Tue, 09 Oct 2012 15:13:23 -0400 ++ ++git-annex (3.20121001) unstable; urgency=low ++ ++ * fsck: Now has an incremental mode. Start a new incremental fsck pass ++ with git annex fsck --incremental. Now the fsck can be interrupted ++ as desired, and resumed with git annex fsck --more. ++ Thanks, Justin Azoff ++ * New --time-limit option, makes long git-annex commands stop after ++ a specified amount of time. ++ * fsck: New --incremental-schedule option which is nice for scheduling ++ eg, monthly incremental fsck runs in cron jobs. ++ * Fix fallback to ~/Desktop when xdg-user-dir is not available. ++ Closes: #688833 ++ * S3: When using a shared cipher, S3 credentials are not stored encrypted ++ in the git repository, as that would allow anyone with access to ++ the repository access to the S3 account. Instead, they're stored ++ in a 600 mode file in the local git repo. ++ * webapp: Avoid crashing when ssh-keygen -F chokes on an invalid known_hosts ++ file. ++ * Always do a system wide installation when DESTDIR is set. Closes: #689052 ++ * The Makefile now builds with the new yesod by default. ++ Systems like Debian that have the old yesod 1.0.1 should set ++ GIT_ANNEX_LOCAL_FEATURES=-DWITH_OLD_YESOD ++ * copy: Avoid updating the location log when no copy is performed. ++ * configure: Test that uuid -m works, falling back to plain uuid if not. ++ * Avoid building the webapp on Debian architectures that do not yet ++ have template haskell and thus yesod. (Should be available for arm soonish ++ I hope). ++ ++ -- Joey Hess Mon, 01 Oct 2012 13:56:55 -0400 ++ ++git-annex (3.20120924) unstable; urgency=low ++ ++ * assistant: New command, a daemon which does everything watch does, ++ as well as automatically syncing file contents between repositories. ++ * webapp: An interface for managing and configuring the assistant. ++ * The default backend used when adding files to the annex is changed ++ from SHA256 to SHA256E, to simplify interoperability with OSX, media ++ players, and various programs that needlessly look at symlink targets. ++ To get old behavior, add a .gitattributes containing: * annex.backend=SHA256 ++ * init: If no description is provided for a new repository, one will ++ automatically be generated, like "joey@gnu:~/foo" ++ * test: Set a lot of git environment variables so testing works in strange ++ environments that normally need git config to set names, etc. ++ Closes: #682351 Thanks, gregor herrmann ++ * Disable ssh connection caching if the path to the control socket would be ++ too long (and use relative path to minimise path to the control socket). ++ * migrate: Check content before generating the new key, to avoid generating ++ a key for corrupt data. ++ * Support repositories created with --separate-git-dir. Closes: #684405 ++ * reinject: When the provided file doesn't match, leave it where it is, ++ rather than moving to .git/annex/bad/ ++ * Avoid crashing on encoding errors in filenames when writing transfer info ++ files and reading from checksum commands. ++ * sync: Pushes the git-annex branch to remote/synced/git-annex, rather ++ than directly to remote/git-annex. ++ * Now supports matching files that are present on a number of remotes ++ with a specified trust level. Example: --copies=trusted:2 ++ Thanks, Nicolas Pouillard ++ ++ -- Joey Hess Mon, 24 Sep 2012 13:47:48 -0400 ++ ++git-annex (3.20120825) unstable; urgency=low ++ ++ * S3: Add fileprefix setting. ++ * Pass --use-agent to gpg when in no tty mode. Thanks, Eskild Hustvedt. ++ * Bugfix: Fix fsck in SHA*E backends, when the key contains composite ++ extensions, as added in 3.20120721. ++ ++ -- Joey Hess Sat, 25 Aug 2012 10:00:10 -0400 ++ ++git-annex (3.20120807) unstable; urgency=low ++ ++ * initremote: Avoid recording remote's description before checking ++ that its config is valid. ++ * unused, status: Avoid crashing when ran in bare repo. ++ * Avoid crashing when "git annex get" fails to download from one ++ location, and falls back to downloading from a second location. ++ ++ -- Joey Hess Tue, 07 Aug 2012 13:35:07 -0400 ++ ++git-annex (3.20120721) unstable; urgency=low ++ ++ * get, move, copy: Now refuse to do anything when the requested file ++ transfer is already in progress by another process. ++ * status: Lists transfers that are currently in progress. ++ * Fix passing --uuid to git-annex-shell. ++ * When shaNsum commands cannot be found, use the Haskell SHA library ++ (already a dependency) to do the checksumming. This may be slower, ++ but avoids portability problems. ++ * Use SHA library for files less than 50 kb in size, at which point it's ++ faster than forking the more optimised external program. ++ * SHAnE backends are now smarter about composite extensions, such as ++ .tar.gz Closes: #680450 ++ * map: Write map.dot to .git/annex, which avoids watch trying to annex it. ++ ++ -- Joey Hess Sat, 21 Jul 2012 16:52:48 -0400 ++ ++git-annex (3.20120629) unstable; urgency=low ++ ++ * cabal: Only try to use inotify on Linux. ++ * Version build dependency on STM, and allow building without it, ++ which disables the watch command. ++ * Avoid ugly failure mode when moving content from a local repository ++ that is not available. ++ * Got rid of the last place that did utf8 decoding. ++ * Accept arbitrarily encoded repository filepaths etc when reading ++ git config output. This fixes support for remotes with unusual characters ++ in their names. ++ * sync: Automatically resolves merge conflicts. ++ ++ -- Joey Hess Fri, 29 Jun 2012 10:17:49 -0400 ++ ++git-annex (3.20120624) unstable; urgency=low ++ ++ * watch: New subcommand, a daemon which notices changes to ++ files and automatically annexes new files, etc, so you don't ++ need to manually run git commands when manipulating files. ++ Available on Linux, BSDs, and OSX! ++ * Enable diskfree on kfreebsd, using kqueue. ++ * unused: Fix crash when key names contain invalid utf8. ++ * sync: Avoid recent git's interactive merge. ++ ++ -- Joey Hess Sun, 24 Jun 2012 12:36:50 -0400 ++ ++git-annex (3.20120614) unstable; urgency=medium ++ ++ * addurl: Was broken by a typo introduced 2 released ago, now fixed. ++ Closes: #677576 ++ * Install man page when run by cabal, in a location where man will ++ find it, even when installing under $HOME. Thanks, Nathan Collins ++ ++ -- Joey Hess Thu, 14 Jun 2012 20:21:29 -0400 ++ ++git-annex (3.20120611) unstable; urgency=medium ++ ++ * add: Prevent (most) modifications from being made to a file while it ++ is being added to the annex. ++ * initremote: Automatically describe a remote when creating it. ++ * uninit: Refuse to run in a subdirectory. Closes: #677076 ++ ++ -- Joey Hess Mon, 11 Jun 2012 10:32:01 -0400 ++ ++git-annex (3.20120605) unstable; urgency=low ++ ++ * sync: Show a nicer message if a user tries to sync to a special remote. ++ * lock: Reset unlocked file to index, rather than to branch head. ++ * import: New subcommand, pulls files from a directory outside the annex ++ and adds them. ++ * Fix display of warning message when encountering a file that uses an ++ unsupported backend. ++ * Require that the SHA256 backend can be used when building, since it's the ++ default. ++ * Preserve parent environment when running hooks of the hook special remote. ++ ++ -- Joey Hess Tue, 05 Jun 2012 14:03:39 -0400 ++ ++git-annex (3.20120522) unstable; urgency=low ++ ++ * Pass -a to cp even when it supports --reflink=auto, to preserve ++ permissions. ++ * Clean up handling of git directory and git worktree. ++ * Add support for core.worktree, and fix support for GIT_WORK_TREE and ++ GIT_DIR. ++ ++ -- Joey Hess Tue, 22 May 2012 11:16:13 -0400 ++ ++git-annex (3.20120511) unstable; urgency=low ++ ++ * Rsync special remotes can be configured with shellescape=no ++ to avoid shell quoting that is normally done when using rsync over ssh. ++ This is known to be needed for certian rsync hosting providers ++ (specificially hidrive.strato.com) that use rsync over ssh but do not ++ pass it through the shell. ++ * dropunused: Allow specifying ranges to drop. ++ * addunused: New command, the opposite of dropunused, it relinks unused ++ content into the git repository. ++ * Fix use of several config settings: annex.ssh-options, ++ annex.rsync-options, annex.bup-split-options. (And adjust types to avoid ++ the bugs that broke several config settings.) ++ ++ -- Joey Hess Fri, 11 May 2012 12:29:30 -0400 ++ ++git-annex (3.20120430) unstable; urgency=low ++ ++ * Fix use of annex.diskreserve config setting. ++ * Directory special remotes now check annex.diskreserve. ++ * Support git's core.sharedRepository configuration. ++ * Add annex.http-headers and annex.http-headers-command config ++ settings, to allow custom headers to be sent with all HTTP requests. ++ (Requested by the Internet Archive) ++ * uninit: Clear annex.uuid from .git/config. Closes: #670639 ++ * Added shared cipher mode to encryptable special remotes. This option ++ avoids gpg key distribution, at the expense of flexability, and with ++ the requirement that all clones of the git repository be equally trusted. ++ ++ -- Joey Hess Mon, 30 Apr 2012 13:16:10 -0400 ++ ++git-annex (3.20120418) unstable; urgency=low ++ ++ * bugfix: Adding a dotfile also caused all non-dotfiles to be added. ++ * bup: Properly handle key names with spaces or other things that are ++ not legal git refs. ++ * git-annex (but not git-annex-shell) supports the git help.autocorrect ++ configuration setting, doing fuzzy matching using the restricted ++ Damerau-Levenshtein edit distance, just as git does. This adds a build ++ dependency on the haskell edit-distance library. ++ * Renamed diskfree.c to avoid OSX case insensativity bug. ++ * cabal now installs git-annex-shell as a symlink to git-annex. ++ * cabal file now autodetects whether S3 support is available. ++ ++ -- Joey Hess Wed, 18 Apr 2012 12:11:32 -0400 ++ ++git-annex (3.20120406) unstable; urgency=low ++ ++ * Disable diskfree on kfreebsd, as I have a build failure on kfreebsd-i386 ++ that is quite likely caused by it. ++ ++ -- Joey Hess Sat, 07 Apr 2012 15:50:36 -0400 ++ ++git-annex (3.20120405) unstable; urgency=low ++ ++ * Rewrote free disk space checking code, moving the portability ++ handling into a small C library. ++ * status: Display amount of free disk space. ++ ++ -- Joey Hess Thu, 05 Apr 2012 16:19:10 -0400 ++ ++git-annex (3.20120315) unstable; urgency=low ++ ++ * fsck: Fix up any broken links and misplaced content caused by the ++ directory hash calculation bug fixed in the last release. ++ * sync: Sync to lower cost remotes first. ++ * status: Fixed to run in constant space. ++ * status: More accurate display of sizes of tmp and bad keys. ++ * unused: Now uses a bloom filter, and runs in constant space. ++ Use of a bloom filter does mean it will not notice a small ++ number of unused keys. For repos with up to half a million keys, ++ it will miss one key in 1000. ++ * Added annex.bloomcapacity and annex.bloomaccuracy, which can be ++ adjusted as desired to tune the bloom filter. ++ * status: Display amount of memory used by bloom filter, and ++ detect when it's too small for the number of keys in a repository. ++ * git-annex-shell: Runs hooks/annex-content after content is received ++ or dropped. ++ * Work around a bug in rsync (IMHO) introduced by openSUSE's SIP patch. ++ * git-annex now behaves as git-annex-shell if symlinked to and run by that ++ name. The Makefile sets this up, saving some 8 mb of installed size. ++ * git-union-merge is a demo program, so it is no longer built by default. ++ ++ -- Joey Hess Thu, 15 Mar 2012 11:05:28 -0400 ++ ++git-annex (3.20120309) unstable; urgency=low ++ ++ * Fix key directory hash calculation code to behave as it did before ++ version 3.20120227 when a key contains non-ascii characters (only ++ WORM backend is likely to have been affected). ++ ++ -- Joey Hess Fri, 09 Mar 2012 20:05:09 -0400 ++ ++git-annex (3.20120230) unstable; urgency=low ++ ++ * "here" can be used to refer to the current repository, ++ which can read better than the old "." (which still works too). ++ * Directory special remotes now support chunking files written to them, ++ avoiding writing files larger than a specified size. ++ * Add progress bar display to the directory special remote. ++ * Add configurable hooks that are run when git-annex starts and stops ++ using a remote: remote.name.annex-start-command and ++ remote.name.annex-stop-command ++ * Fix a bug in symlink calculation code, that triggered in rare ++ cases where an annexed file is in a subdirectory that nearly ++ matched to the .git/annex/object/xx/yy subdirectories. ++ ++ -- Joey Hess Mon, 05 Mar 2012 13:38:13 -0400 ++ ++git-annex (3.20120229) unstable; urgency=low ++ ++ * Fix test suite to not require a unicode locale. ++ * Fix cabal build failure. Thanks, Sergei Trofimovich ++ ++ -- Joey Hess Wed, 29 Feb 2012 02:31:31 -0400 ++ ++git-annex (3.20120227) unstable; urgency=low ++ ++ * Modifications to support ghc 7.4's handling of filenames. ++ This version can only be built with ghc 7.4 or newer. See the ghc7.0 ++ branch for older ghcs. ++ * S3: Fix irrefutable pattern failure when accessing encrypted S3 ++ credentials. ++ * Use the haskell IfElse library. ++ * Fix teardown of stale cached ssh connections. ++ * Fixed to use the strict state monad, to avoid leaking all kinds of memory ++ due to lazy state update thunks when adding/fixing many files. ++ * Fixed some memory leaks that occurred when committing journal files. ++ * Added a annex.queuesize setting, useful when adding hundreds of thousands ++ of files on a system with plenty of memory. ++ * whereis: Prints the urls of files that the web special remote knows about. ++ * addurl --fast: Verifies that the url can be downloaded (only getting ++ its head), and records the size in the key. ++ * When checking that an url has a key, verify that the Content-Length, ++ if available, matches the size of the key. ++ * addurl: Added a --file option, which can be used to specify what ++ file the url is added to. This can be used to override the default ++ filename that is used when adding an url, which is based on the url. ++ Or, when the file already exists, the url is recorded as another ++ location of the file. ++ * addurl: Normalize badly encoded urls. ++ * addurl: Add --pathdepth option. ++ * rekey: New plumbing level command, can be used to change the keys used ++ for files en masse. ++ * Store web special remote url info in a more efficient location. ++ (Urls stored with this version will not be visible to older versions.) ++ * Deal with NFS problem that caused a failure to remove a directory ++ when removing content from the annex. ++ * Make a single location log commit after a remote has received or ++ dropped files. Uses a new "git-annex-shell commit" command when available. ++ * To avoid commits of data to the git-annex branch after each command ++ is run, set annex.alwayscommit=false. Its data will then be committed ++ less frequently, when a merge or sync is done. ++ * configure: Check if ssh connection caching is supported by the installed ++ version of ssh and default annex.sshcaching accordingly. ++ * move --from, copy --from: Now 10 times faster when scanning to find ++ files in a remote on a local disk; rather than go through the location log ++ to see which files are present on the remote, it simply looks at the ++ disk contents directly. ++ ++ -- Joey Hess Mon, 27 Feb 2012 12:58:21 -0400 ++ ++git-annex (3.20120123) unstable; urgency=low ++ ++ * fsck --from: Fscking a remote is now supported. It's done by retrieving ++ the contents of the specified files from the remote, and checking them, ++ so can be an expensive operation. Still, if the remote is a special ++ remote, or a git repository that you cannot run fsck in locally, it's ++ nice to have the ability to fsck it. ++ * If you have any directory special remotes, now would be a good time to ++ fsck them, in case you were hit by the data loss bug fixed in the ++ previous release! ++ * fsck --from remote --fast: Avoids expensive file transfers, at the ++ expense of not checking file size and/or contents. ++ * Ssh connection caching is now enabled automatically by git-annex. ++ Only one ssh connection is made to each host per git-annex run, which ++ can speed some things up a lot, as well as avoiding repeated password ++ prompts. Concurrent git-annex processes also share ssh connections. ++ Cached ssh connections are shut down when git-annex exits. ++ * To disable the ssh caching (if for example you have your own broader ++ ssh caching configuration), set annex.sshcaching=false. ++ ++ -- Joey Hess Mon, 23 Jan 2012 13:48:48 -0400 ++ ++git-annex (3.20120116) unstable; urgency=medium ++ ++ * Fix data loss bug in directory special remote, when moving a file ++ to the remote failed, and partially transferred content was left ++ behind in the directory, re-running the same move would think it ++ succeeded and delete the local copy. ++ ++ -- Joey Hess Mon, 16 Jan 2012 16:43:45 -0400 ++ ++git-annex (3.20120115) unstable; urgency=low ++ ++ * Add a sanity check for bad StatFS results. On architectures ++ where StatFS does not currently work (s390, mips, powerpc, sparc), ++ this disables the diskreserve checking code, and attempting to ++ configure an annex.diskreserve will result in an error. ++ * Fix QuickCheck dependency in cabal file. ++ * Minor optimisations. ++ ++ -- Joey Hess Sun, 15 Jan 2012 13:54:20 -0400 ++ ++git-annex (3.20120113) unstable; urgency=low ++ ++ * log: Add --gource mode, which generates output usable by gource. ++ * map: Fix display of remote repos ++ * Add annex-trustlevel configuration settings, which can be used to ++ override the trust level of a remote. ++ * git-annex, git-union-merge: Support GIT_DIR and GIT_WORK_TREE. ++ * Add libghc-testpack-dev to build depends on all arches. ++ ++ -- Joey Hess Fri, 13 Jan 2012 15:35:17 -0400 ++ ++git-annex (3.20120106) unstable; urgency=low ++ ++ * Support unescaped repository urls, like git does. ++ * log: New command that displays the location log for files, ++ showing each repository they were added to and removed from. ++ * Fix overbroad gpg --no-tty fix from last release. ++ ++ -- Joey Hess Sat, 07 Jan 2012 13:16:23 -0400 ++ ++git-annex (3.20120105) unstable; urgency=low ++ ++ * Added annex-web-options configuration settings, which can be ++ used to provide parameters to whichever of wget or curl git-annex uses ++ (depends on which is available, but most of their important options ++ suitable for use here are the same). ++ * Dotfiles, and files inside dotdirs are not added by "git annex add" ++ unless the dotfile or directory is explicitly listed. So "git annex add ." ++ will add all untracked files in the current directory except for those in ++ dotdirs. ++ * Added quickcheck to build dependencies, and fail if test suite cannot be ++ built. ++ * fsck: Do backend-specific check before checking numcopies is satisfied. ++ * Run gpg with --no-tty. Closes: #654721 ++ ++ -- Joey Hess Thu, 05 Jan 2012 13:44:12 -0400 ++ ++git-annex (3.20111231) unstable; urgency=low ++ ++ * sync: Improved to work well without a central bare repository. ++ Thanks to Joachim Breitner. ++ * Rather than manually committing, pushing, pulling, merging, and git annex ++ merging, we encourage you to give "git annex sync" a try. ++ * sync --fast: Selects some of the remotes with the lowest annex.cost ++ and syncs those, in addition to any specified at the command line. ++ * Union merge now finds the least expensive way to represent the merge. ++ * reinject: Add a sanity check for using an annexed file as the source file. ++ * Properly handle multiline git config values. ++ * Fix the hook special remote, which bitrotted a while ago. ++ * map: --fast disables use of dot to display map ++ * Test suite improvements. Current top-level test coverage: 75% ++ * Improve deletion of files from rsync special remotes. Closes: #652849 ++ * Add --include, which is the same as --not --exclude. ++ * Format strings can be specified using the new --format option, to control ++ what is output by git annex find. ++ * Support git annex find --json ++ * Fixed behavior when multiple insteadOf configs are provided for the ++ same url base. ++ * Can now be built with older git versions (before 1.7.7); the resulting ++ binary should only be used with old git. ++ * Updated to build with monad-control 0.3. ++ ++ -- Joey Hess Sat, 31 Dec 2011 14:55:29 -0400 ++ ++git-annex (3.20111211) unstable; urgency=medium ++ ++ * Fix bug in last version in getting contents from bare repositories. ++ * Ensure that git-annex branch changes are merged into git-annex's index, ++ which fixes a bug that could cause changes that were pushed to the ++ git-annex branch to get reverted. As a side effect, it's now safe ++ for users to check out and commit changes directly to the git-annex ++ branch. ++ * map: Fix a failure to detect a loop when both repositories are local ++ and refer to each other with relative paths. ++ * Prevent key names from containing newlines. ++ * add: If interrupted, add can leave files converted to symlinks but not ++ yet added to git. Running the add again will now clean up this situtation. ++ * Fix caching of decrypted ciphers, which failed when drop had to check ++ multiple different encrypted special remotes. ++ * unannex: Can be run on files that have been added to the annex, but not ++ yet committed. ++ * sync: New command that synchronises the local repository and default ++ remote, by running git commit, pull, and push for you. ++ * Version monad-control dependency in cabal file. ++ ++ -- Joey Hess Sun, 11 Dec 2011 21:24:39 -0400 ++ ++git-annex (3.20111203) unstable; urgency=low ++ ++ * The VFAT filesystem on recent versions of Linux, when mounted with ++ shortname=mixed, does not get along well with git-annex's mixed case ++ .git/annex/objects hash directories. To avoid this problem, new content ++ is now stored in all-lowercase hash directories. Except for non-bare ++ repositories which would be a pain to transition and cannot be put on FAT. ++ (Old mixed-case hash directories are still tried for backwards ++ compatibility.) ++ * Flush json output, avoiding a buffering problem that could result in ++ doubled output. ++ * Avoid needing haskell98 and other fixes for new ghc. Thanks, Mark Wright. ++ * Bugfix: dropunused did not drop keys with two spaces in their name. ++ * Support for storing .git/annex on a different device than the rest of the ++ git repository. ++ * --inbackend can be used to make git-annex only operate on files ++ whose content is stored using a specified key-value backend. ++ * dead: A command which says that a repository is gone for good ++ and you don't want git-annex to mention it again. ++ ++ -- Joey Hess Sat, 03 Dec 2011 21:01:45 -0400 ++ ++git-annex (3.20111122) unstable; urgency=low ++ ++ * merge: Improve commit messages to mention what was merged. ++ * Avoid doing auto-merging in commands that don't need fully current ++ information from the git-annex branch. In particular, git annex add ++ no longer needs to auto-merge. ++ * init: When run in an already initalized repository, and without ++ a description specified, don't delete the old description. ++ * Optimised union merging; now only runs git cat-file once, and runs ++ in constant space. ++ * status: Now displays trusted, untrusted, and semitrusted repositories ++ separately. ++ * status: Include all special remotes in the list of repositories. ++ * status: Fix --json mode. ++ * status: --fast is back ++ * Fix support for insteadOf url remapping. Closes: #644278 ++ * When not run in a git repository, git-annex can still display a usage ++ message, and "git annex version" even works. ++ * migrate: Don't fall over a stale temp file. ++ * Avoid excessive escaping for rsync special remotes that are not accessed ++ over ssh. ++ * find: Support --print0 ++ ++ -- Joey Hess Tue, 22 Nov 2011 14:31:45 -0400 ++ ++git-annex (3.20111111) unstable; urgency=low ++ ++ * Handle a case where an annexed file is moved into a gitignored directory, ++ by having fix --force add its change. ++ * Avoid cyclic drop problems. ++ * Optimized copy --from and get --from to avoid checking the location log ++ for files that are already present. ++ * Automatically fix up badly formatted uuid.log entries produced by ++ 3.20111105, whenever the uuid.log is changed (ie, by init or describe). ++ * map: Support remotes with /~/ and /~user/ ++ ++ -- Joey Hess Fri, 11 Nov 2011 13:44:18 -0400 ++ ++git-annex (3.20111107) unstable; urgency=low ++ ++ * merge: Use fast-forward merges when possible. ++ Thanks Valentin Haenel for a test case showing how non-fast-forward ++ merges could result in an ongoing pull/merge/push cycle. ++ * Don't try to read config from repos with annex-ignore set. ++ * Bugfix: In the past two releases, git-annex init has written the uuid.log ++ in the wrong format, with the UUID and description flipped. ++ ++ -- Joey Hess Mon, 07 Nov 2011 12:47:44 -0400 ++ ++git-annex (3.20111105) unstable; urgency=low ++ ++ * The default backend used when adding files to the annex is changed ++ from WORM to SHA256. ++ To get old behavior, add a .gitattributes containing: * annex.backend=WORM ++ * Sped up some operations on remotes that are on the same host. ++ * copy --to: Fixed leak when copying many files to a remote on the same ++ host. ++ * uninit: Add guard against being run with the git-annex branch checked out. ++ * Fail if --from or --to is passed to commands that do not support them. ++ * drop --from is now supported to remove file content from a remote. ++ * status: Now always shows the current repository, even when it does not ++ appear in uuid.log. ++ * fsck: Now works in bare repositories. Checks location log information, ++ and file contents. Does not check that numcopies is satisfied, as ++ .gitattributes information about numcopies is not available in a bare ++ repository. ++ * unused, dropunused: Now work in bare repositories. ++ * Removed the setkey command, and added a reinject command with a more ++ useful interface. ++ * The fromkey command now takes the key as its first parameter. The --key ++ option is no longer used. ++ * Built without any filename containing .git being excluded. Closes: #647215 ++ * Record uuid when auto-initializing a remote so it shows in status. ++ * Bugfix: Fixed git-annex init crash in a bare repository when there was ++ already an existing git-annex branch. ++ * Pass -t to rsync to preserve timestamps. ++ ++ -- Joey Hess Sat, 05 Nov 2011 15:47:52 -0400 ++ ++git-annex (3.20111025) unstable; urgency=low ++ ++ * A remote can have a annexUrl configured, that is used by git-annex ++ instead of its usual url. (Similar to pushUrl.) ++ * migrate: Copy url logs for keys when migrating. ++ * git-annex-shell: GIT_ANNEX_SHELL_READONLY and GIT_ANNEX_SHELL_LIMITED ++ environment variables can be set to limit what commands can be run. ++ This is used by gitolite's new git-annex support! ++ ++ -- Joey Hess Tue, 25 Oct 2011 13:03:08 -0700 ++ ++git-annex (3.20111011) unstable; urgency=low ++ ++ * This version of git-annex only works with git 1.7.7 and newer. ++ The breakage with old versions is subtle, and affects the ++ annex.numcopies settings in .gitattributes, so be sure to upgrade git ++ to 1.7.7. (Debian package now depends on that version.) ++ * Don't pass absolute paths to git show-attr, as it started following ++ symlinks when that's done in 1.7.7. Instead, use relative paths, ++ which show-attr only handles 100% correctly in 1.7.7. Closes: #645046 ++ * Fix referring to remotes by uuid. ++ * New or changed repository descriptions in uuid.log now have a timestamp, ++ which is used to ensure the newest description is used when the uuid.log ++ has been merged. ++ * Note that older versions of git-annex will display the timestamp as part ++ of the repository description, which is ugly but otherwise harmless. ++ * Add timestamps to trust.log and remote.log too. ++ * git-annex-shell: Added the --uuid option. ++ * git-annex now asks git-annex-shell to verify that it's operating in ++ the expected repository. ++ * Note that this git-annex will not interoperate with remotes using ++ older versions of git-annex-shell. ++ * Now supports git's insteadOf configuration, to modify the url ++ used to access a remote. Note that pushInsteadOf is not used; ++ that and pushurl are reserved for actual git pushes. Closes: #644278 ++ * status: List all known repositories. ++ * When displaying a list of repositories, show git remote names ++ in addition to their descriptions. ++ * Add locking to avoid races when changing the git-annex branch. ++ * Various speed improvements gained by using ByteStrings. ++ * Contain the zombie hordes. ++ ++ -- Joey Hess Tue, 11 Oct 2011 23:00:02 -0400 ++ ++git-annex (3.20110928) unstable; urgency=low ++ ++ * --in can be used to make git-annex only operate on files ++ believed to be present in a given repository. ++ * Arbitrarily complex expressions can be built to limit the files git-annex ++ operates on, by combining the options --not --and --or -( and -) ++ Example: git annex get --exclude '*.mp3' --and --not -( --in usbdrive --or --in archive -) ++ * --copies=N can be used to make git-annex only operate on files with ++ the specified number of copies. (And --not --copies=N for the inverse.) ++ * find: Rather than only showing files whose contents are present, ++ when used with --exclude --copies or --in, displays all files that ++ match the specified conditions. ++ * Note that this is a behavior change for git-annex find! Old behavior ++ can be gotten by using: git-annex find --in . ++ * status: Massively sped up; remove --fast mode. ++ * unused: File contents used by branches and tags are no longer ++ considered unused, even when not used by the current branch. This is ++ the final piece of the puzzle needed for git-annex to to play nicely ++ with branches. ++ ++ -- Joey Hess Wed, 28 Sep 2011 18:14:02 -0400 ++ ++git-annex (3.20110915) unstable; urgency=low ++ ++ * whereis: Show untrusted locations separately and do not include in ++ location count. ++ * Fix build without S3. ++ * addurl: Always use whole url as destination filename, rather than ++ only its file component. ++ * get, drop, copy: Added --auto option, which decides whether ++ to get/drop content as needed to work toward the configured numcopies. ++ * bugfix: drop and fsck did not honor --exclude ++ ++ -- Joey Hess Thu, 15 Sep 2011 22:25:46 -0400 ++ ++git-annex (3.20110906) unstable; urgency=low ++ ++ * Improve display of newlines around error and warning messages. ++ * Fix Makefile to work with cabal again. ++ ++ -- Joey Hess Tue, 06 Sep 2011 13:45:16 -0400 ++ ++git-annex (3.20110902) unstable; urgency=low ++ ++ * Set EMAIL when running test suite so that git does not need to be ++ configured first. Closes: #638998 ++ * The wget command will now be used in preference to curl, if available. ++ * init: Make description an optional parameter. ++ * unused, status: Sped up by avoiding unnecessary stats of annexed files. ++ * unused --remote: Reduced memory use to 1/4th what was used before. ++ * Add --json switch, to produce machine-consumable output. ++ ++ -- Joey Hess Fri, 02 Sep 2011 21:20:37 -0400 ++ ++git-annex (3.20110819) unstable; urgency=low ++ ++ * Now "git annex init" only has to be run once, when a git repository ++ is first being created. Clones will automatically notice that git-annex ++ is in use and automatically perform a basic initalization. It's ++ still recommended to run "git annex init" in any clones, to describe them. ++ * Added annex-cost-command configuration, which can be used to vary the ++ cost of a remote based on the output of a shell command. ++ * Fix broken upgrade from V1 repository. Closes: #638584 ++ ++ -- Joey Hess Fri, 19 Aug 2011 20:34:09 -0400 ++ ++git-annex (3.20110817) unstable; urgency=low ++ ++ * Fix shell escaping in rsync special remote. ++ * addurl: --fast can be used to avoid immediately downloading the url. ++ * Added support for getting content from git remotes using http (and https). ++ * Added curl to Debian package dependencies. ++ ++ -- Joey Hess Wed, 17 Aug 2011 01:29:02 -0400 ++ ++git-annex (3.20110719) unstable; urgency=low ++ ++ * add: Be even more robust to avoid ever leaving the file seemingly deleted. ++ Closes: #634233 ++ * Bugfix: Make add ../ work. ++ * Support the standard git -c name=value ++ * unannex: Clean up use of git commit -a. ++ ++ -- Joey Hess Tue, 19 Jul 2011 23:39:53 -0400 ++ ++git-annex (3.20110707) unstable; urgency=low ++ ++ * Fix sign bug in disk free space checking. ++ * Bugfix: Forgot to de-escape keys when upgrading. Could result in ++ bad location log data for keys that contain [&:%] in their names. ++ (A workaround for this problem is to run git annex fsck.) ++ * add: Avoid a failure mode that resulted in the file seemingly being ++ deleted (content put in the annex but no symlink present). ++ ++ -- Joey Hess Thu, 07 Jul 2011 19:29:39 -0400 ++ ++git-annex (3.20110705) unstable; urgency=low ++ ++ * uninit: Delete the git-annex branch and .git/annex/ ++ * unannex: In --fast mode, file content is left in the annex, and a ++ hard link made to it. ++ * uninit: Use unannex in --fast mode, to support unannexing multiple ++ files that link to the same content. ++ * Drop the dependency on the haskell curl bindings, use regular haskell HTTP. ++ * Fix a pipeline stall when upgrading (caused by #624389). ++ ++ -- Joey Hess Tue, 05 Jul 2011 14:37:39 -0400 ++ ++git-annex (3.20110702) unstable; urgency=low ++ ++ * Now the web can be used as a special remote. ++ This feature replaces the old URL backend. ++ * addurl: New command to download an url and store it in the annex. ++ * Sped back up fsck, copy --from, and other commands that often ++ have to read a lot of information from the git-annex branch. Such ++ commands are now faster than they were before introduction of the ++ git-annex branch. ++ * Always ensure git-annex branch exists. ++ * Modify location log parser to allow future expansion. ++ * --force will cause add, etc, to operate on ignored files. ++ * Avoid mangling encoding when storing the description of repository ++ and other content. ++ * cabal can now be used to build git-annex. This is substantially ++ slower than using make, does not build or install documentation, ++ does not run the test suite, and is not particularly recommended, ++ but could be useful to some. ++ ++ -- Joey Hess Sat, 02 Jul 2011 15:00:18 -0400 ++ ++git-annex (3.20110624) experimental; urgency=low ++ ++ * New repository format, annex.version=3. Use `git annex upgrade` to migrate. ++ * git-annex now stores its logs in a git-annex branch. ++ * merge: New subcommand. Auto-merges the new git-annex branch. ++ * Improved handling of bare git repos with annexes. Many more commands will ++ work in them. ++ * git-annex is now more robust; it will never leave state files ++ uncommitted when some other git process comes along and locks the index ++ at an inconvenient time. ++ * rsync is now used when copying files from repos on other filesystems. ++ cp is still used when copying file from repos on the same filesystem, ++ since --reflink=auto can make it significantly faster on filesystems ++ such as btrfs. ++ * Allow --trust etc to specify a repository by name, for temporarily ++ trusting repositories that are not configured remotes. ++ * unlock: Made atomic. ++ * git-union-merge: New git subcommand, that does a generic union merge ++ operation, and operates efficiently without touching the working tree. ++ ++ -- Joey Hess Fri, 24 Jun 2011 14:32:18 -0400 ++ ++git-annex (0.20110610) unstable; urgency=low ++ ++ * Add --numcopies option. ++ * Add --trust, --untrust, and --semitrust options. ++ * get --from is the same as copy --from ++ * Bugfix: Fix fsck to not think all SHAnE keys are bad. ++ ++ -- Joey Hess Fri, 10 Jun 2011 11:48:40 -0400 ++ ++git-annex (0.20110601) unstable; urgency=low ++ ++ * Minor bugfixes and error message improvements. ++ * Massively sped up `git annex lock` by avoiding use of the uber-slow ++ `git reset`, and only running `git checkout` once, even when many files ++ are being locked. ++ * Fix locking of files with staged changes. ++ * Somewhat sped up `git commit` of modifications to unlocked files. ++ * Build fix for older ghc. ++ ++ -- Joey Hess Wed, 01 Jun 2011 11:50:47 -0400 ++ ++git-annex (0.20110522) unstable; urgency=low ++ ++ * Closer emulation of git's behavior when told to use "foo/.git" as a ++ git repository instead of just "foo". Closes: #627563 ++ * Fix bug in --exclude introduced in 0.20110516. ++ ++ -- Joey Hess Fri, 27 May 2011 20:20:41 -0400 ++ ++git-annex (0.20110521) unstable; urgency=low ++ ++ * status: New subcommand to show info about an annex, including its size. ++ * --backend now overrides any backend configured in .gitattributes files. ++ * Add --debug option. Closes: #627499 ++ ++ -- Joey Hess Sat, 21 May 2011 11:52:53 -0400 ++ ++git-annex (0.20110516) unstable; urgency=low ++ ++ * Add a few tweaks to make it easy to use the Internet Archive's variant ++ of S3. In particular, munge key filenames to comply with the IA's filename ++ limits, disable encryption, support their nonstandard way of creating ++ buckets, and allow x-archive-* headers to be specified in initremote to ++ set item metadata. ++ * Added filename extension preserving variant backends SHA1E, SHA256E, etc. ++ * migrate: Use current filename when generating new key, for backends ++ where the filename affects the key name. ++ * Work around a bug in Network.URI's handling of bracketed ipv6 addresses. ++ ++ -- Joey Hess Mon, 16 May 2011 14:16:52 -0400 ++ ++git-annex (0.20110503) unstable; urgency=low ++ ++ * Fix hasKeyCheap setting for bup and rsync special remotes. ++ * Add hook special remotes. ++ * Avoid crashing when an existing key is readded to the annex. ++ * unused: Now also lists files fsck places in .git/annex/bad/ ++ * S3: When encryption is enabled, the Amazon S3 login credentials ++ are stored, encrypted, in .git-annex/remotes.log, so environment ++ variables need not be set after the remote is initialized. ++ ++ -- Joey Hess Tue, 03 May 2011 20:56:01 -0400 ++ ++git-annex (0.20110427) unstable; urgency=low ++ ++ * Switch back to haskell SHA library, so git-annex remains buildable on ++ Debian stable. ++ * Added rsync special remotes. This could be used, for example, to ++ store annexed content on rsync.net (encrypted naturally). Or anywhere else. ++ * Bugfix: Avoid pipeline stall when running git annex drop or fsck on a ++ lot of files. Possibly only occured with ghc 7. ++ ++ -- Joey Hess Wed, 27 Apr 2011 22:50:26 -0400 ++ ++git-annex (0.20110425) unstable; urgency=low ++ ++ * Use haskell Crypto library instead of haskell SHA library. ++ * Remove testpack from build depends for non x86 architectures where it ++ is not available. The test suite will not be run if it cannot be compiled. ++ * Avoid using absolute paths when staging location log, as that can ++ confuse git when a remote's path contains a symlink. Closes: #621386 ++ ++ -- Joey Hess Mon, 25 Apr 2011 15:47:00 -0400 ++ ++git-annex (0.20110420) unstable; urgency=low ++ ++ * Update Debian build dependencies for ghc 7. ++ * Debian package is now built with S3 support. ++ Thanks Joachim Breitner for making this possible. ++ * Somewhat improved memory usage of S3, still work to do. ++ Thanks Greg Heartsfield for ongoing work to improve the hS3 library ++ for git-annex. ++ ++ -- Joey Hess Thu, 21 Apr 2011 15:00:48 -0400 ++ ++git-annex (0.20110419) unstable; urgency=low ++ ++ * Don't run gpg in batch mode, so it can prompt for passphrase when ++ there is no agent. ++ * Add missing build dep on dataenc. ++ * S3: Fix stalls when transferring encrypted data. ++ * bup: Avoid memory leak when transferring encrypted data. ++ ++ -- Joey Hess Tue, 19 Apr 2011 21:26:51 -0400 ++ ++git-annex (0.20110417) unstable; urgency=low ++ ++ * bup is now supported as a special type of remote. ++ * The data sent to special remotes (Amazon S3, bup, etc) can be encrypted ++ using GPG for privacy. ++ * Use lowercase hash directories for locationlog files, to avoid ++ some issues with git on OSX with the mixed-case directories. ++ No migration is needed; the old mixed case hash directories are still ++ read; new information is written to the new directories. ++ * Unused files on remotes, particulary special remotes, can now be ++ identified and dropped, by using "--from remote" with git annex unused ++ and git annex dropunused. ++ * Clear up short option confusion between --from and --force (-f is now ++ --from, and there is no short option for --force). ++ * Add build depend on perlmagick so docs are consistently built. ++ Closes: #621410 ++ * Add doc-base file. Closes: #621408 ++ * Periodically flush git command queue, to avoid boating memory usage ++ too much. ++ * Support "sha1" and "sha512" commands on FreeBSD, and allow building ++ if any/all SHA commands are not available. Thanks, Fraser Tweedale ++ ++ -- Joey Hess Sun, 17 Apr 2011 12:00:24 -0400 ++ ++git-annex (0.20110401) experimental; urgency=low ++ ++ * Amazon S3 is now supported as a special type of remote. ++ Warning: Encrypting data before sending it to S3 is not yet supported. ++ * Note that Amazon S3 support is not built in by default on Debian yet, ++ as hS3 is not packaged. ++ * fsck: Ensure that files and directories in .git/annex/objects ++ have proper permissions. ++ * Added a special type of remote called a directory remote, which ++ simply stores files in an arbitrary local directory. ++ * Bugfix: copy --to --fast never really copied, fixed. ++ ++ -- Joey Hess Fri, 01 Apr 2011 21:27:22 -0400 ++ ++git-annex (0.20110328) experimental; urgency=low ++ ++ * annex.diskreserve can be given in arbitrary units (ie "0.5 gigabytes") ++ * Generalized remotes handling, laying groundwork for remotes that are ++ not regular git remotes. (Think Amazon S3.) ++ * Provide a less expensive version of `git annex copy --to`, enabled ++ via --fast. This assumes that location tracking information is correct, ++ rather than contacting the remote for every file. ++ * Bugfix: Keys could be received into v1 annexes from v2 annexes, via ++ v1 git-annex-shell. This results in some oddly named keys in the v1 ++ annex. Recognise and fix those keys when upgrading, instead of crashing. ++ ++ -- Joey Hess Mon, 28 Mar 2011 10:47:29 -0400 ++ ++git-annex (0.20110325) experimental; urgency=low ++ ++ * Free space checking is now done, for transfers of data for keys ++ that have free space metadata. (Notably, not for SHA* keys generated ++ with git-annex 0.2x or earlier.) The code is believed to work on ++ Linux, FreeBSD, and OSX; check compile-time messages to see if it ++ is not enabled for your OS. ++ * Add annex.diskreserve config setting, to control how much free space ++ to reserve for other purposes and avoid using (defaults to 1 mb). ++ * Add --fast flag, that can enable less expensive, but also less thorough ++ versions of some commands. ++ * fsck: In fast mode, avoid checking checksums. ++ * unused: In fast mode, just show all existing temp files as unused, ++ and avoid expensive scan for other unused content. ++ * migrate: Support migrating v1 SHA keys to v2 SHA keys with ++ size information that can be used for free space checking. ++ * Fix space leak in fsck and drop commands. ++ * migrate: Bugfix for case when migrating a file results in a key that ++ is already present in .git/annex/objects. ++ * dropunused: Significantly sped up; only read unused log file once. ++ ++ -- Joey Hess Fri, 25 Mar 2011 00:47:37 -0400 ++ ++git-annex (0.20110320) experimental; urgency=low ++ ++ * Fix dropping of files using the URL backend. ++ * Fix support for remotes with '.' in their names. ++ * Add version command to show git-annex version as well as repository ++ version information. ++ * No longer auto-upgrade to repository format 2, to avoid accidental ++ upgrades, etc. Use git-annex upgrade when you're ready to run this ++ version. ++ ++ -- Joey Hess Sun, 20 Mar 2011 16:36:33 -0400 ++ ++git-annex (0.20110316) experimental; urgency=low ++ ++ * New repository format, annex.version=2. ++ * The first time git-annex is run in an old format repository, it ++ will automatically upgrade it to the new format, staging all ++ necessary changes to git. Also added a "git annex upgrade" command. ++ * Colons are now avoided in filenames, so bare clones of git repos ++ can be put on USB thumb drives formatted with vFAT or similar ++ filesystems. ++ * Added two levels of hashing to object directory and .git-annex logs, ++ to improve scalability with enormous numbers of annexed ++ objects. (With one hundred million annexed objects, each ++ directory would contain fewer than 1024 files.) ++ * The setkey, fromkey, and dropkey subcommands have changed how ++ the key is specified. --backend is no longer used with these. ++ ++ -- Joey Hess Wed, 16 Mar 2011 16:20:23 -0400 ++ ++git-annex (0.24) unstable; urgency=low ++ ++ Branched the 0.24 series, which will be maintained for a while to ++ support v1 git-annex repos, while main development moves to the 0.2011 ++ series, with v2 git-annex repos. ++ ++ * Add Suggests on graphviz. Closes: #618039 ++ * When adding files to the annex, the symlinks pointing at the annexed ++ content are made to have the same mtime as the original file. ++ While git does not preserve that information, this allows a tool ++ like metastore to be used with annexed files. ++ (Currently this is only done on systems supporting POSIX 200809.) ++ ++ -- Joey Hess Wed, 16 Mar 2011 18:35:13 -0400 ++ ++git-annex (0.23) unstable; urgency=low ++ ++ * Support ssh remotes with a port specified. ++ * whereis: New subcommand to show where a file's content has gotten to. ++ * Rethink filename encoding handling for display. Since filename encoding ++ may or may not match locale settings, any attempt to decode filenames ++ will fail for some files. So instead, do all output in binary mode. ++ ++ -- Joey Hess Sat, 12 Mar 2011 15:02:49 -0400 ++ ++git-annex (0.22) unstable; urgency=low ++ ++ * Git annexes can now be attached to bare git repositories. ++ (Both the local and remote host must have this version of git-annex ++ installed for it to work.) ++ * Support filenames that start with a dash; when such a file is passed ++ to a utility it will be escaped to avoid it being interpreted as an ++ option. (I went a little overboard and got the type checker involved ++ in this, so such files are rather comprehensively supported now.) ++ * New backends: SHA512 SHA384 SHA256 SHA224 ++ (Supported on systems where corresponding shaNsum commands are available.) ++ * describe: New subcommand that can set or change the description of ++ a repository. ++ * Fix test suite to reap zombies. ++ (Zombies can be particularly annoying on OSX; thanks to Jimmy Tang ++ for his help eliminating the infestation... for now.) ++ * Make test suite not rely on a working cp -pr. ++ (The Unix wars are still ON!) ++ * Look for dir.git directories the same as git does. ++ * Support remote urls specified as relative paths. ++ * Support non-ssh remote paths that contain tilde expansions. ++ * fsck: Check for and repair location log damage. ++ * Bugfix: When fsck detected and moved away corrupt file content, it did ++ not update the location log. ++ ++ -- Joey Hess Fri, 04 Mar 2011 15:10:57 -0400 ++ ++git-annex (0.21) unstable; urgency=low ++ ++ * test: Don't rely on chmod -R working. ++ * unannex: Fix recently introduced bug when attempting to unannex more ++ than one file at a time. ++ * test: Set git user name and email in case git can't guess values. ++ * Fix display of unicode filenames. ++ ++ -- Joey Hess Fri, 11 Feb 2011 23:21:08 -0400 ++ ++git-annex (0.20) unstable; urgency=low ++ ++ * Preserve specified file ordering when instructed to act on multiple ++ files or directories. For example, "git annex get a b" will now always ++ get "a" before "b". Previously it could operate in either order. ++ * unannex: Commit staged changes at end, to avoid some confusing behavior ++ with the pre-commit hook, which would see some types of commits after ++ an unannex as checking in of an unlocked file. ++ * map: New subcommand that uses graphviz to display a nice map of ++ the git repository network. ++ * Deal with the mtl/monads-fd conflict. ++ * configure: Check for sha1sum. ++ ++ -- Joey Hess Tue, 08 Feb 2011 18:57:24 -0400 ++ ++git-annex (0.19) unstable; urgency=low ++ ++ * configure: Support using the uuidgen command if the uuid command is ++ not available. ++ * Allow --exclude to be specified more than once. ++ * There are now three levels of repository trust. ++ * untrust: Now marks the current repository as untrusted. ++ * semitrust: Now restores the default trust level. (What untrust used to do.) ++ * fsck, drop: Take untrusted repositories into account. ++ * Bugfix: Files were copied from trusted remotes first even if their ++ annex.cost was higher than other remotes. ++ * Improved temp file handling. Transfers of content can now be resumed ++ from temp files later; the resume does not have to be the immediate ++ next git-annex run. ++ * unused: Include partially transferred content in the list. ++ * Bugfix: Running a second git-annex while a first has a transfer in ++ progress no longer deletes the first processes's temp file. ++ ++ -- Joey Hess Fri, 28 Jan 2011 14:31:37 -0400 ++ ++git-annex (0.18) unstable; urgency=low ++ ++ * Bugfix: `copy --to` and `move --to` forgot to stage location log changes ++ after transferring the file to the remote repository. ++ (Did not affect ssh remotes.) ++ * fsck: Fix bug in moving of corrupted files to .git/annex/bad/ ++ * migrate: Fix support for --backend option. ++ * unlock: Fix behavior when file content is not present. ++ * Test suite improvements. Current top-level test coverage: 80% ++ ++ -- Joey Hess Fri, 14 Jan 2011 14:17:44 -0400 ++ ++git-annex (0.17) unstable; urgency=low ++ ++ * unannex: Now skips files whose content is not present, rather than ++ it being an error. ++ * New migrate subcommand can be used to switch files to using a different ++ backend, safely and with no duplication of content. ++ * bugfix: Fix crash caused by empty key name. (Thanks Henrik for reporting.) ++ ++ -- Joey Hess Sun, 09 Jan 2011 10:04:11 -0400 ++ ++git-annex (0.16) unstable; urgency=low ++ ++ * git-annex-shell: Avoid exposing any git repo config except for the ++ annex.uuid when doing configlist. ++ * bugfix: Running `move --to` with a remote whose UUID was not yet known ++ could result in git-annex not recording on the local side where the ++ file was moved to. This could not result in data loss, or even a ++ significant problem, since the remote *did* record that it had the file. ++ * Also, add a general guard to detect attempts to record information ++ about repositories with missing UUIDs. ++ * bugfix: Running `move --to` with a non-ssh remote failed. ++ * bugfix: Running `copy --to` with a non-ssh remote actually did a move. ++ * Many test suite improvements. Current top-level test coverage: 65% ++ ++ -- Joey Hess Fri, 07 Jan 2011 14:33:13 -0400 ++ ++git-annex (0.15) unstable; urgency=low ++ ++ * Support scp-style urls for remotes (host:path). ++ * Support ssh urls containing "~". ++ * Add trust and untrust subcommands, to allow configuring repositories ++ that are trusted to retain files without explicit checking. ++ * Fix bug in numcopies handling when multiple remotes pointed to the ++ same repository. ++ * Introduce the git-annex-shell command. It's now possible to make ++ a user have it as a restricted login shell, similar to git-shell. ++ * Note that git-annex will always use git-annex-shell when accessing ++ a ssh remote, so all of your remotes need to be upgraded to this ++ version of git-annex at the same time. ++ * Now rsync is exclusively used for copying files to and from remotes. ++ scp is not longer supported. ++ ++ -- Joey Hess Fri, 31 Dec 2010 22:00:52 -0400 ++ ++git-annex (0.14) unstable; urgency=low ++ ++ * Bugfix to git annex unused in a repository with nothing yet annexed. ++ * Support upgrading from a v0 annex with nothing in it. ++ * Avoid multiple calls to git ls-files when passed eg, "*". ++ ++ -- Joey Hess Fri, 24 Dec 2010 17:38:48 -0400 ++ ++git-annex (0.13) unstable; urgency=low ++ ++ * Makefile: Install man page and html (when built). ++ * Makefile: Add GHCFLAGS variable. ++ * Fix upgrade from 0.03. ++ * Support remotes using git+ssh and ssh+git as protocol. ++ Closes: #607056 ++ ++ -- Joey Hess Tue, 14 Dec 2010 13:05:10 -0400 ++ ++git-annex (0.12) unstable; urgency=low ++ ++ * Add --exclude option to exclude files from processing. ++ * mwdn2man: Fix a bug in newline supression. Closes: #606578 ++ * Bugfix to git annex add of an unlocked file in a subdir. Closes: #606579 ++ * Makefile: Add PREFIX variable. ++ ++ -- Joey Hess Sat, 11 Dec 2010 17:32:00 -0400 ++ ++git-annex (0.11) unstable; urgency=low ++ ++ * If available, rsync will be used for file transfers from remote ++ repositories. This allows resuming interrupted transfers. ++ * Added remote.annex-rsync-options. ++ * Avoid deleting temp files when rsync fails. ++ * Improve detection of version 0 repos. ++ * Add uninit subcommand. Closes: #605749 ++ ++ -- Joey Hess Sat, 04 Dec 2010 17:27:42 -0400 ++ ++git-annex (0.10) unstable; urgency=low ++ ++ * In .gitattributes, the annex.numcopies attribute can be used ++ to control the number of copies to retain of different types of files. ++ * Bugfix: Always correctly handle gitattributes when in a subdirectory of ++ the repository. (Had worked ok for ones like "*.mp3", but failed for ++ ones like "dir/*".) ++ * fsck: Fix warning about not enough copies of a file, when locations ++ are known, but are not available in currently configured remotes. ++ * precommit: Optimise to avoid calling git-check-attr more than once. ++ * The git-annex-backend attribute has been renamed to annex.backend. ++ ++ -- Joey Hess Sun, 28 Nov 2010 19:28:05 -0400 ++ ++git-annex (0.09) unstable; urgency=low ++ ++ * Add copy subcommand. ++ * Fix bug in setkey subcommand triggered by move --to. ++ ++ -- Joey Hess Sat, 27 Nov 2010 17:14:59 -0400 ++ ++git-annex (0.08) unstable; urgency=low ++ ++ * Fix `git annex add ../foo` (when ran in a subdir of the repo). ++ * Add configure step to build process. ++ * Only use cp -a if it is supported, falling back to cp -p or plain cp ++ as needed for portability. ++ * cp --reflink=auto is used if supported, and will make git annex unlock ++ much faster on filesystems like btrfs that support copy on write. ++ ++ -- Joey Hess Sun, 21 Nov 2010 13:45:44 -0400 ++ ++git-annex (0.07) unstable; urgency=low ++ ++ * find: New subcommand. ++ * unused: New subcommand, finds unused data. (Split out from fsck.) ++ * dropunused: New subcommand, provides for easy dropping of unused keys ++ by number, as listed by the unused subcommand. ++ * fsck: Print warnings to stderr; --quiet can now be used to only see ++ problems. ++ ++ -- Joey Hess Mon, 15 Nov 2010 18:41:50 -0400 ++ ++git-annex (0.06) unstable; urgency=low ++ ++ * fsck: Check if annex.numcopies is satisfied. ++ * fsck: Verify the sha1 of files when the SHA1 backend is used. ++ * fsck: Verify the size of files when the WORM backend is used. ++ * fsck: Allow specifying individual files if fscking everything ++ is not desired. ++ * fsck: Fix bug, introduced in 0.04, in detection of unused data. ++ ++ -- Joey Hess Sat, 13 Nov 2010 16:24:29 -0400 ++ ++git-annex (0.05) unstable; urgency=low ++ ++ * Optimize both pre-commit and lock subcommands to not call git diff ++ on every file being committed/locked. ++ (This actually also works around a bug in ghc, that caused ++ git-annex 0.04 pre-commit to sometimes corrupt filename being read ++ from git ls-files and fail. ++ See ++ The excessive number of calls made by pre-commit exposed the ghc bug. ++ Thanks Josh Triplett for the debugging.) ++ * Build with -O2. ++ ++ -- Joey Hess Thu, 11 Nov 2010 18:31:09 -0400 ++ ++git-annex (0.04) unstable; urgency=low ++ ++ * Add unlock subcommand, which replaces the symlink with a copy of ++ the file's content in preparation of changing it. The "edit" subcommand ++ is an alias for unlock. ++ * Add lock subcommand. ++ * Unlocked files will now automatically be added back into the annex when ++ committed (and the updated symlink committed), by some magic in the ++ pre-commit hook. ++ * The SHA1 backend is now fully usable. ++ * Add annex.version, which will be used to automate upgrades ++ between incompatible versions. ++ * Reorganised the layout of .git/annex/ ++ * The new layout will be automatically upgraded to the first time ++ git-annex is used in a repository with the old layout. ++ * Note that git-annex 0.04 cannot transfer content from old repositories ++ that have not yet been upgraded. ++ * Annexed file contents are now made unwritable and put in unwriteable ++ directories, to avoid them accidentially being removed or modified. ++ (Thanks Josh Triplett for the idea.) ++ * Add build dep on libghc6-testpack-dev. Closes: #603016 ++ * Avoid using runghc to run test suite as it is not available on all ++ architectures. Closes: #603006 ++ ++ -- Joey Hess Wed, 10 Nov 2010 14:23:23 -0400 ++ ++git-annex (0.03) unstable; urgency=low ++ ++ * Fix support for file:// remotes. ++ * Add --verbose ++ * Fix SIGINT handling. ++ * Fix handling of files with unusual characters in their name. ++ * Fixed memory leak; git-annex no longer reads the whole file list ++ from git before starting, and will be much faster with large repos. ++ * Fix crash on unknown symlinks. ++ * Added remote.annex-scp-options and remote.annex-ssh-options. ++ * The backends to use when adding different sets of files can be configured ++ via gitattributes. ++ * In .gitattributes, the git-annex-backend attribute can be set to the ++ names of backends to use when adding different types of files. ++ * Add fsck subcommand. (For now it only finds unused key contents in the ++ annex.) ++ ++ -- Joey Hess Sun, 07 Nov 2010 18:26:04 -0400 ++ ++git-annex (0.02) unstable; urgency=low ++ ++ * Can scp annexed files from remote hosts, and check remote hosts for ++ file content when dropping files. ++ * New move subcommand, that makes it easy to move file contents from ++ or to a remote. ++ * New fromkey subcommand, for registering urls, etc. ++ * git-annex init will now set up a pre-commit hook that fixes up symlinks ++ before they are committed, to ensure that moving symlinks around does not ++ break them. ++ * More intelligent and fast staging of modified files; git add coalescing. ++ * Add remote.annex-ignore git config setting to allow completly disabling ++ a given remote. ++ * --from/--to can be used to control the remote repository that git-annex ++ uses. ++ * --quiet can be used to avoid verbose output ++ * New plumbing-level dropkey and addkey subcommands. ++ * Lots of bug fixes. ++ ++ -- Joey Hess Wed, 27 Oct 2010 16:39:29 -0400 ++ ++git-annex (0.01) unstable; urgency=low ++ ++ * First prerelease. ++ ++ -- Joey Hess Wed, 20 Oct 2010 12:54:24 -0400 diff --cc debian/control index 0cfe536bf7,0000000000..6d23936c6e mode 100644,000000..100644 --- a/debian/control +++ b/debian/control @@@ -1,149 -1,0 +1,154 @@@ +Source: git-annex +Section: utils +Priority: optional +Build-Depends: - debhelper (>= 9), ++ debhelper-compat (= 13), + ghc (>= 8.4.3), + cabal-install, + libghc-mtl-dev (>= 2.1.1), + libghc-split-dev, + libghc-data-default-dev, + libghc-hslogger-dev, - libghc-cryptonite-dev, ++ libghc-crypton-dev, + libghc-memory-dev, + libghc-deepseq-dev, + libghc-attoparsec-dev, + libghc-sandi-dev, + libghc-utf8-string-dev, - libghc-aws-dev (>= 0.9.2-2~), ++ libghc-aws-dev (>= 0.20), + libghc-conduit-dev, + libghc-resourcet-dev, - libghc-quickcheck2-dev, ++ libghc-quickcheck2-dev (>= 2.10.0), + libghc-monad-control-dev (>= 0.3), + libghc-transformers-dev, + libghc-exceptions-dev (>= 0.6), + libghc-unix-compat-dev, + libghc-dlist-dev, + libghc-uuid-dev, + libghc-aeson-dev, + libghc-tagsoup-dev, + libghc-unordered-containers-dev, + libghc-ifelse-dev, - libghc-bloomfilter-dev, ++ libghc-bloomfilter-dev (>= 2.0.0), + libghc-edit-distance-dev, - libghc-hinotify-dev [linux-any], ++ libghc-hinotify-dev (>= 0.3.10) [linux-any], + libghc-dbus-dev (>= 0.10.7) [linux-any], + libghc-fdo-notify-dev (>= 0.3) [linux-any], - libghc-yesod-dev (>= 1.2.6.1) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x], - libghc-yesod-core-dev (>= 1.2.19) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x], - libghc-yesod-form-dev (>= 1.3.15) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x], - libghc-yesod-static-dev (>= 1.2.4) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x], - libghc-shakespeare-dev (>= 2.0.0) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x], - libghc-clientsession-dev [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x], - libghc-warp-dev (>= 3.0.0.5) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x], - libghc-warp-tls-dev [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x], - libghc-wai-dev [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x], - libghc-wai-extra-dev [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x], ++ libghc-yesod-dev (>= 1.2.6.1) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], ++ libghc-yesod-core-dev (>= 1.2.19) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], ++ libghc-yesod-form-dev (>= 1.3.15) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], ++ libghc-yesod-static-dev (>= 1.2.4) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], ++ libghc-shakespeare-dev (>= 2.0.0) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], ++ libghc-clientsession-dev [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], ++ libghc-warp-dev (>= 3.0.0.5) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], ++ libghc-warp-tls-dev [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], ++ libghc-wai-dev [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], ++ libghc-wai-extra-dev [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], + libghc-dav-dev (>= 1.0), - libghc-persistent-dev, ++ libghc-persistent-dev (>= 2.8.1), + libghc-persistent-template-dev, - libghc-persistent-sqlite-dev, ++ libghc-persistent-sqlite-dev (>= 2.8.1), + libghc-microlens-dev, + libghc-securemem-dev, + libghc-byteable-dev, + libghc-stm-chans-dev, + libghc-case-insensitive-dev, + libghc-http-types-dev, + libghc-http-conduit-dev, + libghc-http-client-restricted-dev, + libghc-blaze-builder-dev, + libghc-crypto-api-dev, + libghc-network-multicast-dev, + libghc-network-info-dev [linux-any kfreebsd-any], + libghc-safesemaphore-dev, + libghc-async-dev, + libghc-monad-logger-dev, + libghc-free-dev, - libghc-feed-dev (>= 0.3.9.2), ++ libghc-feed-dev (>= 1.0.0), + libghc-regex-tdfa-dev, + libghc-tasty-dev (>= 0.7), + libghc-tasty-hunit-dev, + libghc-tasty-quickcheck-dev, + libghc-tasty-rerun-dev, + libghc-cabal-dev, + libghc-ansi-terminal-dev, + libghc-optparse-applicative-dev (>= 0.11.0), + libghc-torrent-dev, - libghc-concurrent-output-dev, ++ libghc-concurrent-output-dev (>= 1.10), + libghc-disk-free-space-dev, + libghc-mountpoints-dev, + libghc-magic-dev, + libghc-socks-dev, + libghc-vector-dev, ++ libghc-unbounded-delays-dev, + libghc-unliftio-core-dev, + libghc-filepath-bytestring-dev, + libghc-git-lfs-dev (>= 1.2.0), + libghc-criterion-dev, + lsof [linux-any], + ikiwiki, + libimage-magick-perl, + git (>= 1:2.22), + rsync, + curl, + openssh-client, + git-remote-gcrypt (>= 0.20130908-6), + gnupg, + gpg-agent, - Maintainer: Richard Hartmann - Standards-Version: 3.9.8 - Vcs-Git: git://git.joeyh.name/git-annex ++ llvm-11, ++Maintainer: Debian Haskell Group ++Uploaders: ++ Richard Hartmann , ++ Sean Whitton , ++Standards-Version: 4.2.1 ++Vcs-Git: https://salsa.debian.org/haskell-team/git-annex.git ++Vcs-Browser: https://salsa.debian.org/haskell-team/git-annex +Homepage: http://git-annex.branchable.com/ +XS-Testsuite: autopkgtest + +Package: git-annex +Architecture: any +Section: utils +Depends: ${misc:Depends}, ${shlibs:Depends}, + git (>= 1:2.22), + netbase, + rsync, + curl, + openssh-client (>= 1:5.6p1) +Recommends: + lsof, + gnupg, + bind9-host, - yt-dlp, + git-remote-gcrypt (>= 0.20130908-6), + nocache, + aria2, +Suggests: + xdot, + bup, + adb, + tor, + magic-wormhole, + tahoe-lafs, + libnss-mdns, + uftp, + yt-dlp, - Breaks: datalad (< 0.12.3~) ++Breaks: datalad (<< 0.12.3~) +Description: manage files with git, without checking their contents into git + git-annex allows managing large files with git, without storing the file + contents in git. It can sync, backup, and archive your data, offline + and online. Checksums and encryption keep your data safe and secure. Bring + the power and distributed nature of git to bear on your large files with + git-annex. + . + It can store large files in many places, from local hard drives, to a + large number of cloud storage services, including S3, WebDAV, + and rsync, with dozens of cloud storage providers usable via plugins. + Files can be stored encrypted with gpg, so that the cloud storage + provider cannot see your data. git-annex keeps track of where each file + is stored, so it knows how many copies are available, and has many + facilities to ensure your data is preserved. + . + git-annex can also be used to keep a folder in sync between computers, + noticing when files are changed, and automatically committing them + to git and transferring them to other computers. The git-annex webapp + makes it easy to set up and use git-annex this way. diff --cc debian/gbp.conf index 0000000000,0000000000..024fcfeb4e new file mode 100644 --- /dev/null +++ b/debian/gbp.conf @@@ -1,0 -1,0 +1,7 @@@ ++[DEFAULT] ++debian-branch = master ++upstream-tag = %(version)s ++debian-tag = debian/%(version)s ++ ++compression = xz ++compression-level = 9 diff --cc debian/git-annex.lintian-overrides index 0000000000,0000000000..dca0fa114a new file mode 100644 --- /dev/null +++ b/debian/git-annex.lintian-overrides @@@ -1,0 -1,0 +1,2 @@@ ++# upstream manages NEWS.Debian, and this version was not packaged ++debian-news-entry-has-unknown-version 7.20181031 diff --cc debian/patches/debian-changes index 0000000000,0000000000..b70205d5e2 new file mode 100644 --- /dev/null +++ b/debian/patches/debian-changes @@@ -1,0 -1,0 +1,10801 @@@ ++The Debian packaging of git-annex is maintained in git, using the ++merging workflow described in dgit-maint-merge(7). There isn't a ++patch queue that can be represented as a quilt series. ++ ++A detailed breakdown of the changes is available from their canonical ++representation - git commits in the packaging repository. For ++example, to see the changes made by the Debian maintainer in the first ++upload of upstream version 1.2.3, you could use: ++ ++ % git clone https://git.dgit.debian.org/git-annex ++ % cd git-annex ++ % git log --oneline 1.2.3..debian/1.2.3-1 -- . ':!debian' ++ ++(If you have dgit, use `dgit clone git-annex`, rather than plain `git ++clone`.) ++ ++A single combined diff, containing all the changes, follows. ++--- git-annex-10.20240430.orig/COPYRIGHT +++++ git-annex-10.20240430/COPYRIGHT ++@@ -59,11 +59,14 @@ License: GPL-2 ++ The full text of version 2 of the GPL is distributed in ++ /usr/share/common-licenses/GPL-2 on Debian systems. ++ +++Files: Annex/DirHashes.hs +++Copyright: © 2010-2017 Joey Hess +++License: GPL-3+ +++ ++ Files: Database/RawFilePath.hs ++ Copyright: © 2012 Michael Snoyman, http://www.yesodweb.com/ ++ © 2023 Joey Hess ++ License: Expat ++- The text of the Expat license is in the Expat section below. ++ ++ Files: doc/tips/automatically_adding_metadata/pre-commit-annex ++ Copyright: 2014 Joey Hess ++@@ -74,9 +77,6 @@ Files: static/jquery* ++ Copyright: © 2005-2011 by John Resig, Branden Aaron & Jörn Zaefferer ++ © 2011 The Dojo Foundation ++ License: Expat or GPL-2 ++- The full text of version 2 of the GPL is distributed in ++- /usr/share/common-licenses/GPL-2 on Debian systems. The text of the Expat ++- license is in the Expat section below. ++ ++ Files: static/*/bootstrap* static/*/glyphicons-halflings* ++ Copyright: 2012-2014 Twitter, Inc. ++@@ -106,6 +106,10 @@ License: GPL-3+ ++ this package's source, or in /usr/share/common-licenses/GPL-3 on ++ Debian systems. ++ +++License: GPL-2 +++ The full text of version 2 of the GPL is distributed in +++ /usr/share/common-licenses/GPL-2 on Debian systems. +++ ++ License: BSD-2-clause ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-add.1 ++@@ -0,0 +1,119 @@ +++.TH git-annex-add 1 +++.SH NAME +++git-annex-add \- adds files to the git annex +++.PP +++.SH SYNOPSIS +++git annex add \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++Adds the specified files to the annex. If a directory is specified, +++acts on all files inside the directory and its subdirectories. +++If no path is specified, adds files from the current directory and below. +++.PP +++Files that are already checked into git and are unmodified, or that +++git has been configured to ignore will be silently skipped. +++.PP +++If annex.largefiles is configured (in git config, gitattributes, or +++git-annex config), and does not match a file, \fBgit annex add\fP will behave +++the same as \fBgit add\fP and add the non\-large file directly to the git +++repository, instead of to the annex. (By default dotfiles are assumed to +++not be large, and are added directly to git, but annex.dotfiles can be +++configured to annex those too.) See the git-annex manpage for documentation +++of these and other configuration settings. +++.PP +++By default, large files are added to the annex in locked form, which +++prevents further modification of their content until +++unlocked by git-annex\-unlock(1). (This is not the case however +++when a repository is in a filesystem not supporting symlinks.) +++The annex.addunlocked git config (and git-annex config) can be used to +++change this behavior. +++.PP +++This command can also be used to add symbolic links, both symlinks to +++annexed content, and other symlinks. +++.PP +++.SH EXAMPLES +++ # git annex add foo bar +++ add foo ok +++ add bar ok +++ # git commit \-m added +++.PP +++.SH OPTIONS +++.IP "\fB\-\-no\-check\-gitignore\fP" +++.IP +++Add gitignored files. +++.IP +++.IP "\fB\-\-force\-large\fP" +++Treat all files as large files, ignoring annex.largefiles and annex.dotfiles +++configuration, and add to the annex. +++.IP +++.IP "\fB\-\-force\-small\fP" +++Treat all files as small files, ignoring annex.largefiles and annex.dotfiles +++and annex.addsmallfiles configuration, and add to git. +++.IP +++.IP "\fB\-\-backend\fP" +++Specifies which key\-value backend to use. +++.IP +++.IP "file matching options" +++Many of the git-annex\-matching\-options(1) +++can be used to specify files to add. +++.IP +++For example: \fB\-\-largerthan=1GB\fP +++.IP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++Adds multiple files in parallel. This may be faster. +++For example: \fB\-J4\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++.IP "\fB\-\-update\fP \fB\-u\fP" +++Like \fBgit add \-\-update\fP, this does not add new files, but any updates +++to tracked files will be added to the index. +++.IP +++.IP "\fB\-\-dry\-run\fP" +++Output what would be done for each file, but avoid making any changes. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-progress\fP" +++Include progress objects in JSON output. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "\fB\-\-batch\fP" +++Enables batch mode, in which a file to add is read in a line from stdin, +++the file is added, and repeat. +++.IP +++Note that if a file is skipped (due to not existing, being gitignored, +++already being in git, or doesn't meet the matching options), +++an empty line will be output instead of the normal output produced +++when adding a file. +++.IP +++.IP "\fB\-z\fP" +++Makes the \fB\-\-batch\fP input be delimited by nulls instead of the usual +++newlines. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-unlock(1) +++.PP +++git-annex\-lock(1) +++.PP +++git-annex\-undo(1) +++.PP +++git-annex\-import(1) +++.PP +++git-annex\-unannex(1) +++.PP +++git-annex\-reinject(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-addunused.1 ++@@ -0,0 +1,36 @@ +++.TH git-annex-addunused 1 +++.SH NAME +++git-annex-addunused \- add back unused files +++.PP +++.SH SYNOPSIS +++git annex addunused \fB[number|range ...]\fP +++.PP +++.SH DESCRIPTION +++Adds back files for the content corresponding to the numbers or ranges, +++as listed by the last \fBgit annex unused\fP. +++.PP +++The files will have names starting with "unused." +++.PP +++.SH OPTIONS +++.IP "\fB\-\-json\fP" +++.IP +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "The git-annex\-common\-options(1) can also be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-add(1) +++.PP +++git-annex\-unused(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-addurl.1 ++@@ -0,0 +1,166 @@ +++.TH git-annex-addurl 1 +++.SH NAME +++git-annex-addurl \- add urls to annex +++.PP +++.SH SYNOPSIS +++git annex addurl \fB[url ...]\fP +++.PP +++.SH DESCRIPTION +++Downloads each url to its own file, which is added to the annex. +++.PP +++When \fByt\-dlp\fP is installed, it can be used to check for a video +++embedded in a web page at the url, and that is added to the annex instead. +++(However, this is disabled by default as it can be a security risk. +++See the documentation of annex.security.allowed\-ip\-addresses +++in git-annex(1) for details.) +++.PP +++Special remotes can add other special handling of particular urls. For +++example, the bittorrent special remotes makes urls to torrent files +++(including magnet links) download the content of the torrent, +++using \fBaria2c\fP. +++.PP +++Normally the filename is based on the full url, so will look like +++"www.example.com_dir_subdir_bigfile". In some cases, addurl is able to +++come up with a better filename based on other information. Options can also +++be used to get better filenames. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-fast\fP" +++.IP +++Avoid immediately downloading the url. The url is still checked +++(via HEAD) to verify that it exists, and to get its size if possible. +++.IP +++.IP "\fB\-\-relaxed\fP" +++Don't immediately download the url, and avoid storing the size of the +++url's content. This makes git-annex accept whatever content is there +++at a future point. +++.IP +++This is the fastest option, but it still has to access the network +++to check if the url contains embedded media. When adding large numbers +++of urls, using \fB\-\-relaxed \-\-raw\fP is much faster. +++.IP +++.IP "\fB\-\-verifiable\fP \fB\-V\fP" +++This can be used with the \fB\-\-fast\fP or \fB\-\-relaxed\fP option. It improves +++the safety of the resulting annexed file, by letting its content be +++verified with a checksum when it is transferred between git-annex +++repositories, as well as by things like \fBgit-annex fsck\fP. +++.IP +++When used with \-\-relaxed, content from the web will always be accepted, +++even if it has changed, and the checksum recorded for later verification. +++.IP +++When used with \-\-fast, the checksum is recorded the first time the +++content is downloaded from the web. Once a checksum has been recorded, +++subsequent downloads from the web must have the same checksum. +++.IP +++When addurl was used without this option before, the file it added +++can be converted to be verifiable by migrating it to the VURL backend. +++For example: \fBgit-annex migrate foo \-\-backend=VURL\fP +++.IP +++.IP "\fB\-\-raw\fP" +++Prevent special handling of urls by yt\-dlp, and by bittorrent +++and other special remotes. This will for example, make addurl +++download the .torrent file and not the contents it points to. +++.IP +++.IP "\fB\-\-no\-raw\fP" +++Require content pointed to by the url to be downloaded using yt\-dlp +++or a special remote, rather than the raw content of the url. if that +++cannot be done, the add will fail. +++.IP +++.IP "\fB\-\-raw\-except=remote\fP" +++Prevent special handling of urls by all special remotes except +++for the specified one. To allow special handling only +++by yt\-dlp, use \fB\-\-raw\-except=web\fP. +++.IP +++.IP "\fB\-\-file=name\fP" +++Use with a filename that does not yet exist to add a new file +++with the specified name and the content downloaded from the url. +++.IP +++If the file already exists, addurl will record that it can be downloaded +++from the specified url(s). +++.IP +++.IP "\fB\-\-preserve\-filename\fP" +++When the web server (or torrent, etc) provides a filename, use it as\-is, +++avoiding sanitizing unusual characters, or truncating it to length, or any +++other modifications. +++.IP +++git-annex will still check the filename for safety, and if the filename +++has a security problem such as path traversal or a control character, +++it will refuse to add it. +++.IP +++.IP "\fB\-\-pathdepth=N\fP" +++Rather than basing the filename on the whole url, this causes a path to +++be constructed, starting at the specified depth within the path of the +++url. +++.IP +++For example, adding the url http://www.example.com/dir/subdir/bigfile +++with \fB\-\-pathdepth=1\fP will use "dir/subdir/bigfile", +++while \fB\-\-pathdepth=3\fP will use "bigfile". +++.IP +++It can also be negative; \fB\-\-pathdepth=\-2\fP will use the last +++two parts of the url. +++.IP +++.IP "\fB\-\-prefix=foo\fP \fB\-\-suffix=bar\fP" +++Use to adjust the filenames that are created by addurl. For example, +++\fB\-\-suffix=.mp3\fP can be used to add an extension to the file. +++.IP +++.IP "\fB\-\-no\-check\-gitignore\fP" +++By default, gitignores are honored and it will refuse to download an +++url to a file that would be ignored. This makes such files be added +++despite any ignores. +++.IP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++Enables parallel downloads when multiple urls are being added. +++For example: \fB\-J4\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++.IP "\fB\-\-batch\fP" +++Enables batch mode, in which lines containing urls to add are read from +++stdin. +++.IP +++.IP "\fB\-z\fP" +++Makes the \fB\-\-batch\fP input be delimited by nulls instead of the usual +++newlines. +++.IP +++.IP "\fB\-\-with\-files\fP" +++When batch mode is enabled, makes it parse lines of the form: "$url $file" +++.IP +++That adds the specified url to the specified file, downloading its +++content if the file does not yet exist; the same as +++\fBgit annex addurl $url \-\-file $file\fP +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-progress\fP" +++Include progress objects in JSON output. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "\fB\-\-backend\fP" +++Specifies which key\-value backend to use. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH CAVEATS +++If annex.largefiles is configured, and does not match a file, git annex +++addurl will add the non\-large file directly to the git repository, +++instead of to the annex. However, this is not done when \-\-fast or \-\-relaxed +++is used. +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-rmurl(1) +++.PP +++git-annex\-registerurl(1) +++.PP +++git-annex\-importfeed(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-adjust.1 ++@@ -0,0 +1,128 @@ +++.TH git-annex-adjust 1 +++.SH NAME +++git-annex-adjust \- enter an adjusted branch +++.PP +++.SH SYNOPSIS +++git annex adjust \fB\-\-unlock|\-\-lock|\-\-fix|\-\-hide\-missing [\-\-unlock|\-\-lock|\-\-fix]|\-\-unlock\-present\fP +++.PP +++.SH DESCRIPTION +++Enters an adjusted form of the current branch. The annexed files will +++be treated differently. For example with \-\-unlock all annexed files will +++be unlocked. +++.PP +++The adjusted branch will have a name like "adjusted/master(unlocked)". +++Since it's a regular git branch, you can use \fBgit checkout\fP to switch +++back to the original branch at any time. +++.PP +++This allows changing how annexed files are handled, without making changes +++to a public branch with commands like \fBgit-annex unlock\fP. +++.PP +++While in the adjusted branch, you can use git-annex and git commands as +++usual. Any commits that you make will initially only be made to the +++adjusted branch. +++.PP +++To propagate commits from the adjusted branch back to the original branch, +++and to other repositories, as well as to merge in changes from other +++repositories, run \fBgit annex sync\fP. This will propagate changes that you've +++made such as adding/deleting files, but will not propagate the adjustments +++made by this command. +++.PP +++When in an adjusted branch, using \fBgit merge otherbranch\fP is often not +++ideal, because merging a non\-adjusted branch may lead to unnecessary +++merge conflicts, or add files in non\-adjusted form. To avoid those +++problems, use \fBgit annex merge otherbranch\fP. +++.PP +++Re\-running this command with the same options +++while inside the adjusted branch will update the adjusted branch +++as necessary (eg for \fB\-\-hide\-missing\fP and \fB\-\-unlock\-present\fP), +++and will also propagate commits back to the original branch. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-unlock\fP" +++.IP +++Unlock all annexed files in the adjusted branch. This allows +++annexed files to be modified. +++.IP +++Normally, unlocking a file requires a copy to be made of its content, +++so that its original content is preserved, while the copy can be modified. +++To use less space, annex.thin can be set to true before running this +++command; this makes a hard link to the content be made instead of a copy. +++(When supported by the file system.) While this can save considerable +++disk space, any modification made to a file will cause the old version of the +++file to be lost from the local repository. So, enable annex.thin with care. +++.IP +++When in an adjusted unlocked branch, \fBgit annex add\fP will add files +++unlocked instead of the default behavior of adding them locked. +++.IP +++.IP "\fB\-\-lock\fP" +++Lock all annexed files in the adjusted branch. This may be preferred +++by those who like seeing broken symlinks when the content of an +++annexed file is not present. +++.IP +++When in an adjusted locked branch, \fBgit annex add\fP will add files locked, +++as usual. However, \fBgit add\fP (and \fBgit commit \-a\fP etc) still add files +++unlocked. This is because it's not possible for those git commands to +++add files locked. +++.IP +++.IP "\fB\-\-fix\fP" +++Fix the symlinks to annexed files to point to the local git annex +++object directory. This can be useful if a repository is checked out in an +++unusual way that prevents the symlinks committed to git from pointing at +++the annex objects. +++.IP +++.IP "\fB\-\-hide\-missing\fP" +++Only include annexed files in the adjusted branch when their content +++is present. +++.IP +++The adjusted branch is not immediately changed when content availability +++changes, so if you \fBgit annex drop\fP files, they will become broken +++links in the usual way. And when files that were missing are copied into the +++repository from elsewhere, they won't immediatly become visible in the +++branch. +++.IP +++To update the adjusted branch to reflect changes to content availability, +++run \fBgit annex adjust \-\-hide\-missing\fP again. Or, to automate updates, +++set the \fBannex.adjustedbranchrefresh\fP config. +++.IP +++Despite missing files being hidden, \fBgit annex sync \-\-content\fP will +++still operate on them, and can be used to download missing +++files from remotes. It also updates the adjusted branch after +++transferring content. +++.IP +++This option can be combined with \-\-unlock, \-\-lock, or \-\-fix. +++.IP +++.IP "\fB\-\-unlock\-present\fP" +++Unlock files whose content is present, and lock files whose content is +++missing. This provides the benefits of working with unlocked files, +++but makes it easier to see when the content of a file is not missing, +++since it will be a broken symlink. +++.IP +++The adjusted branch is not immediately changed when content availability +++changes, so when you \fBgit annex get\fP files, they will remain locked. +++And when you \fBgit annex drop\fP files, they will remain locked and so will +++not be broken symlinks. +++.IP +++To update the adjusted branch to reflect changes to content availability, +++run \fBgit annex adjust \-\-unlock\-present\fP again. Or, to automate updates, +++set the \fBannex.adjustedbranchrefresh\fP config. Or use git-annex sync +++\-\-content, which updates the branch after transferring content. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-unlock(1) +++.PP +++git-annex\-lock(1) +++.PP +++git-annex\-upgrade(1) +++.PP +++git-annex\-sync(1) +++.PP +++git-annex\-view(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-assist.1 ++@@ -0,0 +1,63 @@ +++.TH git-annex-assist 1 +++.SH NAME +++git-annex-assist \- add files and sync changes with remotes +++.PP +++.SH SYNOPSIS +++git annex assist \fB[remote ...]\fP +++.PP +++.SH DESCRIPTION +++This command assists you in checking files into the repository +++and syncing with remotes. It's the simplest possible way to use git-annex +++at the command line, since only this one command needs to be run on a +++regular basis. +++.PP +++This command first adds any new files to the repository, and commits those +++as well as any modified files. Then it does the equivilant of running +++[[git-annex\-pull](1) followed by git-annex\-push(1). +++.PP +++This command operates on all files in the whole working tree, +++even when ran in a subdirectory. To limit it to operating on files in a +++subdirectory, use the \fB\-\-content\-of\fP option. +++.PP +++To block some files from being added to the repository, use \fB.gitignore\fP +++files. +++.PP +++By default, all files that are added are added to the annex, the same +++as when you run \fBgit annex add\fP. If you configure annex.largefiles, +++files that it does not match will instead be added with \fBgit add\fP. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-message=msg\fP \fB\-m msg\fP" +++.IP +++Use this option to specify a commit message. +++.IP +++If multiple \-m options are given, their values are concatenated +++as separate paragraphs. +++.IP +++.IP "\fB\-\-content\-of=path\fP \fB\-C path\fP" +++Only add, pull, and push files in the given path. +++.IP +++This option can be repeated multiple times with different paths. +++.IP +++.IP "Also all options supported by git-annex\-pull(1) and" +++git-annex\-push(1) can be used. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-add(1) +++.PP +++git-annex\-pull(1) +++.PP +++git-annex\-push(1) +++.PP +++git-annex\-sync(1) +++.PP +++git-annex\-assistant(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-assistant.1 ++@@ -0,0 +1,63 @@ +++.TH git-annex-assistant 1 +++.SH NAME +++git-annex-assistant \- daemon to add files and automatically sync changes +++.PP +++.SH SYNOPSIS +++git annex assistant +++.PP +++.SH DESCRIPTION +++Watches for changes to files in the current directory and its subdirectories, +++and automatically syncs them to other remotes. This includes adding new +++files. New files published to remotes by others are also automatically +++downloaded. +++.PP +++By default, all new files in the directory will be added to the repository. +++(Including dotfiles.) To block some files from being added, use +++\fB.gitignore\fP files. +++.PP +++By default, all files that are added are added to the annex, the same +++as when you run \fBgit annex add\fP. If you configure annex.largefiles, +++files that it does not match will instead be added with \fBgit add\fP. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-autostart\fP" +++.IP +++Automatically starts the assistant running in each repository listed +++in the file \fB~/.config/git-annex/autostart\fP +++.IP +++This is typically started at boot, or when you log in. +++.IP +++.IP "\fB\-\-startdelay=N\fP" +++Wait N seconds before running the startup scan. This process can +++be expensive and you may not want to run it immediately upon login. +++.IP +++When \-\-autostart is used, defaults to \-\-startdelay=5. +++.IP +++.IP "\fB\-\-foreground\fP" +++Avoid forking to the background. +++.IP +++.IP "\fB\-\-stop\fP" +++Stop a running daemon in the current repository. +++.IP +++.IP "\fB\-\-autostop\fP" +++The complement to \-\-autostart; stops all running daemons in the +++repositories listed in the autostart file. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-watch(1) +++.PP +++git-annex\-assist(1) +++.PP +++git-annex\-schedule(1) +++.PP +++For more details about the git-annex assistant, see +++ +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-backends.1 ++@@ -0,0 +1,22 @@ +++.TH git-annex-backends 1 +++.SH NAME +++git-annex\-backends \- key/value backends for git-annex +++.PP +++.SH DESCRIPTION +++The "backend" in git-annex controls how a key is generated from a file's +++content and/or filesystem metadata. Most backends are different kinds of +++hashes. A single repository can use different backends for different files. +++.PP +++For a list of available backends, see \fBgit-annex version\fP. For more +++details, see +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++ +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-benchmark.1 ++@@ -0,0 +1,60 @@ +++.TH git-annex-benchmark 1 +++.SH NAME +++git-annex-benchmark \- benchmark git-annex commands +++.PP +++.SH SYNOPSIS +++git annex benchmark [criterionopts] ( \-\- commmand [; command] | \-\-databases=N ) +++.PP +++.SH DESCRIPTION +++When git-annex is built with benchmarking support, this command can be used +++to benchmark any other git-annex command. For example +++"git annex benchmark \-\- get ." +++will benchmark "git annex get". +++.PP +++The command being benchmarked is run in the current git-annex repository. +++It does not run just once; the benchmarking process will run it several +++times to get a statistically meaningful result. +++.PP +++When benchmarking an action like "git annex get", the first run will +++often do much more than subseqent runs. To make the benchmark repeat an +++action like getting a file each time, additional commands can be listed, +++separated by ';'. (Note that ';' needs to be escaped from the shell.) +++The combined script will be run repeatedly by the benchmark. An example +++of using this: +++.PP +++ git annex benchmark \-\- get . ';' drop . +++.PP +++Note that git-annex benchmark does not fork new git-annex processes when +++benchmarking; it calls the command to benchmark internally, and so avoids +++git-annex's startup overhead. (So don't try to use it to optimise git-annex +++startup.) +++.PP +++.SH OPTIONS +++Before the "\-\-" any of the criterion library's command\-line options can be +++used. +++.PP +++Any options that git-annex usually accepts can be included after the +++command to benchmark. +++.PP +++The \-\-databases=N option benchmark's git-annex's use of sqlite databases, +++instead of a command. N is the number of items to benchmark. +++.PP +++.SH OUTPUT +++The output of the commands being benchmarked goes to standard output and +++standard error as usual. It's often a good idea to use \-\-quiet to avoid +++unnecessary output, unless the generation of that output is part of what +++you want to benchmark. +++.PP +++The benchmark report is output to standard output by default, although +++criterion options can be used to redirect it to a file. For example: +++.PP +++ git annex benchmark \-o bench \-\- find >/dev/null +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-calckey.1 ++@@ -0,0 +1,40 @@ +++.TH git-annex-calckey 1 +++.SH NAME +++git-annex-calckey \- calculate key for a file +++.PP +++.SH SYNOPSIS +++git annex calckey \fB[file ...]\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command calculates the key that would be used +++to refer to a file. The file is not added to the annex by this command. +++The key is output to stdout. +++.PP +++The backend used is the one from the annex.backend configuration +++setting, which can be overridden by the \-\-backend option. +++For example, to force use of the SHA1 backend: +++.PP +++ git annex calckey \-\-backend=SHA1 file +++.PP +++.SH OPTIONS +++.IP "\fB\-\-backend=name\fP" +++.IP +++Specifies which key\-value backend to use. +++.IP +++.IP "\fB\-\-batch\fP" +++Enable batch mode, in which a line containing the filename is read from +++stdin, the key is output to stdout (with a trailing newline), and repeat. +++.IP +++.IP "\fB\-z\fP" +++Makes the \fB\-\-batch\fP input be delimited by nulls instead of the usual +++newlines. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-checkpresentkey.1 ++@@ -0,0 +1,35 @@ +++.TH git-annex-checkpresentkey 1 +++.SH NAME +++git-annex-checkpresentkey \- check if key is present in remote +++.PP +++.SH SYNOPSIS +++git annex checkpresentkey \fBkey\fP \fB[remote]\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command verifies if the specified key's content +++is present in the specified remote. +++.PP +++When no remote is specified, it verifies if the key's content is present +++in any accessible remotes. +++.PP +++Exits 0 if the content is verified present in the remote, or 1 if it is +++verified to not be present in the remote. If there is a problem, +++the special exit code 100 is used, and an error message is output to stderr. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-batch\fP" +++.IP +++Enables batch mode. In this mode, the \fBkey\fP is not specified at the +++command line, but the \fBremote\fP may still be. Lines containing keys are +++read from stdin, and a line is output with "1" if the key is verified to +++be present, and "0" otherwise. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-common-options.1 ++@@ -0,0 +1,134 @@ +++.TH git-annex-common-options 1 +++.SH NAME +++git-annex\-common\-options \- options supported by many git-annex commands +++.PP +++.SH DESCRIPTION +++These common options are accepted by many git-annex commands, and +++may not be explicitly listed on their individual man pages. +++Most of these options are accepted by all git-annex commands. +++(Many commands also accept the git-annex\-matching\-options(1).) +++.PP +++.SH OPTIONS +++.IP "\fB\-\-force\fP" +++.IP +++Force unsafe actions, such as dropping a file's content when no other +++source of it can be verified to still exist, or adding ignored files. +++Use with care. +++.IP +++.IP "\fB\-\-fast\fP" +++Avoid some expensive operations normally performed by a command. +++What is avoided depends on the command, see individual command's man +++pages for details. +++.IP +++.IP "\fB\-\-quiet\fP" +++Avoid the default verbose display of what is done; only show errors. +++.IP +++.IP "\fB\-\-verbose\fP" +++Enable verbose display. On by default but can be disabled by \-\-quiet. +++.IP +++.IP "\fB\-\-explain\fP" +++Display explanations of what git-annex takes into account when deciding +++what to do. The explanations will be inside square brackets. +++For example, "[foo is not present here]" +++.IP +++This includes explanations of why preferred content expressions and +++other similar expressions like annex.largefiles match or fail to match. +++In these explanations, the expression is displayed, with each term +++followed by "[TRUE]" or "[FALSE]" to indicate the value. +++Irrelevant terms will be ommitted from the explanation, for example +++\fB"exclude=* and copies=1"\fP will be displayed as \fB"exclude=*[FALSE]"\fP +++.IP +++.IP "\fB\-\-debug\fP" +++Display debug messages to standard error. +++.IP +++.IP "\fB\-\-no\-debug\fP" +++Disable display of debug messages. +++.IP +++.IP "\fB\-\-debugfilter=name[,name..]\fP" +++When debug message display has been enabled by \fB\-\-debug\fP, this filters +++the debug messages that are displayed to ones coming from modules with +++the specified names. +++.IP +++To find the names of modules, see the full debug output, which includes +++the module name, eg "(Utility.Process)" +++.IP +++The full module name does not need to be +++specified when using this, a substring of the name will do. +++.IP +++For example, \fB\-\-debugfilter=Process,External\fP will display debugging +++output when git-annex runs processes, and when it communicates with +++external special remotes. +++.IP +++.IP "\fB\-\-numcopies=n\fP" +++Overrides the numcopies setting. +++.IP +++.IP "\fB\-\-mincopies=n\fP" +++Overrides the mincopies setting. +++.IP +++.IP "\fB\-\-time\-limit=time\fP" +++Limits how long a git-annex command runs. The time can be something +++like "5h", or "30m" or even "45s" or "10d". +++.IP +++Note that git-annex may continue running for some time past the specified +++time limit, in order to finish processing files it started before the +++time limit was reached. That and a cleaner shutdown are the differences +++between using this option and a command like \fBtimeout(1)\fP. +++.IP +++When the time limit prevents git-annex from doing all it +++was asked to, it will exit with a special code, 101. +++.IP +++.IP "\fB\-\-size\-limit=size\fP" +++Limits the total size of annexed files that a git-annex command +++can process. +++.IP +++The size can be specified with any commonly used units, for example, +++"50gb". +++.IP +++In some cases, an annexed file's size is not known. This option will +++prevent git-annex from processing such files. +++.IP +++When the size limit prevents git-annex from acting on any files, +++it will exit with a special code, 101. +++.IP +++.IP "\fB\-\-semitrust=repository\fP" +++.IP "\fB\-\-untrust=repository\fP" +++Overrides trust settings for a repository. May be specified more than once. +++.IP +++The repository should be specified using the name of a configured remote, +++or the UUID or description of a repository. +++.IP +++.IP "\fB\-\-trust=repository\fP" +++This used to override trust settings for a repository, but now will +++not do so, because trusting a repository can lead to data loss, +++and data loss is now only enabled when using the \fB\-\-force\fP option. +++.IP +++.IP "\fB\-\-trust\-glacier\fP" +++This used to override trust settings for Glacier special remotes, +++but now will not do so, because it could lead to data loss, +++and data loss is now only enabled when using the \fB\-\-force\fP option. +++.IP +++.IP "\fB\-\-user\-agent=value\fP" +++Overrides the User\-Agent to use when downloading files from the web. +++.IP +++.IP "\fB\-\-notify\-finish\fP" +++Caused a desktop notification to be displayed after each successful +++file download and upload. +++.IP +++(Only supported on some platforms, e.g. Linux with dbus. A no\-op when +++not supported.) +++.IP +++.IP "\fB\-\-notify\-start\fP" +++Caused a desktop notification to be displayed when a file upload +++or download has started, or when a file is dropped. +++.IP +++.IP "\fB\-c name=value\fP" +++Overrides git configuration settings. May be specified multiple times. +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-config.1 ++@@ -0,0 +1,218 @@ +++.TH git-annex-config 1 +++.SH NAME +++git-annex-config \- configuration stored in git-annex branch +++.PP +++.SH SYNOPSIS +++git annex config \-\-set name value +++.PP +++git annex config \-\-get name +++.PP +++git annex config \-\-unset name +++.PP +++git annex config \-\-show\-origin name +++.PP +++.SH DESCRIPTION +++Set or get configuration settings stored in the git-annex branch. +++.PP +++Unlike \fBgit config\fP settings, these settings can be seen +++in all clones of the repository, once they have gotten their +++git-annex branches in sync. +++.PP +++These settings can be overridden on a per\-repository basis using +++\fBgit config\fP. +++.PP +++git-annex does not check the git-annex branch for all the \fBgit config\fP +++settings that affect it (which are listed on the git-annex man page +++CONFIGURATION section). Only a few make sense to be able to set such +++that all clones of a repository see the setting, and so git-annex only +++looks for these. +++.PP +++.SH SUPPORTED SETTINGS +++.IP "\fBannex.numcopies\fP" +++.IP +++Tells git-annex how many copies it should preserve of files, over all +++repositories. The default is 1. +++.IP +++When git-annex is asked to drop a file, it first verifies that the +++number of copies can be satisfied among all the other +++repositories that have a copy of the file. +++.IP +++In unusual situations, involving special remotes that do not support +++locking, and concurrent drops of the same content from multiple +++repositories, git-annex may violate the numcopies setting. It still +++guarantees at least 1 copy is preserved. This can be configured by +++setting annex.mincopies. +++.IP +++This is the same setting that the git-annex\-numcopies(1) command +++configures. It can be overridden on a per\-file basis +++by the annex.numcopies setting in \fB.gitattributes\fP files. +++.IP +++.IP "\fBannex.mincopies\fP" +++Tells git-annex how many copies it is required to preserve of files, +++over all repositories. The default is 1. +++.IP +++This supplements the annex.numcopies setting. +++In unusual situations, involving special remotes that do not support +++locking, and concurrent drops of the same content from multiple +++repositories, git-annex may violate the numcopies setting. +++In these unusual situations, git-annex ensures that the number of copies +++never goes below mincopies. +++.IP +++It is a good idea to not only rely on only setting mincopies. Set +++numcopies as well, to a larger number, and keep mincopies at the +++bare minimum you're comfortable with. Setting mincopies to a large +++number, rather than setting numcopies will in some cases prevent +++droping content in entirely safe situations. +++.IP +++This is the same setting that the git-annex\-mincopies(1) command +++configures. It can be overridden on a per\-file basis +++by the annex.mincopies setting in \fB.gitattributes\fP files. +++.IP +++.IP "\fBannex.largefiles\fP" +++Used to configure which files are large enough to be added to the annex. +++It is an expression that matches the large files, eg +++"\fBinclude=*.mp3 or largerthan(500kb)\fP". +++See git-annex\-matching\-expression(1) for details on the syntax. +++.IP +++This configures the behavior of both git-annex and git when adding +++files to the repository. By default, \fBgit-annex add\fP adds all files +++to the annex (except dotfiles), and \fBgit add\fP adds files to git +++(unless they were added to the annex previously). +++When annex.largefiles is configured, both +++\fBgit annex add\fP and \fBgit add\fP will add matching large files to the +++annex, and the other files to git. +++.IP +++Other git-annex commands also honor annex.largefiles, including +++\fBgit annex import\fP, \fBgit annex addurl\fP, \fBgit annex importfeed\fP, +++\fBgit-annex assist\fP, and the \fBgit-annex assistant\fP. +++.IP +++This sets a default, which can be overridden by annex.largefiles +++attributes in \fB.gitattributes\fP files, or by \fBgit config\fP. +++.IP +++.IP "\fBannex.dotfiles\fP" +++Normally, dotfiles are assumed to be files like .gitignore, +++whose content should always be part of the git repository, so +++they will not be added to the annex. Setting annex.dotfiles to true +++makes dotfiles be added to the annex the same as any other file. +++.IP +++This sets a default, which can be overridden by annex.dotfiles +++in \fBgit config\fP. +++.IP +++.IP "\fBannex.addunlocked\fP" +++Commands like \fBgit-annex add\fP default to adding files to the repository +++in locked form. This can make them add the files in unlocked form, +++the same as if git-annex\-unlock(1) were run on the files. +++.IP +++This can be set to "true" to add everything unlocked, or it can be a more +++complicated expression that matches files by name, size, or content. See +++git-annex\-matching\-expression(1) for details. +++.IP +++This sets a default, which can be overridden by annex.addunlocked +++in \fBgit config\fP. +++.IP +++.IP "\fBannex.autocommit\fP" +++Set to false to prevent the \fBgit-annex assistant\fP, \fBgit-annex assist\fP +++and \fBgit-annex sync\fP from automatically committing changes to files +++in the repository. +++.IP +++This sets a default, which can be overridden by annex.autocommit +++in \fBgit config\fP. +++.IP +++.IP "\fBannex.resolvemerge\fP" +++Set to false to prevent merge conflicts in the checked out branch +++being automatically resolved by the \fBgit-annex assitant\fP, +++\fBgit-annex sync\fP, \fBgit-annex pull\fP, \fB\fPgit-annex merge, +++and the \fBgit-annex post\-receive\fP hook. +++.IP +++This sets a default, which can be overridden by annex.resolvemerge +++in \fBgit config\fP. +++.IP +++.IP "\fBannex.synccontent\fP" +++Set to true to make \fBgit-annex sync\fP default to transferring +++annexed content. +++.IP +++Set to false to prevent \fBgit-annex pull\fP and \fBgit-annex\fP push from +++transferring annexed content. +++.IP +++This sets a default, which can be overridden by annex.synccontent +++in \fBgit config\fP. +++.IP +++.IP "\fBannex.synconlyannex\fP" +++Set to true to make \fBgit-annex sync\fP, \fBgit-annex pull\fP and git-annex +++push default to only operate on the git-annex branch and annexed content. +++.IP +++This sets a default, which can be overridden by annex.synconlyannex +++in \fBgit config\fP. +++.IP +++.IP "\fBannex.securehashesonly\fP" +++Set to true to indicate that the repository should only use +++cryptographically secure hashes (SHA2, SHA3) and not insecure +++hashes (MD5, SHA1) for content. +++.IP +++When this is set, the contents of files using cryptographically +++insecure hashes will not be allowed to be added to the repository. +++.IP +++Also, \fBgit-annex fsck\fP will complain about any files present in +++the repository that use insecure hashes. +++.IP +++Note that this is only read from the git-annex branch by +++\fBgit annex init\fP, and is copied to the corresponding git config setting. +++So, changes to the value in the git-annex branch won't affect a +++repository once it has been initialized. +++.IP +++.SH OPTIONS +++.IP "\fB\-\-set name value\fP" +++.IP +++Set a value. +++.IP +++.IP "\fB\-\-get name\fP" +++Get a value. +++.IP +++.IP "\fB\-\-unset\fP" +++Unset a value. +++.IP +++.IP "\fB\-\-show\-origin name\fP" +++Explain where the value is configured, whether in the git-annex branch, +++or in a \fBgit config\fP file, or \fB.gitattributes\fP file. When a value is +++configured in multiple places, displays the place and the value that +++will be used. +++.IP +++Note that the parameter can be the name of one of the settings listed +++above, but also any other configuration setting supported by git-annex. +++For example, "annex.backend" cannot be set in the git-annex branch, but +++it can be set in \fB.gitattributes\fP or \fBgit config\fP and this option can +++explain which setting will be used for it. +++.IP +++.IP "\fB\-\-for\-file file\fP" +++Can be used in combination with \fB\-\-show\-origin\fP to specify what +++filename to check for in \fB.gitattributes\fP. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH EXAMPLE +++Suppose you want to prevent git annex sync from committing changes +++to files, so a manual git commit workflow is used in all clones of the +++repository. Then run: +++.PP +++ git annex config \-\-set annex.autocommit false +++.PP +++If you want to override that in a partiticular clone, just use git config +++in the clone: +++.PP +++ git config annex.autocommit true +++.PP +++And to get back to the default behavior: +++.PP +++ git annex config \-\-unset annex.autocommit +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git\-config(1) +++.PP +++git-annex\-vicfg(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-configremote.1 ++@@ -0,0 +1,37 @@ +++.TH git-annex-configremote 1 +++.SH NAME +++git-annex-configremote \- changes special remote configuration +++.PP +++.SH SYNOPSIS +++git annex configemote \fBname|uuid|desc [param=value ...]\fP +++.PP +++.SH DESCRIPTION +++Changes the configuration of a special remote that was set up earlier +++by \fBgit-annex initremote\fP. The special remote does not need to be enabled +++for use in the current repository, and this command will not enable it. +++.PP +++This command can currently only be used to change the value of the +++\fBautoenable\fP parameter, eg "autoenable=false". +++.PP +++To change other parameters, use \fBgit-annex enableremote\fP +++.PP +++.SH OPTIONS +++Most options are not prefixed by a dash, and set parameters of the remote, +++as shown above. +++.PP +++Also, the git-annex\-common\-options(1) can be used. +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-initremote(1) +++.PP +++git-annex\-configremote(1) +++.PP +++git-annex\-renameremote(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-contentlocation.1 ++@@ -0,0 +1,31 @@ +++.TH git-annex-contentlocation 1 +++.SH NAME +++git-annex-contentlocation \- looks up content for a key +++.PP +++.SH SYNOPSIS +++git annex contentlocation \fB[key ...]\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command looks up filename used to store the content +++of a key. The filename is output to stdout. If the key's content is not +++present in the local repository, nothing is output, and it exits nonzero. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-batch\fP" +++.IP +++Enable batch mode, in which a line containing the key is read from +++stdin, the filename to its content is output to stdout (with a trailing +++newline), and repeat. +++.IP +++Note that if a key's content is not present, an empty line is output to +++stdout instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-copy.1 ++@@ -0,0 +1,127 @@ +++.TH git-annex-copy 1 +++.SH NAME +++git-annex-copy \- copy content of files to/from another repository +++.PP +++.SH SYNOPSIS +++git annex copy \fB[path ...] [\-\-from=remote|\-\-to=remote]\fP +++.PP +++.SH DESCRIPTION +++Copies the content of files from or to another remote. +++.PP +++With no parameters, operates on all annexed files in the current directory. +++Paths of files or directories to operate on can be specified. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-from=remote\fP" +++.IP +++Copy the content of files from the specified +++remote to the local repository. +++.IP +++Any files that are not available on the remote will be silently skipped. +++.IP +++.IP "\fB\-\-to=remote\fP" +++Copy the content of files from the local repository +++to the specified remote. +++.IP +++.IP "\fB\-\-to=here\fP" +++Copy the content of files from all reachable remotes to the local +++repository. +++.IP +++.IP "\fB\-\-from=remote1 \-\-to=remote2\fP" +++Copy the content of files that are in remote1 to remote2. +++.IP +++This is implemented by first downloading the content from remote1 to the +++local repository (if not already present), then sending it to remote2, and +++then deleting the content from the local repository (if it was not present +++to start with). +++.IP +++.IP "\fB\-\-from\-anywhere \-\-to=remote\fP" +++Copy to the remote files from the local repository as well as from any reachable +++remotes. +++.IP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++Enables parallel transfers with up to the specified number of jobs +++running at once. For example: \fB\-J10\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++Note that when using \-\-from with \-\-to, twice this many jobs will +++run at once, evenly split between the two remotes. +++.IP +++.IP "\fB\-\-auto\fP" +++Rather than copying all specified files, only copy those that don't yet have +++the desired number of copies, or that are preferred content of the +++destination repository. See git-annex\-preferred\-content(1) +++.IP +++.IP "\fB\-\-fast\fP" +++When copying content to a remote, avoid a round trip to check if the remote +++already has content. This can be faster, but might skip copying content +++to the remote in some cases. +++.IP +++.IP "\fB\-\-all\fP \fB\-A\fP" +++Rather than specifying a filename or path to copy, this option can be +++used to copy all available versions of all files. +++.IP +++This is the default behavior when running git-annex in a bare repository. +++.IP +++.IP "\fB\-\-branch=ref\fP" +++Operate on files in the specified branch or treeish. +++.IP +++.IP "\fB\-\-unused\fP" +++Operate on files found by last run of git-annex unused. +++.IP +++.IP "\fB\-\-failed\fP" +++Operate on files that have recently failed to be transferred. +++.IP +++.IP "\fB\-\-key=keyname\fP" +++Use this option to copy a specified key. +++.IP +++.IP "matching options" +++The git-annex\-matching\-options(1) +++can be used to specify what to copy. +++.IP +++.IP "\fB\-\-batch\fP" +++Enables batch mode, in which lines containing names of files to copy +++are read from stdin. +++.IP +++As each specified file is processed, the usual progress output is +++displayed. If a file's content does not need to be copied, or it does not +++match specified matching options, or it is not an annexed file, +++a blank line is output in response instead. +++.IP +++Since the usual output while copying a file is verbose and not +++machine\-parseable, you may want to use \-\-json in combination with +++\-\-batch. +++.IP +++.IP "\fB\-\-batch\-keys\fP" +++This is like \fB\-\-batch\fP but the lines read from stdin are parsed as keys. +++.IP +++.IP "\fB\-z\fP" +++Makes batch input be delimited by nulls instead of the usual newlines. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-progress\fP" +++Include progress objects in JSON output. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-get(1) +++.PP +++git-annex\-move(1) +++.PP +++git-annex\-drop(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-dead.1 ++@@ -0,0 +1,58 @@ +++.TH git-annex-dead 1 +++.SH NAME +++git-annex-dead \- hide a lost repository or key +++.PP +++.SH SYNOPSIS +++git annex dead \fB[repository ...] [\-\-key somekey ...]\fP +++.PP +++.SH DESCRIPTION +++This command exists to deal with situations where data has been lost, +++and you know it has, and you want to stop being reminded of that fact. +++.PP +++When a repository is specified, indicates that the repository has +++been irretrievably lost, so it will not be listed in eg, \fBgit annex whereis\fP. +++Repositories can be specified using their remote name, their +++description, or their UUID. (To undo, use \fBgit-annex semitrust\fP.) +++.PP +++When a key is specified, indicates that the content of that key has been +++irretrievably lost. This makes the key be skipped when operating +++on all keys with eg \fB\-\-all\fP. +++(To undo, add the key's content back to the repository, +++by using eg, \fBgit-annex reinject\fP.) +++.PP +++.SH OPTIONS +++.IP "\fB\-\-key=somekey\fP" +++.IP +++Use to specify a key that is dead. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-trust(1) +++.PP +++git-annex\-semitrust(1) +++.PP +++git-annex\-untrust(1) +++.PP +++git-annex\-renameremote(1) +++.PP +++git-annex\-expire(1) +++.PP +++git-annex\-fsck(1) +++.PP +++git-annex\-reinject(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-describe.1 ++@@ -0,0 +1,39 @@ +++.TH git-annex-describe 1 +++.SH NAME +++git-annex-describe \- change description of a repository +++.PP +++.SH SYNOPSIS +++git annex describe repository description +++.PP +++.SH DESCRIPTION +++Changes the description of a repository. +++.PP +++The repository to describe can be specified by git remote name or +++by uuid. To change the description of the current repository, use +++"here". +++.PP +++Repository descriptions are displayed by git-annex in various places. +++They are most useful when git-annex knows about a repository, but there is +++no git remote corresponding to it. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-json\fP" +++.IP +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-init(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-diffdriver.1 ++@@ -0,0 +1,60 @@ +++.TH git-annex-diffdriver 1 +++.SH NAME +++git-annex-diffdriver \- git diff driver +++.PP +++.SH SYNOPSIS +++\fBgit annex diffdriver [\-\-get,\-\-text] [\-\- \-\-diffopts \-\-]\fP +++.PP +++\fBgit annex diffdriver \-\- cmd \-\-cmdopts \-\-\fP +++.PP +++.SH DESCRIPTION +++Normally, \fBgit diff\fP when run on annexed files displays the changes that +++are staged in git, eg annex symlinks and pointers. This command allows +++\fBgit diff\fP to diff the content of annexed files instead. +++.PP +++This command can be used either as a simple text differ, +++or as a shim that runs an external git diff driver. +++.PP +++If some of your annexed files are textual in form, and can be usefully +++diffed with diff(1), you can configure git to use this command to diff +++them, by configuring \fB.gitattributes\fP to contain eg \fB*.txt diff=annextextdiff\fP +++and setting \fBgit config diff.annextextdiff.command "git annex diffdriver \-\-text"\fP. +++.PP +++If your annexed files are not textual in form, you will need an external +++diff driver program that is able to diff the file format(s) you use. +++See git's documentation of \fBGIT_EXTERNAL_DIFF\fP and +++gitattributes(5)'s documentation of external diff drivers. +++.PP +++Normally, when using \fBgit diff\fP with an external diff driver, it will not +++see the contents of annexed files, since git passes to it the git-annex +++symlinks or pointer files. This command works around the problem, by +++running the real external diff driver, and passing it the paths to the +++annexed content. Configure git to use "git-annex diffdriver \-\- cmd params \-\-" +++as the external diff driver, where cmd is the external diff +++driver you want it to run, and params are any extra parameters to pass +++to it. Note the trailing "\-\-", which is required. +++.PP +++For example, to use the j\-c\-diff program as the external diff driver, +++set \fBGIT_EXTERNAL_DIFF="git-annex diffdriver \-\- j\-c\-diff \-\-"\fP +++.PP +++.SH OPTIONS +++To get the contents of annexed files from remotes when they are not already +++present, use the \fB\-\-get\fP option. The file contents will remain in the +++repository for later use until dropped in the usual ways. +++.PP +++To diff text files with diff(1), use the \fB\-\-text\fP option. +++To pass additional options to diff(1), use eg "\-\-text \-\- \-\-color \-\-" +++.PP +++To use an external diff driver command, the options must start with +++"\-\-" followed by the diff driver command, its options, and another "\-\-" +++.PP +++Also the git-annex\-common\-options(1) can be used. +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-direct.1 ++@@ -0,0 +1,24 @@ +++.TH git-annex-direct 1 +++.SH NAME +++git-annex-direct \- switch repository to direct mode (deprecated) +++.PP +++.SH SYNOPSIS +++git annex direct +++.PP +++.SH DESCRIPTION +++This used to switch a repository to use direct mode. +++But direct mode is no longer used; git-annex automatically converts +++direct mode repositories to v7 adjusted unlocked branches. +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-indirect(1) +++.PP +++git-annex\-adjust(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-drop.1 ++@@ -0,0 +1,133 @@ +++.TH git-annex-drop 1 +++.SH NAME +++git-annex-drop \- remove content of files from repository +++.PP +++.SH SYNOPSIS +++git annex drop \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++Drops the content of annexed files from this repository, when +++possible. +++.PP +++git-annex will refuse to drop content if it cannot verify it is +++safe to do so. Usually this involves verifying that the content is stored +++in some other repository. +++.PP +++Content that is required to be stored in the repository will not be dropped +++even if enough copies exist elsewhere. See git-annex\-required(1). +++.PP +++With no parameters, tries to drop all annexed files in the current directory. +++Paths of files or directories to drop can be specified. +++.PP +++.SH EXAMPLES +++ # git annex drop *.jpeg +++ drop photo1.jpg (checking origin...) ok +++ drop photo2.jpg (unsafe) +++ Could only verify the existence of 0 out of 1 necessary copies +++.PP +++ Rather than dropping this file, try using: git annex move +++.PP +++ (Use \-\-force to override this check, or adjust numcopies.) +++ failed +++ drop photo3.jpg (checking origin...) ok +++.PP +++.SH OPTIONS +++.IP "\fB\-\-from=remote\fP" +++.IP +++Rather than dropping the content of files in the local repository, +++this option can specify a remote from which the files' +++contents should be removed. +++.IP +++.IP "\fB\-\-auto\fP" +++Rather than trying to drop all specified files, drop only those that +++are not preferred content of the repository, and avoid trying to drop +++files when there are not enough other copies for the drop to be possible. +++See git-annex\-preferred\-content(1) +++.IP +++.IP "\fB\-\-force\fP" +++Use this option with care! It bypasses safety checks, and forces +++git-annex to delete the content of the specified files, even from +++the last repository that is storing their content. Data loss can +++result from using this option. +++.IP +++.IP "\fB\-\-all\fP \fB\-A\fP" +++Rather than specifying a filename or path to drop, this option can be +++used to drop all available versions of all files. +++.IP +++This is the default behavior when running git-annex drop in a bare +++repository. +++.IP +++Note that this bypasses checking the .gitattributes annex.numcopies +++setting and required content settings. +++.IP +++.IP "\fB\-\-branch=ref\fP" +++Drop files in the specified branch or treeish. +++.IP +++Note that this bypasses checking the .gitattributes annex.numcopies +++setting and required content settings. +++.IP +++.IP "\fB\-\-unused\fP" +++Drop files found by last run of git-annex unused. +++.IP +++Note that this bypasses checking the .gitattributes annex.numcopies +++setting and required content settings. +++.IP +++.IP "\fB\-\-key=keyname\fP" +++Use this option to drop a specified key. +++.IP +++Note that this bypasses checking the .gitattributes annex.numcopies +++setting and required content settings. +++.IP +++.IP "matching options" +++The git-annex\-matching\-options(1) +++can be used to specify what to drop. +++.IP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++Runs multiple drop jobs in parallel. This is particularly useful +++when git-annex has to contact remotes to check if it can drop files. +++For example: \fB\-J4\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++.IP "\fB\-\-batch\fP" +++Enables batch mode, in which lines containing names of files to drop +++are read from stdin. +++.IP +++As each specified file is processed, the usual output is +++displayed. If a file's content is not present, or it does not +++match specified matching options, or it is not an annexed file, +++a blank line is output in response instead. +++.IP +++.IP "\fB\-\-batch\-keys\fP" +++This is like \fB\-\-batch\fP but the lines read from stdin are parsed as keys. +++.IP +++Note that this bypasses checking the .gitattributes annex.numcopies +++setting and required content settings. +++.IP +++.IP "\fB\-z\fP" +++Makes the batch input be delimited by nulls +++instead of the usual newlines. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-get(1) +++.PP +++git-annex\-move(1) +++.PP +++git-annex\-copy(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-dropkey.1 ++@@ -0,0 +1,42 @@ +++.TH git-annex-dropkey 1 +++.SH NAME +++git-annex-dropkey \- drops annexed content for specified keys +++.PP +++.SH SYNOPSIS +++git annex dropkey \fB[key ...]\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command drops the annexed data for the specified +++keys from this repository. +++.PP +++This can be used to drop content for arbitrary keys, which do not need +++to have a file in the git repository pointing at them. +++.PP +++Warning: This command does not check that enough other copies of the content +++exist; using it can easily result in data loss. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-batch\fP" +++.IP +++Enables batch mode, in which lines containing keys to drop are read from +++stdin. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-setkey(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-dropunused.1 ++@@ -0,0 +1,56 @@ +++.TH git-annex-dropunused 1 +++.SH NAME +++git-annex-dropunused \- drop unused file content +++.PP +++.SH SYNOPSIS +++git annex dropunused \fB[number|range ...]\fP +++.PP +++.SH DESCRIPTION +++Drops the data corresponding to the numbers, as listed by the last +++\fBgit annex unused\fP +++.PP +++You can also specify ranges of numbers, such as "1\-1000". +++Or, specify "all" to drop all unused data. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-from=remote\fP" +++.IP +++Rather than dropping the unused files from the local repository, +++drop them from the remote repository. +++.IP +++.IP "\fB\-\-force\fP" +++Use this option with care! It bypasses safety checks, and forces +++git-annex to delete the content of the specified files, even from +++the last repository that is storing their content. Data loss can +++result from using this option. +++.IP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++Runs multiple drop jobs in parallel. This is particularly useful +++when git-annex has to contact remotes to check if it can drop content. +++For example: \fB\-J4\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-unused(1) +++.PP +++git-annex\-drop(1) +++.PP +++git-annex\-copy(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-edit.1 ++@@ -0,0 +1,16 @@ +++.TH git-annex-edit 1 +++.SH NAME +++git-annex-unlock \- unlock files for modification +++.PP +++.SH SYNOPSIS +++git annex edit \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++This is an alias for the \fBunlock\fP command; see git-annex\-unlock(1) +++for details. +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-enable-tor.1 ++@@ -0,0 +1,36 @@ +++.TH git-annex-enable-tor 1 +++.SH NAME +++git-annex-enable\-tor \- enable tor hidden service +++.PP +++.SH SYNOPSIS +++git annex enable\-tor +++.PP +++sudo git annex enable\-tor $(id \-u) +++.PP +++.SH DESCRIPTION +++This command enables a tor hidden service for git-annex. +++.PP +++It modifies \fB/etc/tor/torrc\fP to register the hidden service. If run as a +++normal user, it will try to use sudo/su/etc to get root access to modify +++that file. If you run it as root, pass it your non\-root user id number, +++as output by \fBid \-u\fP +++.PP +++After this command is run, \fBgit annex remotedaemon\fP can be run to serve the +++tor hidden service, and then \fBgit-annex p2p \-\-gen\-addresses\fP can be run to +++give other users access to your repository via the tor hidden service. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-p2p\-auth(1) +++.PP +++git-annex\-remotedaemon(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-enableremote.1 ++@@ -0,0 +1,82 @@ +++.TH git-annex-enableremote 1 +++.SH NAME +++git-annex-enableremote \- enables git-annex to use a remote +++.PP +++.SH SYNOPSIS +++git annex enableremote \fBname|uuid|desc [param=value ...]\fP +++.PP +++.SH DESCRIPTION +++Enables use of an existing remote in the current repository, +++that was set up earlier by \fBgit annex initremote\fP run in +++another clone of the repository. +++.PP +++When enabling a remote, specify the same name used when originally +++setting up that remote with \fBgit annex initremote\fP. Run +++\fBgit annex enableremote\fP without any name to get a list of +++remote names. Or you can specify the uuid or description of the +++remote. +++.PP +++Some types of special remotes need parameters to be specified every time +++they are enabled. For example, the directory special remote requires a +++directory= parameter every time. The command will prompt for any required +++parameters you leave out. +++.PP +++This command can also be used to modify the configuration of an existing +++special remote, by specifying new values for parameters that are +++usually set when using initremote. (However, some settings such as +++the as the encryption scheme cannot be changed once a special remote +++has been created.) +++.PP +++The GPG keys that an encrypted special remote is encrypted with can be +++changed using the keyid+= and keyid\-= parameters. These respectively +++add and remove keys from the list. However, note that removing a key +++does NOT necessarily prevent the key's owner from accessing data +++in the encrypted special remote +++(which is by design impossible, short of deleting the remote). +++.PP +++One use\-case of keyid\-= is to replace a revoked key with +++a new key: +++.PP +++ git annex enableremote mys3 keyid\-=revokedkey keyid+=newkey +++.PP +++Also, note that for encrypted special remotes using plain public\-key +++encryption (encryption=pubkey), adding or removing a key has NO effect +++on files that have already been copied to the remote. Hence using +++keyid+= and keyid\-= with such remotes should be used with care, and +++make little sense except in cases like the revoked key example above. +++.PP +++If you get tired of manually enabling a special remote in each new clone, +++you can pass "autoenable=true". Then when git-annex\-init(1) is run in +++a new clone, it will will attempt to enable the special remote. Of course, +++this works best when the special remote does not need anything special +++to be done to get it enabled. +++.PP +++(This command also can be used to enable a git remote that git-annex +++has found didn't work before and gave up on using, setting +++\fBremote..annex\-ignore\fP.) +++.PP +++.SH OPTIONS +++.IP "\fB\-\-json\fP" +++.IP +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also, the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-initremote(1) +++.PP +++git-annex\-configremote(1) +++.PP +++git-annex\-renameremote(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-examinekey.1 ++@@ -0,0 +1,81 @@ +++.TH git-annex-examinekey 1 +++.SH NAME +++git-annex-examinekey \- prints information from a key +++.PP +++.SH SYNOPSIS +++git annex examinekey \fB[key ...]\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command is given a key, and prints information +++that can be determined purely by looking at the key. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-format=value\fP" +++.IP +++Use custom output formatting. +++.IP +++The value is a format string, in which '${var}' is expanded to the +++value of a variable. To right\-justify a variable with whitespace, +++use '${var;width}' ; to left\-justify a variable, use '${var;\-width}'; +++to escape unusual characters (including control characters) +++in a variable, use '${escaped_var}' +++.IP +++To generate a path from the top of the repository to the git-annex +++object for a key, use ${objectpath}. To generate the value of a +++git-annex pointer file for a key, use ${objectpointer}. +++.IP +++These variables are also available for use in formats: ${key}, ${backend}, +++${bytesize}, ${humansize}, ${keyname}, ${hashdirlower}, ${hashdirmixed}, +++${mtime} (for the mtime field of a WORM key), ${file} (when a filename is +++provided to examinekey). +++.IP +++Also, '\\n' is a newline, '\\000' is a NULL, etc. +++.IP +++The default output format is the same as \fB\-\-format='${escapedkey}\\n'\fP +++except when outputting to a terminal, control characters will be escaped. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "\fB\-\-migrate\-to\-backend=backend\fP" +++Attempt to migrate the input key to the new backend specified. If +++successful, outputs information about the migrated key. Otherwise, +++outputs information about the input key. +++.IP +++This only does fast migrations; it will not re\-hash the content of a key +++or similar expensive operation. +++.IP +++One way to use it is to add an extension to a key. +++.IP +++ git-annex examinekey SHA256\-\-xxx \-\-migrate\-to\-backend=SHA256E \-\-filename=foo.tar.gz +++.IP +++Or to remove the extension from a key: +++.IP +++ git-annex examinekey SHA256E\-\-xxx.tar.gz \-\-migrate\-to\-backend=SHA256 +++.IP +++.IP "\fB\-\-filename=name\fP" +++The name of a file associated with the key, eg a work tree file. +++It does not need to exist. This is needed when using \fB\-\-migrate\-to\-backend\fP +++to add an extension to the key. +++.IP +++.IP "\fB\-\-batch\fP" +++Enable batch mode, in which a line containing a key is read from stdin, +++the information about it is output to stdout, and repeat. +++.IP +++In order to also provide the name of a file associated with the key, the +++line can be in the format "$key $file" +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-expire.1 ++@@ -0,0 +1,71 @@ +++.TH git-annex-expire 1 +++.SH NAME +++git-annex-expire \- expire inactive repositories +++.PP +++.SH SYNOPSIS +++git annex expire \fB[repository:]time ...\fP +++.PP +++.SH DESCRIPTION +++This command expires repositories that have not performed some activity +++within a specified time period. A repository is expired by marking it as +++dead. De\-expiration is also done; if a dead repository performed some +++activity recently, it is marked as semitrusted again. +++.PP +++This can be useful when it's not possible to keep track of the state +++of repositories manually. For example, a distributed network of +++repositories where nobody can directly access all the repositories to +++check their status. +++.PP +++The repository can be specified using the name of a remote, +++or the description or uuid of the repository. +++.PP +++The time is in the form "60d" or "1y". A time of "never" will disable +++expiration. +++.PP +++If a time is specified without a repository, it is used as the default +++value for all repositories. Note that the current repository is never +++expired. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-no\-act\fP" +++.IP +++Print out what would be done, but not not actually expire or unexpire +++any repositories. +++.IP +++.IP "\fB\-\-activity=Name\fP" +++Specify the activity that a repository must have performed to avoid being +++expired. The default is any activity. +++.IP +++Currently, the only activity that can be performed to avoid expiration +++is \-\-activity=Fsck which corresponds to \fBgit annex fsck\fP. +++Note that fscking a remote updates the expiration of the remote +++repository, not the local repository. +++.IP +++The first version of git-annex that recorded fsck activity was +++5.20150405. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-fsck(1) +++.PP +++git-annex\-schedule(1) +++.PP +++git-annex\-dead(1) +++.PP +++git-annex\-semitrust(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-export.1 ++@@ -0,0 +1,161 @@ +++.TH git-annex-export 1 +++.SH NAME +++git-annex-export \- export a tree of files to a special remote +++.PP +++.SH SYNOPSIS +++git annex export \fBtreeish \-\-to remote\fP +++.PP +++.SH DESCRIPTION +++Use this command to export a tree of files from a git-annex repository. +++.PP +++Normally files are stored on a git-annex special remote named by their +++keys. That is great for reliable data storage, but your filenames are +++obscured. Exporting replicates the tree to the special remote as\-is. +++.PP +++Mixing key/value storage and exports in the same remote would be a mess and +++so is not allowed. You have to configure a special remote with +++\fBexporttree=yes\fP when initially setting it up with +++git-annex\-initremote(1). +++.PP +++The treeish to export can be the name of a git branch, or a tag, or any +++other treeish accepted by git, including eg master:subdir to only export a +++subdirectory from a branch. +++.PP +++When the remote has a preferred content expression set by +++git-annex\-wanted(1), the treeish is +++filtered through it, excluding annexed files it does not want from +++being exported to it. (Note that things in the expression like +++"include=" match relative to the top of the treeish being exported.) +++.PP +++Any files in the treeish that are stored on git will also be exported to +++the special remote. +++.PP +++Repeated exports are done efficiently, by diffing the old and new tree, +++and transferring only the changed files, and renaming files as necessary. +++.PP +++Exports can be interrupted and resumed. However, partially uploaded files +++will be re\-started from the beginning in most cases. +++.PP +++Once content has been exported to a remote, commands like \fBgit annex get\fP +++can download content from there the same as from other remotes. However, +++since an export is not a key/value store, git-annex has to do more +++verification of content downloaded from an export. Some types of keys, +++that are not based on checksums, cannot be downloaded from an export. +++And, git-annex will never trust an export to retain the content of a key. +++.PP +++However, some special remotes, notably S3, support keeping track of old +++versions of files stored in them. If a special remote is set up to do +++that, it can be used as a key/value store and the limitations in the above +++paragraph do not apply. Note that dropping content from such a remote is +++not supported. See individual special remotes' documentation for +++details of how to enable such versioning. +++.PP +++Commands like \fBgit-annex push\fP can also be used to export a branch to a +++special remote, updating the special remote whenever the branch is changed. +++To do this, you need to configure "remote..annex\-tracking\-branch" to +++tell it what branch to track. For example: +++.PP +++ git config remote.myremote.annex\-tracking\-branch master +++ git annex push myremote +++.PP +++You can combine using \fBgit annex export\fP to send changes to a special +++remote with \fBgit annex import\fP to fetch changes from a special remote. +++When a file on a special remote has been modified by software other than +++git-annex, exporting to it will not overwrite the modified file, and the +++export will not succeed. You can resolve this conflict by using +++\fBgit annex import\fP. +++.PP +++(Some types of special remotes such as S3 with versioning may instead +++let an export overwrite the modified file; then \fBgit annex import\fP +++will create a sequence of commits that includes the modified file, +++so the overwritten modification is not lost.) +++.PP +++.SH OPTIONS +++.IP "\fB\-\-to=remote\fP" +++.IP +++Specify the special remote to export to. +++.IP +++.IP "\fB\-\-tracking\fP" +++This is a deprecated way to set "remote..annex\-tracking\-branch". +++Instead of using this option, you should just set the git configuration +++yourself. +++.IP +++.IP "\fB\-\-fast\fP" +++This sets up an export of a tree, but avoids any expensive file uploads to +++the remote. You can later run \fBgit annex push\fP to upload +++the files to the export. +++.IP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++Exports multiple files in parallel. This may be faster. +++For example: \fB\-J4\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-progress\fP" +++Include progress objects in JSON output. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH EXAMPLE +++ git annex initremote myremote type=directory directory=/mnt/myremote \\ +++ exporttree=yes encryption=none +++ git annex export master \-\-to myremote +++.PP +++After that, /mnt/myremote will contain the same tree of files as the master +++branch does. +++.PP +++ git mv myfile subdir/myfile +++ git commit \-m renamed +++ git annex export master \-\-to myremote +++.PP +++That updates /mnt/myremote to reflect the renamed file. +++.PP +++ git annex export master:subdir \-\-to myremote +++.PP +++That updates /mnt/myremote, to contain only the files in the "subdir" +++directory of the master branch. +++.PP +++.SH EXPORT CONFLICTS +++If two different git-annex repositories are both exporting different trees +++to the same special remote, it's possible for an export conflict to occur. +++This leaves the special remote with some files from one tree, and some +++files from the other. Files in the special remote may have entirely the +++wrong content as well. +++.PP +++It's not possible for git-annex to detect when making an export will result +++in an export conflict. The best way to avoid export conflicts is to either +++only ever export to a special remote from a single repository, or to have a +++rule about the tree that you export to the special remote. For example, if +++you always export origin/master after pushing to origin, then an export +++conflict can't happen. +++.PP +++An export conflict can only be detected after the two git repositories +++that produced it get back in sync. Then the next time you run git annex +++export, it will detect the export conflict, and resolve it. +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-initremote(1) +++.PP +++git-annex\-import(1) +++.PP +++git-annex\-push(1) +++.PP +++git-annex\-preferred\-content(1) +++.PP +++.SH HISTORY +++The \fBexport\fP command was introduced in git-annex version 6.20170925. +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-filter-branch.1 ++@@ -0,0 +1,135 @@ +++.TH git-annex-filter-branch 1 +++.SH NAME +++git-annex-filter\-branch \- filter information from the git-annex branch +++.PP +++.SH SYNOPSIS +++git annex filter\-branch [...] +++.PP +++.SH DESCRIPTION +++This copies selected information from the git-annex branch into a git +++commit object, and outputs its hash. The git commit can be transported +++to another git repository, and given a branch name such as "foo/git-annex", +++and git-annex there will automatically merge that into its git-annex +++branch. This allows publishing some information from your git-annex branch, +++without publishing the whole thing. +++.PP +++Other ways to avoid publishing information from a git-annex branch, +++or remove information from it include git-annex\-forget(1), the +++\fBannex.private\fP git config, and the \fB\-\-private\fP option to +++git-annex\-initremote(1). Those are much easier to use, but this +++provides full control for those who need it. +++.PP +++With no options, no information at all will be included from the git-annex +++branch. Use options to specify what to include. All options can be specified +++multiple times. +++.PP +++When the repository contains information about a private +++repository (due to \fBannex.private\fP being set, or git-annex initremote +++\-\-private being used), that private information will be included when +++allowed by the options, even though it is not recorded on the git-annex +++branch. +++.PP +++When a repository was created with \fBgit annex initremote \-\-sameas=foo\fP, +++its information will be included when the information for foo is, +++and excluded when foo is excluded. +++.PP +++When a special remote is configured with importtree=yes or exporttree=yes, +++normally the git tree corresponding to the repository is included in +++the git-annex branch, to make sure it does not get garbage collected +++by \fBgit gc\fP. Those trees are *not* included when filtering the git-annex +++branch. Usually this will not cause any problems, but if such a tree does +++get garbage collected, it will prevent accessing files on the special +++remote, until the next time a tree is imported or exported to it. +++.PP +++.SH OPTIONS +++.IP "\fBpath\fP" +++.IP +++Include information about all keys of annexed files in the path. +++.IP +++.IP "file matching options" +++The git-annex\-matching\-options(1) +++can be used to specify which files in a path to include. +++.IP +++.IP "\fB\-\-branch=ref\fP" +++Include information about keys referred of annexed files in the branch +++or treeish. +++.IP +++.IP "\fB\-\-key=key\fP" +++Include information about a specific key. +++.IP +++.IP "\fB\-\-all\fP" +++Include information about all keys. +++.IP +++.IP "\fB\-\-include\-key\-information\-for=repo\fP" +++When including information about a key, include information specific to +++this repository. The repository can be specified with a uuid or the name +++of a remote. This option can be used repeatedly to include several +++repositories. +++.IP +++.IP "\fB\-\-include\-all\-key\-information\fP" +++Include key information for all repositories, except any excluded with +++the \fB\-\-exclude\-key\-information\-for\fP option. +++.IP +++.IP "\fB\-\-exclude\-key\-information\-for=repo\fP" +++When including information about a key, exclude information specific to +++this repository. The repository can be specified with a uuid or the name +++of a remote. This option can be used repeatedly to exclude +++several repositories. +++.IP +++.IP "\fB\-\-include\-repo\-config\-for=repo\fP" +++Include configuration specific to this repository. +++The repository can be specified with a uuid or the name of a remote. +++.IP +++This includes the configuration of special remotes, which may include +++embedded credentials, or encryption parameters. It also includes trust +++settings, preferred content, etc. It does not include information +++about any git-annex keys. This option can be used repeatedly to include +++several repositories. +++.IP +++.IP "\fB\-\-include\-all\-repo\-config\fP" +++Include the configuration of all repositories, except for any excluded +++with the \fB\-\-exclude\-repo\-config\-for\fP option. +++.IP +++.IP "\fB\-\-exclude\-repo\-config\-for=repo\fP" +++Exclude configuration specific to this repository. +++The repository can be specified with a uuid or the name of a remote. +++This option can be used repeatedly to exclude several repositories. +++.IP +++.IP "\fB\-\-include\-global\-config\fP" +++Include global configuration, that is not specific to any repository. +++.IP +++This includes configs stored by git-annex\-numcopies(1), +++git-annex\-config(1), etc. +++.IP +++.SH EXAMPLES +++You have a big git-annex repository and are splitting the directory "foo" +++out, to make a smaller repository. You want the smaller repo's git-annex +++branch to contain all the information about remotes and other configuration, +++but only information about keys in that directory. +++.PP +++ git-annex filter\-branch foo \-\-include\-all\-key\-information \\ +++ \-\-include\-all\-repo\-config \-\-include\-global\-config +++.PP +++That only includes information about the keys that are currently +++in the directory "foo", not keys used by old versions of files. +++To also include information about the version of the subdir in +++tag "1.0", add the option \fB\-\-branch=1.0:foo\fP +++.PP +++Your repository has a special remote "bar", and you want to share information +++about which annexed files are stored in it, but without sharing anything +++about the configuration of the remote. +++.PP +++ git-annex filter\-branch \-\-all \-\-include\-all\-key\-information \\ +++ \-\-include\-all\-repo\-config \-\-exclude\-repo\-config\-for=bar \\ +++ \-\-include\-global\-config +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-forget(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-filter-process.1 ++@@ -0,0 +1,48 @@ +++.TH git-annex-filter-process 1 +++.SH NAME +++git-annex-filter\-process \- long running git filter process for git-annex +++.PP +++.SH SYNOPSIS +++git annex filter\-process +++.PP +++.SH DESCRIPTION +++When this is not enabled, each file that git wants to filter involves +++starting up a new \fBgit-annex smudge\fP process. Starting many such processes +++for many files can be slow, and can make commands like \fBgit checkout\fP and +++\fBgit add\fP slow when they are operating on a lot of files. (A lot of locked +++annexed files do not make \fBgit checkout\fP slow, but unlocked files and +++non\-annexed files do slow it down.) +++.PP +++On the other hand when this is enabled, \fBgit add\fP of a large file does an +++unnecessary extra read of the file, and pipes its contents into git-annex. +++So when this is enabled, it will be faster to use \fBgit-annex add\fP to add +++large files to the annex, rather than \fBgit add\fP. Other commands that +++add files, like \fBgit commit \-a\fP, are also impacted by this. +++.PP +++This is used by default in git-annex repositories v9 and above, while +++v8 repositories use \fBgit-annex smudge\fP for backwards compatability with +++older versions of git-annex. +++.PP +++To enable this in a v8 repository, run: +++.PP +++ git config filter.annex.process 'git-annex filter\-process' +++.PP +++To disable it, you can just unset the config: +++.PP +++ git config \-\-unset filter.annex.process +++.PP +++There will be no visible difference in behavior between enabling this and +++not, besides changes in speed and memory use when using git. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++git-annex\-smudge(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-find.1 ++@@ -0,0 +1,84 @@ +++.TH git-annex-find 1 +++.SH NAME +++git-annex-find \- lists available files +++.PP +++.SH SYNOPSIS +++git annex find \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++Outputs a list of annexed files in the specified path. With no path, +++finds files in the current directory and its subdirectories. +++.PP +++.SH OPTIONS +++.IP "matching options" +++.IP +++The git-annex\-matching\-options(1) +++can be used to specify files to list. +++.IP +++By default, the find command only lists annexed files whose content is +++currently present. Specifying any of the matching options will override +++this default behavior. +++.IP +++To list all annexed files, present or not, specify \fB\-\-anything\fP. +++.IP +++To list annexed files whose content is not present, specify \fB\-\-not \-\-in=here\fP +++.IP +++.IP "\fB\-\-branch=ref\fP" +++List files in the specified branch or treeish. +++.IP +++.IP "\fB\-\-print0\fP" +++Output filenames terminated with nulls, for use with \fBxargs \-0\fP +++.IP +++.IP "\fB\-\-format=value\fP" +++Use custom output formatting. +++.IP +++The value is a format string, in which '${var}' is expanded to the +++value of a variable. To right\-justify a variable with whitespace, +++use '${var;width}' ; to left\-justify a variable, use '${var;\-width}'; +++to escape unusual characters (including control characters) +++in a variable, use '${escaped_var}' +++.IP +++These variables are available for use in formats: file, key, backend, +++bytesize, humansize, keyname, hashdirlower, hashdirmixed, mtime (for +++the mtime field of a WORM key). +++.IP +++Also, '\\n' is a newline, '\\000' is a NULL, etc. +++.IP +++The default output format is the same as \fB\-\-format='${file}\\n'\fP, +++except when outputting to a terminal, control characters will be escaped. +++.IP +++.IP "\fB\-\-json\fP" +++Output the list of files in JSON format. +++.IP +++This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "\fB\-\-batch\fP" +++Enables batch mode, in which a file is read in a line from stdin, +++its information displayed, and repeat. +++.IP +++Note that if the file is not an annexed file, or is not present, +++or otherwise doesn't meet the matching options, an empty line +++will be output instead. +++.IP +++.IP "\fB\-z\fP" +++Makes the \fB\-\-batch\fP input be delimited by nulls instead of the usual +++newlines. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-whereis(1) +++.PP +++git-annex\-findkeys(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-findkeys.1 ++@@ -0,0 +1,66 @@ +++.TH git-annex-findkeys 1 +++.SH NAME +++git-annex-findkeys \- lists available keys +++.PP +++.SH SYNOPSIS +++git annex findkeys +++.PP +++.SH DESCRIPTION +++Outputs a list of keys known to git-annex. +++.PP +++.SH OPTIONS +++.IP "matching options" +++.IP +++The git-annex\-matching\-options(1) +++can be used to specify which keys to list. +++.IP +++By default, the findkeys command only lists keys whose content is +++currently present. Specifying any of the matching options will override +++this default behavior and match on all keys that git-annex knows about. +++.IP +++To list all keys, present or not, specify \fB\-\-anything\fP. +++.IP +++To list keys whose content is not present, specify \fB\-\-not \-\-in=here\fP +++.IP +++.IP "\fB\-\-print0\fP" +++Output keys terminated with nulls, for use with \fBxargs \-0\fP +++.IP +++.IP "\fB\-\-format=value\fP" +++Use custom output formatting. +++.IP +++The value is a format string, in which '${var}' is expanded to the +++value of a variable. To right\-justify a variable with whitespace, +++use '${var;width}' ; to left\-justify a variable, use '${var;\-width}'; +++to escape unusual characters (including control characters) +++in a variable, use '${escaped_var}' +++.IP +++These variables are available for use in formats: key, backend, +++bytesize, humansize, keyname, hashdirlower, hashdirmixed, mtime (for +++the mtime field of a WORM key). +++.IP +++Also, '\\n' is a newline, '\\000' is a NULL, etc. +++.IP +++The default output format is the same as \fB\-\-format='${escapedkey}\\n'\fP +++except when outputting to a terminal, control characters will be escaped. +++.IP +++.IP "\fB\-\-json\fP" +++Output the list of keys in JSON format. +++.IP +++This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-find(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-findref.1 ++@@ -0,0 +1,23 @@ +++.TH git-annex-findref 1 +++.SH NAME +++git-annex-findref \- lists files in a git ref (deprecated) +++.PP +++.SH SYNOPSIS +++git annex findref \fB[ref]\fP +++.PP +++.SH DESCRIPTION +++This is the same as \fBgit annex find\fP with the \-\-branch option, and you're +++encouraged to use that instead unless you need to support older versions of +++git-annex. +++.PP +++.SH OPTIONS +++Same as git-annex\-find(1) +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-fix.1 ++@@ -0,0 +1,42 @@ +++.TH git-annex-fix 1 +++.SH NAME +++git-annex-fix \- fix up links to annexed content +++.PP +++.SH SYNOPSIS +++git annex fix \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++Fixes up symlinks that have become broken to again point to annexed +++content. +++.PP +++This is useful to run manually when you have been moving the symlinks +++around, but is done automatically when committing a change with git too. +++.PP +++Also, adjusts unlocked files to be copies or hard links as +++configured by annex.thin. +++.PP +++.SH OPTIONS +++.IP "file matching options" +++.IP +++The git-annex\-matching\-options(1) +++can be used to specify files to fix. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-fsck(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-forget.1 ++@@ -0,0 +1,38 @@ +++.TH git-annex-forget 1 +++.SH NAME +++git-annex-forget \- prune git-annex branch history +++.PP +++.SH SYNOPSIS +++git annex forget +++.PP +++.SH DESCRIPTION +++Causes the git-annex branch to be rewritten, throwing away historical +++data about past locations of files. The resulting branch will use less +++space, but \fBgit annex log\fP will not be able to show where +++files used to be located. +++.PP +++When this rewritten branch is merged into other clones of +++the repository, \fBgit-annex\fP will automatically perform the same rewriting +++to their local \fBgit-annex\fP branches. So the forgetfulness will automatically +++propagate out from its starting point until all repositories running +++git-annex have forgotten their old history. (You may need to force +++git to push the branch to any git repositories not running git-annex.) +++.PP +++.SH OPTIONS +++.IP "\fB\-\-drop\-dead\fP" +++.IP +++Also prune references to repositories that have been marked as dead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-dead(1) +++.PP +++git-annex\-filter\-branch(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-fromkey.1 ++@@ -0,0 +1,52 @@ +++.TH git-annex-fromkey 1 +++.SH NAME +++git-annex-fromkey \- adds a file using a specific key +++.PP +++.SH SYNOPSIS +++git annex fromkey \fB[key file ...]\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command can be used to manually set up a file +++in the git repository to link to a specified key. +++.PP +++Multiple pairs of file and key can be given in a single command line. +++.PP +++If no key and file pair are specified on the command line, batch input +++is used, the same as if the \-\-batch option were specified. +++.PP +++Normally the key is a git-annex formatted key. However, to make it easier +++to use this to add urls, if the key cannot be parsed as a key, and is a +++valid url, an URL key is constructed from the url. Note that this does not +++register the url as a location of the key; use git-annex\-registerurl(1) +++to do that. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-force\fP" +++.IP +++Allow making a file link to a key whose content is not in the local +++repository. The key may not be known to git-annex at all. +++.IP +++.IP "\fB\-\-batch\fP" +++In batch input mode, lines are read from stdin, and each line +++should contain a key and filename, separated by a single space. +++.IP +++.IP "\fB\-z\fP" +++When in batch mode, the input is delimited by nulls instead of the usual +++newlines. +++.IP +++(Note that for this to be used, you have to explicitly enable batch mode +++with \fB\-\-batch\fP) +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-fsck.1 ++@@ -0,0 +1,115 @@ +++.TH git-annex-fsck 1 +++.SH NAME +++git-annex-fsck \- find and fix problems +++.PP +++.SH SYNOPSIS +++git annex fsck \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++This command checks annexed files for consistency, and warns about or +++fixes any problems found. This is a good complement to \fBgit fsck\fP. +++.PP +++The default is to check all annexed files in the current directory and +++subdirectories. With parameters, only the specified files are checked. +++.PP +++The problems fsck finds include files that have gotten corrupted, +++files whose content has somehow become lost, files that do not have the +++configured number of copies yet made, and keys that can be upgraded to a +++better format. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-from=remote\fP" +++.IP +++Check a remote, rather than the local repository. +++.IP +++Note that by default, files will be copied from the remote to check +++their contents. To avoid this expensive transfer, and only +++verify that the remote still has the files that are expected to be on it, +++add the \fB\-\-fast\fP option. +++.IP +++.IP "\fB\-\-fast\fP" +++Avoids expensive checksum calculations (and expensive transfers when +++fscking a remote). +++.IP +++.IP "\fB\-\-incremental\fP" +++Start a new incremental fsck pass. An incremental fsck can be interrupted +++at any time, with eg ctrl\-c. +++.IP +++.IP "\fB\-\-more\fP" +++Resume the last incremental fsck pass, where it left off. +++.IP +++Resuming may redundantly check some files that were checked +++before. Any files that fsck found problems with before will be re\-checked +++on resume. Also, checkpoints are made every 1000 files or every 5 minutes +++during a fsck, and it resumes from the last checkpoint. +++.IP +++.IP "\fB\-\-incremental\-schedule=time\fP" +++This makes a new incremental fsck be started only a specified +++time period after the last incremental fsck was started. +++.IP +++The time is in the form "10d" or "300h". +++.IP +++Maybe you'd like to run a fsck for 5 hours at night, picking up each +++night where it left off. You'd like this to continue until all files +++have been fscked. And once it's done, you'd like a new fsck pass to start, +++but no more often than once a month. Then put this in a nightly cron job: +++.IP +++ git annex fsck \-\-incremental\-schedule 30d \-\-time\-limit 5h +++.IP +++.IP "\fB\-\-numcopies=N\fP" +++Override the normally configured number of copies. +++.IP +++To verify data integrity only while disregarding required number of copies, +++use \fB\-\-numcopies=1\fP. +++.IP +++.IP "\fB\-\-all\fP \fB\-A\fP" +++Normally only the files in the currently checked out branch +++are fscked. This option causes all versions of all files to be fscked. +++.IP +++This is the default behavior when running git-annex in a bare repository. +++.IP +++.IP "\fB\-\-branch=ref\fP" +++Operate on files in the specified branch or treeish. +++.IP +++.IP "\fB\-\-unused\fP" +++Operate on files found by last run of git-annex unused. +++.IP +++.IP "\fB\-\-key=keyname\fP" +++Use this option to fsck a specified key. +++.IP +++.IP "matching options" +++The git-annex\-matching\-options(1) +++can be used to control what to fsck. +++.IP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++Runs multiple fsck jobs in parallel. For example: \fB\-J4\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "\fB\-\-quiet\fP" +++Like all git-annex commands, this option makes only error and warning +++messages be displayed. This is particularly useful with fsck, which +++normally displays all the files it's checking even when there is no +++problem with them. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-repair(1) +++.PP +++git-annex\-expire(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-fuzztest.1 ++@@ -0,0 +1,23 @@ +++.TH git-annex-fuzztest 1 +++.SH NAME +++git-annex-fuzztest \- generates fuzz test files +++.PP +++.SH SYNOPSIS +++git annex fuzztest +++.PP +++.SH DESCRIPTION +++Generates random changes to files in the current repository, +++for use in testing the assistant. This is dangerous, so it will not +++do anything unless \-\-forced. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-get.1 ++@@ -0,0 +1,135 @@ +++.TH git-annex-get 1 +++.SH NAME +++git-annex-get \- make content of annexed files available +++.PP +++.SH SYNOPSIS +++git annex get \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++Makes the content of annexed files available in this repository. This +++will involve copying them from a remote repository, or downloading them, +++or transferring them from some kind of key\-value store. +++.PP +++With no parameters, gets all annexed files in the current directory whose +++content was not already present. Paths of files or directories to get can +++be specified. +++.PP +++.SH EXAMPLES +++ # evince foo.pdf +++ error: Unable to open document foo.pdf: No such file or directory +++ # ls foo.pdf +++ foo.pdf@ +++ # git annex get foo.pdf +++ get foo.pdf (from origin..) ok +++ # evince foo.pdf +++.PP +++.SH OPTIONS +++.IP "\fB\-\-auto\fP" +++.IP +++Rather than getting all the specified files, get only those that don't yet +++have the desired number of copies, or that are preferred content of the +++repository. See git-annex\-preferred\-content(1) +++.IP +++.IP "\fB\-\-from=remote\fP" +++Normally git-annex will choose which remotes to get the content +++from, preferring remotes with lower costs. Use this option to specify +++which remote to use. +++.IP +++Any files that are not available on the remote will be silently skipped. +++.IP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++Enables parallel download with up to the specified number of jobs +++running at once. For example: \fB\-J10\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++When files can be downloaded from multiple remotes, enabling parallel +++downloads will split the load between the remotes. For example, if +++the files are available on remotes A and B, then one file will be +++downloaded from A, and another file will be downloaded from B in +++parallel. (Remotes with lower costs are still preferred over higher cost +++remotes.) +++.IP +++.IP "matching options" +++The git-annex\-matching\-options(1) +++can be used to control what to get. +++.IP +++.IP "\fB\-\-incomplete\fP" +++Resume any incomplete downloads of files that were started and +++interrupted at some point previously. Useful to pick up where you left +++off ... when you don't quite remember where that was. +++.IP +++These incomplete files are the same ones that are +++listed as unused temp files by git-annex\-unused(1). +++.IP +++Note that the git-annex key will be displayed when downloading, +++as git-annex does not know the associated file, and the associated file +++may not even be in the current git working directory. +++.IP +++.IP "\fB\-\-all\fP \fB\-A\fP" +++Rather than specifying a filename or path to get, this option can be +++used to get all available versions of all files. +++.IP +++This is the default behavior when running git-annex in a bare repository. +++.IP +++.IP "\fB\-\-branch=ref\fP" +++Operate on files in the specified branch or treeish. +++.IP +++.IP "\fB\-\-unused\fP" +++Operate on files found by last run of git-annex unused. +++.IP +++.IP "\fB\-\-failed\fP" +++Operate on files that have recently failed to be transferred. +++.IP +++Not to be confused with \fB\-\-incomplete\fP which resumes only downloads +++that managed to transfer part of the content of a file. +++.IP +++.IP "\fB\-\-key=keyname\fP" +++Use this option to get a specified key. +++.IP +++.IP "\fB\-\-batch\fP" +++Enables batch mode, in which lines containing names of files to get +++are read from stdin. +++.IP +++As each specified file is processed, the usual progress output is +++displayed. If the specified file's content is already present, +++or it does not match specified matching options, or +++it is not an annexed file, a blank line is output in response instead. +++.IP +++Since the usual output while getting a file is verbose and not +++machine\-parseable, you may want to use \-\-json in combination with +++\-\-batch. +++.IP +++.IP "\fB\-\-batch\-keys\fP" +++This is like \fB\-\-batch\fP but the lines read from stdin are parsed as keys. +++.IP +++.IP "\fB\-z\fP" +++Makes batch input be delimited by nulls instead of the usual +++newlines. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-progress\fP" +++Include progress objects in JSON output. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-drop(1) +++.PP +++git-annex\-copy(1) +++.PP +++git-annex\-move(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-group.1 ++@@ -0,0 +1,35 @@ +++.TH git-annex-group 1 +++.SH NAME +++git-annex-group \- add a repository to a group +++.PP +++.SH SYNOPSIS +++git annex group \fBrepository [groupname]\fP +++.PP +++.SH DESCRIPTION +++Adds a repository to a group, such as "archival", "enduser", or "transfer". +++The groupname must be a single word. +++.PP +++Omit the groupname to show the current groups that a repository is in. +++.PP +++There are some standard groups that have different default preferred content +++settings. See +++.PP +++A repository can be in multiple groups at the same time. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-ungroup(1) +++.PP +++git-annex\-preferred\-content(1) +++.PP +++git-annex\-wanted(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-groupwanted.1 ++@@ -0,0 +1,42 @@ +++.TH git-annex-groupwanted 1 +++.SH NAME +++git-annex-groupwanted \- get or set groupwanted expression +++.PP +++.SH SYNOPSIS +++git annex groupwanted \fBgroupname [expression]\fP +++.PP +++.SH DESCRIPTION +++Sets or displays the groupwanted expression. This will be used by +++repositories that are in the group, and that have their preferred +++content expression set to "groupwanted". +++.PP +++For example, to configure a group named redundantarchive, and +++make repositories in the group want to contain 3 copies of every file: +++.PP +++ git annex groupwanted redundantarchive "not (copies=redundantarchive:3)" +++ for repo in foo bar baz; do +++ git annex group $repo redundantarchive +++ git annex wanted $repo groupwanted +++ done +++.PP +++Note that there must be exactly one groupwanted expression configured +++amoung all the groups that a repository is in; if there's more than one, +++none of them will be used. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-group(1) +++.PP +++git-annex\-wanted(1) +++.PP +++git-annex\-preferred\-content(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-import.1 ++@@ -0,0 +1,228 @@ +++.TH git-annex-import 1 +++.SH NAME +++git-annex-import \- import files from a special remote +++.PP +++.SH SYNOPSIS +++git annex import \-\-from remote branch[:subdir] | \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++This command is a way to import a tree of files from elsewhere into your +++git-annex repository. It can import files from a git-annex special remote, +++or from a directory. +++.PP +++.SH IMPORTING FROM A SPECIAL REMOTE +++Importing from a special remote first downloads or hashes all new content +++from it, and then constructs a git commit that reflects files that have +++changed on the special remote since the last time git-annex looked at it. +++Merging that commit into your repository will update it to reflect changes +++made on the special remote. +++.PP +++This way, something can be using the special remote for file storage, +++adding files, modifying files, and deleting files, and you can track those +++changes using git-annex. +++.PP +++You can combine using \fBgit annex import\fP to fetch changes from a special +++remote with \fBgit annex export\fP to send your local changes to the special +++remote. +++.PP +++You can only import from special remotes that were configured with +++\fBimporttree=yes\fP when set up with git-annex\-initremote(1). Only some +++kinds of special remotes will let you configure them this way. A perhaps +++non\-exhaustive list is the directory, s3, and adb special remotes. +++.PP +++To import from a special remote, you must specify the name of a branch. +++A corresponding remote tracking branch will be updated by \fBgit annex import\fP. +++After that point, it's the same as if you had run a \fBgit fetch\fP +++from a regular git remote; you can merge the changes into your +++currently checked out branch. +++.PP +++For example: +++.PP +++ git annex import master \-\-from myremote +++ git annex merge \-\-allow\-unrelated\-histories myremote/master +++.PP +++You could just as well use \fBgit merge \-\-allow\-unrelated\-histories myremote/master\fP +++as the second step, but using \fBgit-annex merge\fP avoids a couple of gotchas. +++When using adjusted branches, it adjusts the branch before merging from it. +++.PP +++The \-\-allow\-unrelated\-histories option is needed for at least the first +++merge of an imported remote tracking branch, since the branch's history is +++not connected. Think of this as the remote being a separate git repository +++with its own files. If you first \fBgit annex export\fP files to a remote, and +++then \fBgit annex import\fP from it, you won't need that option. +++.PP +++You can import into a subdirectory, using the "branch:subdir" syntax. For +++example, if "camera" is a special remote that accesses a camera, and you +++want to import those into the photos directory, rather than to the root of +++your repository: +++.PP +++ git annex import master:photos \-\-from camera +++ git merge camera/master +++.PP +++The \fBgit annex sync \-\-content\fP command (and the git-annex assistant) +++can also be used to import from a special remote. +++To do this, you need to configure "remote..annex\-tracking\-branch" +++to tell it what branch to track. For example: +++.PP +++ git config remote.myremote.annex\-tracking\-branch master +++ git annex sync \-\-content +++.PP +++Any files that are gitignored will not be included in the import, +++but will be left on the remote. +++.PP +++When the special remote has a preferred content expression set by +++git-annex\-wanted(1), that is used to pick which files to import from +++it. Files that are not preferred content of the remote will not be +++imported from it, but will be left on the remote. +++.PP +++So for example, a preferred content expression like +++\fB"include=*.jpeg or largerthan=100mb"\fP will make only jpegs and +++large files be imported. +++.PP +++Parts of a preferred content expression that relate to the key, +++such as "copies=" are ignored when importing, because the key +++is not known before importing. +++.PP +++Things in the expression like "include=" match relative to the top of +++the tree of files on the remote, even when importing into a subdirectory. +++.PP +++.SH OPTIONS FOR IMPORTING FROM A SPECIAL REMOTE +++.IP "\fB\-\-content\fP, \fB\-\-no\-content\fP" +++.IP +++Controls whether annexed content is downloaded from the special remote. +++.IP +++The default is to download content into the git-annex repository. +++.IP +++With \-\-no\-content, git-annex keys are generated from information +++provided by the special remote, without downloading it. Commands like +++\fBgit-annex get\fP can later be used to download files, as desired. +++The \-\-no\-content option is not supported by all special remotes. +++.IP +++.IP "\fB\-\-message=msg\fP \fB\-m msg\fP" +++Use this option to specify a commit message for the changes that have +++been made to the special remote since the last import from it. +++.IP +++If multiple \-m options are given, their values are concatenated +++as separate paragraphs. +++.IP +++.SH IMPORTING FROM A DIRECTORY +++When run with a path, \fBgit annex import\fP **moves** files from somewhere outside +++the git working copy, and adds them to the annex. In contrast to importing +++from a special directory remote, imported files are **deleted from the given +++path**. +++.PP +++This is a legacy interface. It is still supported, but please consider +++switching to importing from a directory special remote instead, using the +++interface documented above. +++.PP +++Individual files to import can be specified. If a directory is specified, +++the entire directory is imported. Please note that the following instruction +++will **delete all files from the source directory**. +++.PP +++ git annex import /media/camera/DCIM/* +++.PP +++When importing files, there's a possibility of importing a duplicate +++of a file that is already known to git-annex \-\- its content is either +++present in the local repository already, or git-annex knows of another +++repository that contains it, or it was present in the annex before but has +++been removed now. +++.PP +++By default, importing a duplicate of a known file will result in +++a new filename being added to the repository, so the duplicate file +++is present in the repository twice. (With all checksumming backends, +++including the default SHA256E, only one copy of the data will be stored.) +++.PP +++Several options can be used to adjust handling of duplicate files, see +++\fB\-\-duplicate\fP, \fB\-\-deduplicate\fP, \fB\-\-skip\-duplicates\fP, \fB\-\-clean\-duplicates\fP, +++and \fB\-\-reinject\-duplicates\fP documentation below. +++.PP +++symbolic links in the directory being imported are skipped to avoid +++accidentially importing things outside the directory that import was ran +++on. The directory that import is run on can, however inself be a symbolic +++link, and that symbolic link will be followed. +++.PP +++.SH OPTIONS FOR IMPORTING FROM A DIRECTORY +++.IP "\fB\-\-duplicate\fP" +++.IP +++Do not delete files from the import location. +++.IP +++Running with this option repeatedly can import the same files into +++different git repositories, or branches, or different locations in a git +++repository. +++.IP +++.IP "\fB\-\-deduplicate\fP" +++Only import files that are not duplicates; +++duplicate files will be deleted from the import location. +++.IP +++.IP "\fB\-\-skip\-duplicates\fP" +++Only import files that are not duplicates. Avoids deleting any +++files from the import location. +++.IP +++.IP "\fB\-\-clean\-duplicates\fP" +++Does not import any files, but any files found in the import location +++that are duplicates are deleted. +++.IP +++.IP "\fB\-\-reinject\-duplicates\fP" +++Imports files that are not duplicates. Files that are duplicates have +++their content reinjected into the annex (similar to +++git-annex\-reinject(1)). +++.IP +++.IP "\fB\-\-force\fP" +++Allow existing files to be overwritten by newly imported files. +++.IP +++Also, causes .gitignore to not take effect when adding files. +++.IP +++.IP "file matching options" +++Many of the git-annex\-matching\-options(1) +++can be used to specify files to import. +++.IP +++ git annex import /dir \-\-include='*.png' +++.IP +++.SH COMMON OPTIONS +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++.IP +++Imports multiple files in parallel. This may be faster. +++For example: \fB\-J4\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++.IP "\fB\-\-backend\fP" +++Specifies which key\-value backend to use for the imported files. +++.IP +++.IP "\fB\-\-no\-check\-gitignore\fP" +++Add gitignored files. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-progress\fP" +++Include progress objects in JSON output. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH CAVEATS +++Note that using \fB\-\-deduplicate\fP or \fB\-\-clean\-duplicates\fP with the WORM +++backend does not look at file content, but filename and mtime. +++.PP +++If annex.largefiles is configured, and does not match a file, git annex +++import will add the non\-large file directly to the git repository, +++instead of to the annex. +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-add(1) +++.PP +++git-annex\-export(1) +++.PP +++git-annex\-preferred\-content(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-importfeed.1 ++@@ -0,0 +1,129 @@ +++.TH git-annex-importfeed 1 +++.SH NAME +++git-annex-importfeed \- import files from podcast feeds +++.PP +++.SH SYNOPSIS +++git annex importfeed \fB[url ...]\fP +++.PP +++.SH DESCRIPTION +++Imports the contents of podcasts and other rss and atom feeds. Only +++downloads files whose content has not already been added to the repository +++before, so you can delete, rename, etc the resulting files and repeated +++runs won't duplicate them. +++.PP +++When \fByt\-dlp\fP is installed, it can be used to download links in the feed. +++This allows importing e.g., YouTube playlists. +++(However, this is disabled by default as it can be a security risk. +++See the documentation of annex.security.allowed\-ip\-addresses +++in git-annex(1) for details.) +++.PP +++To make the import process add metadata to the imported files from the feed, +++\fBgit config annex.genmetadata true\fP +++.PP +++By default, the downloaded files are put in a directory with the title +++of the feed, and files are named based on the title of the item in the +++feed. This can be changed using the \-\-template option. +++.PP +++Existing files are not overwritten by this command. If "some feed/foo.mp3" +++already exists, it will instead write to "some feed/2\_foo.mp3" +++(or 3, 4, etc). Sometimes a feed will change an item's url, +++resulting in the new url being downloaded to such a filename. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-force\fP" +++.IP +++Force downloading items it's seen before. +++.IP +++.IP "\fB\-\-fast\fP, \fB\-\-relaxed\fP, \fB\-\-verifiable\fP, \fB\-\-raw\fP, \fB\-\-raw\-except\fP" +++These options behave the same as when using git-annex\-addurl(1). +++.IP +++.IP "\fB\-\-fast\fP" +++Avoid immediately downloading urls. The url is still checked +++(via HEAD) to verify that it exists, and to get its size if possible. +++.IP +++.IP "\fB\-\-relaxed\fP" +++Don't immediately download urls, and avoid storing the size of the +++url's content. This makes git-annex accept whatever content is there +++at a future point. +++.IP +++.IP "\fB\-\-raw\fP" +++Prevent special handling of urls by yt\-dlp, bittorrent, and other +++special remotes. This will for example, make importfeed +++download a .torrent file and not the contents it points to. +++.IP +++.IP "\fB\-\-no\-raw\fP" +++Require content pointed to by the url to be downloaded using yt\-dlp +++or a special remote, rather than the raw content of the url. if that +++cannot be done, the import will fail, and the next import of the feed +++will retry. +++.IP +++.IP "\fB\-\-scrape\fP" +++Rather than downloading the url and parsing it as a rss/atom feed +++to find files to import, uses yt\-dlp to screen scrape the equivilant +++of a feed, and imports what it found. +++.IP +++.IP "\fB\-\-template\fP" +++Controls where the files are stored. +++.IP +++The default template is '${feedtitle}/${itemtitle}${extension}' +++.IP +++The available variables in the template include these that +++are information about the feed: feedtitle, feedauthor, feedurl +++.IP +++And these that are information about individual items in the feed: +++itemtitle, itemauthor, itemsummary, itemdescription, itemrights, +++itemid. +++.IP +++Also, title is itemtitle but falls back to feedtitle if the item has no +++title, and author is itemauthor but falls back to feedauthor. +++.IP +++(All of the above are also added as metadata when annex.genmetadata is +++set.) +++.IP +++The extension variable is the extension of the file in the feed, +++or sometimes ".m" if no extension can be determined. +++.IP +++The template also has some variables for when an item was published. +++.IP +++itempubyear (YYYY), itempubmonth (MM), itempubday (DD), itempubhour (HH), +++itempubminute (MM), itempubsecond (SS), +++itempubdate (YYYY\-MM\-DD or if the feed's date cannot be parsed, the raw +++value from the feed). +++.IP +++(These use the UTC time zone, not the local time zone.) +++.IP +++.IP "\fB\-\-no\-check\-gitignore\fP" +++By default, gitignores are honored and it will refuse to download an +++url to a file that would be ignored. This makes such files be added +++despite any ignores. +++.IP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++Runs multiple downloads parallel. For example: \fB\-J4\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++.IP "\fB\-\-backend\fP" +++Specifies which key\-value backend to use. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-progress\fP" +++Include progress objects in JSON output. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-addurl(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-indirect.1 ++@@ -0,0 +1,24 @@ +++.TH git-annex-indirect 1 +++.SH NAME +++git-annex-indirect \- switch repository to indirect mode (deprecated) +++.PP +++.SH SYNOPSIS +++git annex indirect +++.PP +++.SH DESCRIPTION +++This command was used to switch a repository back from direct mode +++indirect mode. +++.PP +++Now git-annex automatically converts direct mode repositories to v7 +++with adjusted unlocked branches, so this command does nothing. +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-direct(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-info.1 ++@@ -0,0 +1,85 @@ +++.TH git-annex-info 1 +++.SH NAME +++git-annex-info \- information about an item or the repository +++.PP +++.SH SYNOPSIS +++git annex info \fB[directory|file|treeish|remote|description|uuid ...]\fP +++.PP +++.SH DESCRIPTION +++Displays statistics and other information for the specified item. +++.PP +++When no item is specified, displays overall information. This includes a +++list of all known repositories, how much annexed data is present in the +++local repository, the total size of all annexed data in the working +++tree, the combined size of annexed data in all repositories, and the annex +++sizes of each repository. +++.PP +++When a directory is specified, displays information +++about the annexed files in that directory (and subdirectories). +++This includes how much annexed data is present in the local repository, +++the total size of all annexed data in the directory, how many files +++have the specified numcopies or more (+1, +2 etc) or less (\-1, \-2 etc), +++and information about how much of the annexed data is stored in known +++repositories. +++.PP +++When a treeish is specified, displays similar information +++as when a directory is specified, but about the annexed files in that +++treeish. +++.PP +++When a remote, or description of a repository, or uuid is specified, +++displays information about the specified repository, including the total +++amount of annexed data stored in it, and a variety of configuration +++information. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-fast\fP" +++.IP +++Only show the information that can be gathered quickly. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "\fB\-\-bytes\fP" +++Show file sizes in bytes, disabling the default nicer units. +++.IP +++.IP "\fB\-\-batch\fP" +++Enable batch mode, in which a line containing an item is read from stdin, +++the information about it is output to stdout, and repeat. +++.IP +++.IP "\fB\-z\fP" +++Makes the \fB\-\-batch\fP input be delimited by nulls instead of the usual +++newlines. +++.IP +++.IP "\fB\-\-autoenable\fP" +++Display a list of special remotes that have been configured to +++autoenable. +++.IP +++.IP "\fB\-\-dead\-repositories\fP" +++Display a list of repositories that have been marked as dead. +++Such repositories are not displayed in other info displays. +++.IP +++.IP "matching options" +++The git-annex\-matching\-options(1) can be used to select what +++to include in the statistics. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH EXAMPLES +++Suppose you want to run "git annex get .", but +++would first like to see how much disk space that will use. +++Then run: +++.PP +++ git annex info \-\-fast . \-\-not \-\-in here +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-init.1 ++@@ -0,0 +1,76 @@ +++.TH git-annex-init 1 +++.SH NAME +++git-annex-init \- initialize git-annex +++.PP +++.SH SYNOPSIS +++git annex init \fB[description]\fP +++.PP +++.SH DESCRIPTION +++Until a repository (or one of its remotes) has been initialized, +++git-annex will refuse to operate on it, to avoid accidentally +++using it in a repository that was not intended to have an annex. +++.PP +++It's useful, but not mandatory, to initialize each new clone +++of a repository with its own description. If you don't provide one, +++one will be generated using the username, hostname and the path. +++.PP +++If any special remotes were configured with autoenable=true, +++this will also attempt to enable them. See git-annex\-initremote(1). +++To prevent that, re\-enable a remote with "autoenable=false", or +++mark it as dead (see git-annex\-dead(1)). +++.PP +++This command is entirely safe, although usually pointless, to run inside an +++already initialized git-annex repository. +++.PP +++A top\-level \fB.noannex\fP file will prevent git-annex init from being used +++in a repository. This is useful for repositories that have a policy +++reason not to use git-annex. The content of the file will be displayed +++to the user who tries to run git-annex init. +++.PP +++.SH EXAMPLES +++ # git annex add foo +++ git-annex: First run: git-annex init +++ # git annex init +++ init ok +++ # git annex add foo +++ add foo ok +++.PP +++.SH OPTIONS +++.IP "\fB\-\-version=N\fP" +++.IP +++Force the repository to be initialized using a different annex.version +++than the current default. +++.IP +++When the version given is not supported, but can be automatically +++upgraded to a newer version, it will use the newer version instead. +++.IP +++.IP "\fB\-\-autoenable\fP" +++Only enable any special remotes that were configured with +++autoenable=true, do not otherwise initialize anything. +++.IP +++.IP "\fB\-\-no\-autoenable\fP" +++Do not enable special remotes that were configured with autoenable=true. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-describe(1) +++.PP +++git-annex\-reinit(1) +++.PP +++git\-init(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-initremote.1 ++@@ -0,0 +1,134 @@ +++.TH git-annex-initremote 1 +++.SH NAME +++git-annex-initremote \- creates a special (non\-git) remote +++.PP +++.SH SYNOPSIS +++git annex initremote \fBname type=value [param=value ...]\fP +++.PP +++.SH DESCRIPTION +++Creates a new special remote, and adds it to \fB.git/config\fP. +++.PP +++Example Amazon S3 remote: +++.PP +++ git annex initremote mys3 type=S3 encryption=hybrid keyid=me@example.com datacenter=EU +++.PP +++Many different types of special remotes are supported by git-annex. +++For a list and details, see +++.PP +++The remote's configuration is specified by the parameters passed +++to this command. Different types of special remotes need different +++configuration values, so consult the documentation of a special remote for +++details. The command will prompt for any required parameters you leave out; +++you can also pass \-\-whatelse to see additional parameters. +++.PP +++A few parameters that are supported by all special remotes are documented in +++the next section below. +++.PP +++Once a special remote has been initialized once with this command, +++other clones of the repository can also be set up to access it using +++\fBgit annex enableremote\fP. +++.PP +++The name you provide for the remote can't be one that's been used for any +++other special remote before, because \fBgit-annex enableremote\fP uses the name +++to identify which special remote to enable. If some old special remote +++that's no longer used has taken the name you want to reuse, you might +++want to use \fBgit annex renameremote\fP. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-whatelse\fP / \fB\-w\fP" +++.IP +++Describe additional configuration parameters that you could specify. +++.IP +++For example, if you know you want a S3 remote, but forget how to +++configure it: +++.IP +++ git annex initremote mys3 type=S3 \-\-whatelse +++.IP +++For a machine\-readable list of the parameters, use this with \-\-json. +++.IP +++.IP "\fB\-\-fast\fP" +++When initializing a remote that uses encryption, a cryptographic key is +++created. This requires sufficient entropy. If initremote seems to hang +++or take a long time while generating the key, you may want to Ctrl\-c it +++and re\-run with \fB\-\-fast\fP, which causes it to use a lower\-quality source of +++randomness. (Ie, /dev/urandom instead of /dev/random) +++.IP +++.IP "\fB\-\-sameas=remote\fP" +++Use this when the new special remote uses the same underlying storage +++as some other remote. This will result in the new special remote having +++the same uuid as the specified remote, and either can be used to access +++the same content. +++.IP +++The \fBremote\fP can be the name of a git remote, or the description +++or uuid of any git-annex repository. +++.IP +++When using this option, the new remote inherits the encryption settings +++of the existing remote, so you should not specify any encryption +++parameters. No other configuration is inherited from the existing remote. +++.IP +++This will only work if both remotes use the underlying storage in +++compatible ways. See this page for information about known +++compatabilities. +++ +++.IP +++.IP "\fB\-\-private\fP" +++Avoid recording information about the special remote in the git-annex +++branch. The special remote will only be usable from the repository where +++it was created. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH COMMON CONFIGURATION PARAMETERS +++.IP "\fBencryption\fP" +++.IP +++Almost all special remotes support encryption. You will need to specify +++what encryption, if any, to use. +++.IP +++If you do not want any encryption, use \fBencryption=none\fP +++.IP +++To encrypt to a GPG key, use \fBencryption=hybrid keyid=$keyid ...\fP +++and fill in the GPG key id (or an email address associated with a GPG key). +++.IP +++For details about this and other encrpytion settings, see +++ +++or \-\-whatelse +++.IP +++.IP "\fBautoenable\fP" +++To avoid \fBgit annex enableremote\fP needing to be run, +++you can pass "autoenable=true". Then when git-annex is run in a new clone, +++it will attempt to enable the special remote. Of course, this works best +++when the special remote does not need anything special to be done to get +++it enabled. +++.IP +++.IP "\fBcost\fP" +++Specify this to override the default cost of the special remote. +++This configuration can be overridden by the local git config, +++eg remote.name.annex\-cost. +++.IP +++.IP "\fBuuid\fP" +++Normally, git-annex initremote generates a new UUID for the new special +++remote. If you want to, you can specify a UUID for it to use, by passing a +++uuid=whatever parameter. This can be useful in some unusual situations. +++But if in doubt, don't do this. +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-enableremote(1) +++.PP +++git-annex\-configremote(1) +++.PP +++git-annex\-renameremote(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-inprogress.1 ++@@ -0,0 +1,63 @@ +++.TH git-annex-inprogress 1 +++.SH NAME +++git-annex-inprogress \- access files while they're being downloaded +++.PP +++.SH SYNOPSIS +++git annex inprogress \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++This command allows accessing the content of an annexed file while +++it is still being downloaded. It outputs to standard output the +++name of the temporary file that is being used to download the specified +++annexed file. +++.PP +++Nothing will be output when the download is from an encrypted or chunked +++special remote. +++.PP +++This can sometimes be used to stream a file before it's been fully +++downloaded, for example: +++.PP +++ git annex get video.mpeg & +++ vlc $(git annex inprogress video.mpeg) +++.PP +++Of course if the file is downloading too slowly, the media player will +++reach the end too soon and not show the whole thing. And of course, only +++some file formats can be usefully streamed in this way. +++.PP +++.SH OPTIONS +++.IP "\fB[path ..]\fP" +++.IP +++The files or directories whose partially downloaded content you want to +++access. +++.IP +++Note that, when no path is specified, it defaults to all files in the +++current working directory, and subdirectories, which can take a while to +++traverse. It's most efficient to specify a the file you are interested +++in, or to use \fB\-\-all\fP +++.IP +++.IP "\fB\-\-all\fP \fB\-A\fP" +++Rather than specifying a filename or path, this option can be +++used to access all files that are currently being downloaded. +++.IP +++.IP "\fB\-\-key=keyname\fP" +++Access the file that is currently being downloaded for the specified key. +++.IP +++.IP "file matching options" +++The git-annex\-matching\-options(1) +++can be used to specify files to access. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH EXIT STATUS +++If any of the requested items are not currently being downloaded, +++the exit status will be 1. +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-get(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-list.1 ++@@ -0,0 +1,34 @@ +++.TH git-annex-list 1 +++.SH NAME +++git-annex-list \- show which remotes contain files +++.PP +++.SH SYNOPSIS +++git annex list \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++Displays a table of remotes that contain the contents of the specified +++files. This is similar to \fBgit annex whereis\fP but a more compact display. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-allrepos\fP" +++.IP +++Only configured remotes are shown by default; this option +++adds all known repositories to the list. +++.IP +++.IP "file matching options" +++The git-annex\-matching\-options(1) +++can be used to specify files to list. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-find(1) +++.PP +++git-annex\-whereis(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-lock.1 ++@@ -0,0 +1,43 @@ +++.TH git-annex-lock 1 +++.SH NAME +++git-annex-lock \- lock files to prevent modification +++.PP +++.SH SYNOPSIS +++git annex lock \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++Lock the specified annexed files, to prevent them from being modified. +++When no files are specified, all annexed files in the current directory are +++locked. +++.PP +++Locking a file changes how it is stored in the git repository (from a +++pointer file to a symlink), so this command will make a change that you +++can commit. +++.PP +++.SH OPTIONS +++.IP "file matching options" +++.IP +++The git-annex\-matching\-options(1) +++can be used to specify files to lock. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-add(1) +++.PP +++git-annex\-unlock(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-log.1 ++@@ -0,0 +1,128 @@ +++.TH git-annex-log 1 +++.SH NAME +++git-annex-log \- shows location log information +++.PP +++.SH SYNOPSIS +++git annex log \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++This command displays information from the history of the git-annex branch. +++.PP +++Several things can prevent that information being available to display. +++When git-annex\-forget is used, old historical +++data gets cleared from the branch. When annex.private or +++remote.name.annex\-private is configured, git-annex does not write +++information to the branch at all. And when annex.alwayscommit is set to +++false, information may not have been committed to the branch yet. +++.PP +++.SH OPTIONS +++.IP "\fB[path ...]\fP" +++.IP +++Displays the location log for the specified file or files, showing each +++repository they were added to ("+") and removed from ("\-"). Note that +++it displays information about the file content currently at these paths, +++not for any different content that was there in earlier commits. +++.IP +++.IP "matching options" +++The git-annex\-matching\-options(1) +++can be used to control what to act on when displaying the location log +++for specified files. +++.IP +++.IP "\fB\-\-all\fP \fB\-A\fP" +++Shows location log changes to all content, with the most recent changes first. +++In this mode, the names of files are not available and keys are displayed +++instead. +++.IP +++.IP "\fB\-\-sizesof=repository\fP" +++Displays a history of the total size of the annexed files in a repository +++over time from the creation of the repository to the present. +++.IP +++The repository can be "here" for the current repository, or the name of a +++remote, or a repository description or uuid. +++.IP +++Note that keys that do not have a known size are not included in the +++total. +++.IP +++.IP "\fB\-\-sizes\fP" +++This is like \-\-sizesof, but rather than display the size of a single +++repository, it displays the sizes of all known repositories. +++.IP +++The output is a CSV formatted table. +++.IP +++.IP "\fB\-\-totalsizes\fP" +++This is like \fB\-\-sizesof\fP, but it displays the total size of all +++known repositories. +++.IP +++.IP "\fB\-\-interval=time\fP" +++When using \fB\-\-sizesof\fP, \fB\-\-sizes\fP, and \fB\-\-totalsizes\fP, this +++controls the minimum interval between displays of the size. +++The default is to display each new recorded size. +++.IP +++The time is of the form "30d" or "1y". +++.IP +++.IP "\fB\-\-received\fP" +++Combine this option with \fB\-\-sizesof\fP or \fB\-\-sizes\fP to display +++the amount of data received into repositories since the last +++line was output. +++.IP +++.IP "\fB\-\-gnuplot\fP" +++Combine this option with \fB\-\-sizesof\fP or \fB\-\-sizes\fP or \fB\-\-totalsizes\fP +++to use gnuplot(1) to graph the data. The gnuplot file will be left on +++disk for you to reuse. +++.IP +++For example, to graph the sizes of all repositories: +++.IP +++git-annex log \-\-sizes \-\-interval=1d \-\-gnuplot +++.IP +++To graph the amount of new data received into each repository every 30 +++days: +++.IP +++git-annex log \-\-sizes \-\-interval=30d \-\-gnuplot \-\-recieved +++.IP +++.IP "\fB\-\-bytes\fP" +++Show sizes in bytes, disabling the default nicer units. +++.IP +++.IP "\fB\-\-raw\-date\fP" +++Rather than the normal display of a date in the local time zone, +++displays seconds since the unix epoch. +++.IP +++.IP "\fB\-\-since=date\fP, \fB\-\-after=date\fP, \fB\-\-until=date\fP, \fB\-\-before=date\fP, \fB\-\-max\-count=N\fP" +++These options are passed through to \fBgit log\fP, and can be used to limit +++how far back to search for location log changes. +++.IP +++For example: \fB\-\-since "1 month ago"\fP +++.IP +++These options do not have an affect when using \fB\-\-sizesof\fP, \fB\-\-sizes\fP, +++and \fB\-\-totalsizes\fP. +++.IP +++.IP "\fB\-\-gource\fP" +++Generates output suitable for the \fBgource\fP visualization program. +++.IP +++This option does not have an affect when using \fB\-\-sizesof\fP, \fB\-\-sizes\fP, +++and \fB\-\-totalsizes\fP. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++This option does not have an affect when using \fB\-\-sizesof\fP, \fB\-\-sizes\fP, +++and \fB\-\-totalsizes\fP. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++This option does not have an affect when using \fB\-\-sizesof\fP, \fB\-\-sizes\fP, +++and \fB\-\-totalsizes\fP. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-forget(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-lookupkey.1 ++@@ -0,0 +1,41 @@ +++.TH git-annex-lookupkey 1 +++.SH NAME +++git-annex-lookupkey \- looks up key used for file +++.PP +++.SH SYNOPSIS +++git annex lookupkey \fB[file ...]\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command looks up the key used for a file in the +++index. The key is output to stdout. If there is no key (because +++the file is not present in the index, or is not a git-annex managed file), +++nothing is output, and it exits nonzero. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-ref\fP" +++.IP +++Rather than looking for the specified files in the index, interpet them +++as git refs. For example to find the key used for somefile in tag v1.0: +++.IP +++git-annex lookupkey v1.0:somefile +++.IP +++.IP "\fB\-\-batch\fP" +++Enable batch mode, in which a line containing the filename is read from +++stdin, the key is output to stdout (with a trailing newline), and repeat. +++.IP +++Note that if there is no key corresponding to the file, an empty line is +++output to stdout instead. +++.IP +++.IP "\fB\-z\fP" +++Makes the \fB\-\-batch\fP input be delimited by nulls instead of the usual +++newlines. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-map.1 ++@@ -0,0 +1,46 @@ +++.TH git-annex-map 1 +++.SH NAME +++git-annex-map \- generate map of repositories +++.PP +++.SH SYNOPSIS +++git annex map +++.PP +++.SH DESCRIPTION +++Helps you keep track of your repositories, and the connections between them, +++by going out and looking at all the ones it can get to, and generating a +++Graphviz file displaying it all. If the \fBxdot\fP or \fBdot\fP command is available, +++it is used to display the file to your screen. +++.PP +++This command only connects to hosts that the host it's run on can +++directly connect to. It does not try to tunnel through intermediate hosts. +++So it might not show all connections between the repositories in the network +++.PP +++Also, if connecting to a host requires a password, you might have to enter +++it several times as the map is being built. +++.PP +++Note that this subcommand can be used to graph any git repository; it +++is not limited to git-annex repositories. +++.PP +++.SH LEGEND +++Ovals are repositories. White is regular, green is trusted, red is +++untrusted, and grey is dead. +++.PP +++Arrows between repositories are connections via git remotes. +++.PP +++Light blue boxes are hosts that were mapped, and contain the repositories +++on that host. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-fast\fP" +++.IP +++Don't display the generated Graphviz file, but save it for later use. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-matchexpression.1 ++@@ -0,0 +1,64 @@ +++.TH git-annex-matchexpression 1 +++.SH NAME +++git-annex-matchexpression \- checks if an expression matches +++.PP +++.SH SYNOPSIS +++git annex matchexpression \fBexpression [data]\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command is given a preferred content expression, +++and some data, and checks if the expression matches the data. It exits 0 if +++it matches, and 1 if not. If not enough data was provided, it displays an +++error and exits with special code 42. +++.PP +++For example, this will exit 0: +++.PP +++ git annex matchexpression "include=*.png and largerthan=1mb" \-\-file=foo.png \-\-size=10mb +++.PP +++.SH OPTIONS +++.IP "\fB\-\-file=\fP" +++.IP +++Provide the filename to match against. Note that the file does not have +++to actually exist on disk. +++.IP +++.IP "\fB\-\-size=\fP" +++Tell what the size of the file is. The size can be specified with any +++commonly used units, for example, "0.5 gb" or "100 KiloBytes". +++.IP +++.IP "\fB\-\-key=\fP" +++Tell what key is being matched against. This is needed for +++matching expressions like "copies=N" and "metadata=tag=foo" and +++"present", which all need to look up the information on file for a key. +++.IP +++Many keys have a known size, and so \-\-size is not needed when specifying +++such a key. +++.IP +++.IP "\fB\-\-largefiles\fP" +++Parse the expression as an annex.largefiles expression, rather than a +++preferred content expression. +++.IP +++.IP "\fB\-\-mimetype=\fP" +++Tell what the mime type of the file is. Only needed when using +++\-\-largefiles with a mimetype= expression. +++.IP +++.IP "\fB\-\-mimeencoding=\fP" +++Tell what the mime encoding of the file is. Only needed when using +++\-\-largefiles with a mimeencoding= expression. +++.IP +++.IP "\fB\-\-explain\fP" +++Display explanation of what parts of the preferred content expression +++match, and which parts don't match. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-preferred\-content(1) +++.PP +++git-annex\-matching\-expression(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-matching-expression.1 ++@@ -0,0 +1,81 @@ +++.TH git-annex-matching-expression 1 +++.SH NAME +++git-annex\-matching\-expression \- specifying a set of files +++.PP +++.SH DESCRIPTION +++The annex.largefiles and annex.addunlocked configurations both use +++expressions that match some files in the working tree. +++.PP +++.SH SYNTAX +++The format of these expressions is similar to +++git-annex\-preferred\-content(1) expressions. +++.PP +++For example: +++.PP +++ largerthan=100kb and not (include=*.c or include=*.h) +++.PP +++This matches large files, but excludes C source files. +++.PP +++The following terms can be used: +++.PP +++.IP "\fBinclude=glob\fP / \fBexclude=glob\fP" +++Specify files to include or exclude. +++.IP +++The glob can contain \fB*\fP and \fB?\fP to match arbitrary characters. +++.IP +++Note that this matches on the whole filename, relative to the top +++of the git directory. So, \fBinclude=foo\fP will include a file \fBfoo\fP +++in the top, but not \fBsubdir/foo\fP. To include both, use +++\fBinclude=foo or include=*/foo\fP +++.IP +++.IP "\fBsmallerthan=size\fP / \fBlargerthan=size\fP" +++Matches only files smaller than, or larger than the specified size. +++.IP +++The size can be specified with any commonly used units, for example, +++"0.5 gb" or "100 KiloBytes" +++.IP +++.IP "\fBmimetype=glob\fP" +++Looks up the MIME type of a file, and checks if the glob matches it. +++.IP +++For example, \fB"mimetype=text/*"\fP will match many varieties of text files, +++including "text/plain", but also "text/x\-shellscript", "text/x\-makefile", +++etc. +++.IP +++The MIME types are the same that are displayed by running \fBfile \-\-mime\-type\fP +++.IP +++This is only available to use when git-annex was built with the +++MagicMime build flag. +++.IP +++.IP "\fBmimeencoding=glob\fP" +++Looks up the MIME encoding of a file, and checks if the glob matches it. +++.IP +++For example, \fB"mimeencoding=binary"\fP will match many kinds of binary +++files. +++.IP +++The MIME encodings are the same that are displayed by running \fBfile \-\-mime\-encoding\fP +++.IP +++This is only available to use when git-annex was built with the +++MagicMime build flag. +++.IP +++.IP "\fBanything\fP" +++Matches any file. +++.IP +++.IP "\fBnothing\fP" +++Matches no files. (Same as "not anything") +++.IP +++.IP "\fBnot expression\fP" +++Inverts what the expression matches. +++.IP +++.IP "\fBand\fP / \fBor\fP / \fB( expression )\fP" +++These can be used to build up more complicated expressions. +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++ +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-matching-options.1 ++@@ -0,0 +1,273 @@ +++.TH git-annex-matching-options 1 +++.SH NAME +++git-annex\-matching\-options \- specifying what to act on +++.PP +++.SH DESCRIPTION +++Many git-annex commands support using these options to specify which +++files they act on. Some of these options can also be used by commands to +++specify which keys they act on. +++.PP +++Arbitrarily complicated expressions can be built using these options. +++For example: +++.PP +++ \-\-include='*.mp3' \-\-and \-( \-\-in=usbdrive \-\-or \-\-in=archive \-) +++.PP +++The above example makes git-annex work on only mp3 files that are present +++in either of two repositories. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-exclude=glob\fP" +++.IP +++Skips files matching the glob pattern. The glob is matched relative to +++the current directory. For example: +++.IP +++ git annex get \-\-exclude='*.mp3' \-\-exclude='subdir/*' +++.IP +++Note that this will not match anything when using \-\-all or \-\-unused. +++.IP +++.IP "\fB\-\-include=glob\fP" +++Skips files not matching the glob pattern. (Same as \fB\-\-not \-\-exclude\fP.) +++For example, to include only mp3 and ogg files: +++.IP +++ git annex get \-\-include='*.mp3' \-\-or \-\-include='*.ogg' +++.IP +++Note that this will not skip anything when using \-\-all or \-\-unused. +++.IP +++.IP "\fB\-\-excludesamecontent=glob\fP" +++Skips a file when there is another file with the same content, +++whose name matches the glob. The glob is matched relative to the current +++directory. +++.IP +++For example, to drop files in the archive directory, but not when the same +++content is used by a file in the work directory: +++.IP +++ git annex drop archive/ \-\-excludesamecontent='work/*' +++.IP +++.IP "\fB\-\-includesamecontent=glob\fP" +++Skips files when there is no other file with the same content +++whose name matches the glob. (Same as \fB\-\-not \-\-excludesamecontent\fP) +++.IP +++For example, if you have inbox and outbox directories, and want to find +++anything in the inbox that has the same content as something in the outbox: +++.IP +++ git annex find inbox \-\-includesamecontent='outbox/*' +++.IP +++.IP "\fB\-\-in=repository\fP" +++Matches only when git-annex believes that the content is present in a +++repository. +++.IP +++The repository should be specified using the name of a configured remote, +++or the UUID or description of a repository. For the current repository, +++use \fB\-\-in=here\fP +++.IP +++Note that this does not check remote repositories to verify that content +++is still present on them. However, when checking the current repository, +++it does verify that content is present in it. +++.IP +++.IP "\fB\-\-in=repository@{date}\fP" +++Matches only when the content was present in a repository on the given +++date. +++.IP +++The date is specified in the same syntax documented in +++gitrevisions(7). Note that this uses the reflog, so dates far in the +++past cannot be queried. +++.IP +++For example, you might need to run \fBgit annex drop .\fP to temporarily +++free up disk space. The next day, you can get back the files you dropped +++using \fBgit annex get . \-\-in=here@{yesterday}\fP +++.IP +++.IP "\fB\-\-expected\-present\fP" +++Matches only when git-annex believes that the content is present +++in the local repository. +++.IP +++This is like \fB\-\-in=here\fP, except it does not verify that the content +++is actually present. So it can be used in situations where the location +++tracking information is known to be out of date. +++.IP +++For example, if a repository is being restored from a backup +++that did not include the git-annex objects, this could be used to get +++back all files that were expected to be in it: +++\fBgit-annex get \-\-expected\-present\fP +++.IP +++.IP "\fB\-\-copies=number\fP" +++Matches only when git-annex believes there are the specified number +++of copies, or more. Note that it does not check remotes to verify that +++the copies still exist. +++.IP +++.IP "\fB\-\-copies=trustlevel:number\fP" +++Matches only when git-annex believes there are the specified number of +++copies, on remotes with the specified trust level. For example, +++\fB\-\-copies=trusted:2\fP +++.IP +++To match any trust level at or higher than a given level, +++use 'trustlevel+'. For example, \fB\-\-copies=semitrusted+:2\fP +++.IP +++.IP "\fB\-\-copies=groupname:number\fP" +++Matches only when git-annex believes there are the specified number of +++copies, on remotes in the specified group. For example, +++\fB\-\-copies=archive:2\fP +++.IP +++.IP "\fB\-\-lackingcopies=number\fP" +++Matches only when git-annex believes that the specified number or +++more additional copies need to be made in order to satisfy numcopies +++settings. +++.IP +++.IP "\fB\-\-approxlackingcopies=number\fP" +++Like lackingcopies, but does not look at .gitattributes annex.numcopies +++settings. This makes it significantly faster. +++.IP +++.IP "\fB\-\-inbackend=name\fP" +++Matches only when content is stored using the specified key\-value +++backend. +++.IP +++.IP "\fB\-\-securehash\fP" +++Matches only when content is hashed using a cryptographically +++secure function. +++.IP +++.IP "\fB\-\-inallgroup=groupname\fP" +++Matches only when git-annex believes content is present in +++all repositories in the specified group. +++.IP +++.IP "\fB\-\-onlyingroup=groupname\fP" +++Matches only when git-annex believes content is present in at least one +++repository that is in the specified group, and is not present in any +++repositories that are not in the specified group. +++.IP +++.IP "\fB\-\-smallerthan=size\fP" +++.IP "\fB\-\-largerthan=size\fP" +++Matches only when the content is is smaller than, or larger than the +++specified size. +++.IP +++The size can be specified with any commonly used units, for example, +++"0.5 gb" or "100 KiloBytes" +++.IP +++.IP "\fB\-\-metadata field=glob\fP" +++Matches only when there is a metadata field attached with a value that +++matches the glob. The values of metadata fields are matched case +++insensitively. +++.IP +++.IP "\fB\-\-metadata fieldvalue\fP" +++.IP "\fB\-\-metadata field<=value\fP / \fB\-\-metadata field>=value\fP" +++Matches only when there is a metadata field attached with a value +++that is less then or greater than the specified value, respectively. +++.IP +++When both values are numbers, the comparison is done numerically. +++When one value is not a number, the values are instead compared +++lexicographically. +++.IP +++(Note that you will need to quote the second parameter to avoid +++the shell doing redirection.) +++.IP +++.IP "\fB\-\-want\-get\fP" +++Matches only when the preferred content settings for the local repository +++make it want to get content. Note that this will match even when +++the content is already present, unless limited with e.g., \fB\-\-not \-\-in=here\fP +++.IP +++.IP "\fB\-\-want\-drop\fP" +++Matches only when the preferred content settings for the local repository +++make it want to drop content. Note that this will match even when +++the content is not present, unless limited with e.g., \fB\-\-not \-\-in=here\fP +++.IP +++Things that this matches will not necessarily be dropped by +++\fBgit-annex drop \-\-auto\fP. This does not check that there are enough copies +++to drop. Also the same content may be used by a file that is not wanted +++to be dropped. +++.IP +++.IP "\fB\-\-want\-get\-by=repository\fP" +++Matches only when the preferred content settings for the specified +++repository make it want to get content. Note that this will match even when +++the content is already present in that repository, unless limited with e.g., +++\fB\-\-not \-\-in=repository\fP +++.IP +++The repository should be specified using the name of a configured remote, +++or the UUID or description of a repository. \fB\-\-want\-get\-by=here\fP +++is the same as \fB\-\-want\-get\fP. +++.IP +++.IP "\fB\-\-want\-drop\-by=repository\fP" +++Matches only when the preferred content settings for the specificed +++repository make it want to drop content. Note that this will match +++even when the content is not present, unless limited with e.g., +++\fB\-\-not \-\-in=repository\fP +++.IP +++The repository should be specified using the name of a configured remote, +++or the UUID or description of a repository. \fB\-\-want\-drop\-by=here\fP +++is the same as \fB\-\-want\-drop\fP. +++.IP +++.IP "\fB\-\-accessedwithin=interval\fP" +++Matches when the content was accessed recently, within the specified time +++interval. +++.IP +++The interval can be in the form "5m" or "1h" or "2d" or "1y", or a +++combination such as "1h5m". +++.IP +++So for example, \fB\-\-accessedwithin=1d\fP matches when the content was +++accessed within the past day. +++.IP +++If the OS or filesystem does not support access times, this will not +++match anything. +++.IP +++.IP "\fB\-\-unlocked\fP" +++Matches annexed files that are unlocked. +++.IP +++.IP "\fB\-\-locked\fP" +++Matches annexed files that are locked. +++.IP +++.IP "\fB\-\-mimetype=glob\fP" +++Looks up the MIME type of a file, and checks if the glob matches it. +++.IP +++For example, \fB\-\-mimetype="text/*"\fP will match many varieties of text files, +++including "text/plain", but also "text/x\-shellscript", "text/x\-makefile", +++etc. +++.IP +++The MIME types are the same that are displayed by running \fBfile \-\-mime\-type\fP +++.IP +++If the file's annexed content is not present, the file will not match. +++.IP +++This is only available to use when git-annex was built with the +++MagicMime build flag. +++.IP +++.IP "\fB\-\-mimeencoding=glob\fP" +++Looks up the MIME encoding of a file, and checks if the glob matches it. +++.IP +++For example, \fB\-\-mimeencoding=binary\fP will match many kinds of binary +++files. +++.IP +++The MIME encodings are the same that are displayed by running \fBfile \-\-mime\-encoding\fP +++.IP +++If the file's annexed content is not present, the file will not match. +++.IP +++This is only available to use when git-annex was built with the +++MagicMime build flag. +++.IP +++.IP "\fB\-\-anything\fP" +++Always matches. One way this can be useful is \fBgit-annex find \-\-anything\fP +++will list all annexed files, whether their content is present or not. +++.IP +++.IP "\fB\-\-nothing\fP" +++Never matches. (Same as \fB\-\-not \-\-anything\fP) +++.IP +++.IP "\fB\-\-not\fP" +++Inverts the next matching option. For example, to match +++when there are less than 3 copies, use \fB\-\-not \-\-copies=3\fP +++.IP +++.IP "\fB\-\-and\fP" +++Requires that both the previous and the next matching option matches. +++The default. +++.IP +++.IP "\fB\-\-or\fP" +++Requires that either the previous, or the next matching option matches. +++.IP +++.IP "\fB\-(\fP" +++Opens a group of matching options. +++.IP +++.IP "\fB\-)\fP" +++Closes a group of matching options. +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-merge.1 ++@@ -0,0 +1,49 @@ +++.TH git-annex-merge 1 +++.SH NAME +++git-annex-merge \- merge changes from remotes +++.PP +++.SH SYNOPSIS +++git annex merge [branch] +++.PP +++.SH DESCRIPTION +++When run without any parameters, this performs the same merging (and merge +++conflict resolution) that is done by the \fBgit-annex pull\fP and \fBgit-annex sync\fP +++commands, but without uploading or downloading any data. +++.PP +++When a branch to merge is specified, this merges it, using the same merge +++conflict resolution as the \fBgit-annex pull\fP command. This is especially useful on +++an adjusted branch, because it applies the same adjustment to the +++branch before merging it. +++.PP +++When annex.resolvemerge is set to false, merge conflict resolution +++will not be done. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-allow\-unrelated\-histories\fP, \fB\-\-no\-allow\-unrelated\-histories\fP" +++.IP +++Passed on to \fBgit merge\fP, to control whether or not to merge +++histories that do not share a common ancestor. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also, the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-pull(1) +++.PP +++git-annex\-sync(1) +++.PP +++git-annex\-adjust(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-metadata.1 ++@@ -0,0 +1,159 @@ +++.TH git-annex-metadata 1 +++.SH NAME +++git-annex-metadata \- sets or gets metadata of a file +++.PP +++.SH SYNOPSIS +++git annex metadata \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++The content of an annexed file can have any number of metadata fields +++attached to it to describe it. Each metadata field can in turn +++have any number of values. +++.PP +++This command can be used to set metadata, or show the currently set +++metadata. +++.PP +++When run without any \-s or \-t parameters, displays the current metadata. +++.PP +++Each metadata field has its own "field\-lastchanged" metadata, which +++contains the date the field was last changed. Unlike other metadata, +++this cannot be directly modified by this command. It is updated +++automatically. +++.PP +++Note that the metadata is attached to git-annex key corresponding to the +++content of a file, not to a particular filename on a particular git branch. +++All files with the same key share the same metadata, which is +++stored in the git-annex branch. If a file is modified, the metadata +++of the previous version will be copied to the new key when git-annex adds +++the modified file. +++.PP +++.SH OPTIONS +++.IP "\fB\-g field\fP / \fB\-\-get field\fP" +++.IP +++Get the value(s) of a single field. +++.IP +++The values will be output one per line, with no other output, so +++this is suitable for use in a script. +++.IP +++.IP "\fB\-s field=value\fP / \fB\-\-set field=value\fP" +++Set a field's value, removing any old values. +++.IP +++.IP "\fB\-s field+=value\fP / \fB\-\-set field+=value\fP" +++Add an additional value, preserving any old values. +++.IP +++.IP "\fB\-s field?=value\fP / \fB\-\-set field?=value\fP" +++Set a value, but only if the field does not already have a value set. +++.IP +++.IP "\fB\-s field\-=value\fP / \fB\-\-set field\-=value\fP" +++Remove a value from a field, leaving any other values that the field has +++set. +++.IP +++.IP "\fB\-r field\fP / \fB\-\-remove field\fP" +++Remove all current values of the field. +++.IP +++.IP "\fB\-t tag\fP / \fB\-\-tag tag\fP" +++Set a tag. Note that a tag is just a value of the "tag" field. +++.IP +++.IP "\fB\-u tag\fP / \fB\-\-unset tag\fP" +++Unset a tag. +++.IP +++.IP "\fB\-\-remove\-all\fP" +++Remove all metadata from the specified files. +++.IP +++When a file is modified and the new version added, git-annex will copy +++over the metadata from the old version of the file. In situations where +++you don't want that copied metadata, you can use this option to remove +++it. +++.IP +++.IP "\fB\-\-force\fP" +++By default, \fBgit annex metadata\fP refuses to recursively set metadata +++throughout the files in a directory. This option enables such recursive +++setting. +++.IP +++.IP "matching options" +++The git-annex\-matching\-options(1) +++can be used to control what to act on. +++.IP +++.IP "\fB\-\-all\fP \fB\-A\fP" +++Specify instead of a file to get/set metadata on all known keys. +++.IP +++.IP "\fB\-\-branch=ref\fP" +++Specify instead of a file to get/set metadata on all files in the +++specified branch or treeish. +++.IP +++.IP "\fB\-\-unused\fP" +++Specify instead of a file to get/set metadata on +++files found by last run of git-annex unused. +++.IP +++.IP "\fB\-\-key=keyname\fP" +++Specify instead of a file to get/set metadata of the specified key. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output (and input). Each line is a JSON object. +++.IP +++The format of the JSON objects changed in git-annex version 6.20160726. +++.IP +++Example of the new format: +++.IP +++ {"command":"metadata","file":"foo","key":"...","fields":{"author":["bar"],...},"note":"...","success":true} +++.IP +++Example of the old format, which lacks the inner fields object: +++.IP +++ {"command":"metadata","file":"foo","key":"...","author":["bar"],...,"note":"...","success":true} +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "\fB\-\-batch\fP" +++Enables batch mode, which can be used to both get, store, and unset +++metadata for multiple files or keys. +++.IP +++Batch currently only supports JSON input. So, you must +++enable \fB\-\-json\fP along with \fB\-\-batch\fP. +++.IP +++In batch mode, git-annex reads lines from stdin, which contain +++JSON objects. It replies to each input annexed file +++with an output JSON object. (But if the file is not an annexed file, +++an empty line will be output.) +++.IP +++The format of the JSON sent to git-annex can be the same as the JSON that +++it outputs. Or, a simplified version. Only the "file" (or "key") field +++is actually necessary. +++.IP +++For example, to get the current metadata of file foo: +++.IP +++ {"file":"foo"} +++.IP +++To get the current metadata of the key k: +++ +++ {"key":"k"} +++.IP +++Any metadata fields included in the JSON object will be stored, +++replacing whatever values the fields had before. +++To unset a field, include it with an empty list of values. +++.IP +++To change the author of file foo to bar: +++.IP +++ {"file":"foo","fields":{"author":["bar"]}} +++.IP +++To remove the author of file foo: +++.IP +++ {"file":"foo","fields":{"author":[]}} +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH EXAMPLES +++To set some tags on a file and also its author: +++.PP +++ git annex metadata annexscreencast.ogv \-t video \-t screencast \-s author+=Alice +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-view(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-migrate.1 ++@@ -0,0 +1,100 @@ +++.TH git-annex-migrate 1 +++.SH NAME +++git-annex-migrate \- switch data to different backend +++.PP +++.SH SYNOPSIS +++git annex migrate \fB[path ...]\fP +++.PP +++git annex migrate \-\-update +++.PP +++.SH DESCRIPTION +++Changes the specified annexed files to use the default key\-value backend +++(or the one specified with \fB\-\-backend\fP). Only files whose content +++is currently present are migrated. +++.PP +++Note that the content is also still stored using the old keys after +++migration. When possible, hard links are used to avoid that taking up +++extra disk space. Use \fBgit annex unused\fP to find and remove the old keys. +++.PP +++Normally, nothing will be done to specified files that are already using +++the new backend. However, if a backend changes the information it uses to +++construct a key, this can also be used to migrate files to use the new key +++format. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-update\fP" +++.IP +++This updates the local repository for migrations that were performed +++elsewhere. Only new migrations since the last time this was run will +++be performed. +++.IP +++This does not modify the working tree, but only hard links +++(or in some cases copies) annex objects to their new keys. +++.IP +++\fBgit-annex pull\fP and \fBgit-annex sync \-\-content\fP automatically do this, +++unless the \fBannex.syncmigrations\fP config is set to false. +++.IP +++Note that older versions of git-annex did not record migrations in a +++way that this can use. Migrations performed with those older versions +++had to be manually run in each clone of the repository. +++.IP +++.IP "\fB\-\-apply\fP" +++This applies all recorded migrations to the local repository. It is the +++non\-incremental form of \fB\-\-update\fP. +++.IP +++One situation where this can be useful is when git-annex migrate +++\-\-update has been run, but since then un\-migrated +++objects have entered the repository. Using this option ensures that +++any such objects get migrated. +++.IP +++Note that older versions of git-annex did not record migrations in a +++way that this can use. Migrations performed with those older versions +++had to be manually run in each clone of the repository. +++.IP +++.IP "\fB\-\-backend\fP" +++Specify the new key\-value backend to use for migrated data. +++.IP +++.IP "\fB\-\-force\fP" +++Force migration of keys that are already using the new backend. +++.IP +++.IP "file matching options" +++The git-annex\-matching\-options(1) +++can be used to specify files to migrate. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.IP "\fB\-\-remove\-size\fP" +++Keys often include the size of their content, which is generally a useful +++thing. In fact, this command defaults to adding missing size information +++to keys in most migrations. With this option, the size information is +++removed instead. +++.IP +++One use of this option is to convert URL keys that were added +++by \fBgit-annex addurl \-\-fast\fP to ones that would have been added if +++that command was run with the \fB\-\-relaxed\fP option. Eg: +++.IP +++ git-annex migrate \-\-remove\-size \-\-backend=URL somefile +++.IP +++To add back the size to an URL key, use this: +++.IP +++git-annex migrate \-\-backend=URL somefile +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-upgrade(1) +++.PP +++git-annex\-backend(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-mincopies.1 ++@@ -0,0 +1,44 @@ +++.TH git-annex-mincopies 1 +++.SH NAME +++git-annex-mincopies \- configure minimum number of copies +++.PP +++.SH SYNOPSIS +++git annex mincopies \fBN\fP +++.PP +++.SH DESCRIPTION +++Tells git-annex how many copies it is required to preserve of files, over all +++repositories. The default is 1. +++.PP +++Run without a number to get the current value. +++.PP +++This configuration is stored in the git-annex branch, so it will be seen +++by all clones of the repository. It can be overridden on a per\-file basis +++by the annex.mincopies setting in .gitattributes files, or can be +++overridden temporarily with the \-\-mincopies option. +++.PP +++This supplements the git-annex\-numcopies(1) setting. +++In unusual situations, involving special remotes that do not support +++locking, and concurrent drops of the same content from multiple +++repositories, git-annex may violate the numcopies setting. +++In these unusual situations, git-annex ensures that the number of copies +++never goes below mincopies. +++.PP +++It is a good idea to not only rely on only setting mincopies. Set +++numcopies as well, to a larger number, and keep mincopies at the +++bare minimum you're comfortable with. Setting mincopies to a large +++number, rather than setting numcopies will in some cases prevent +++droping content in entirely safe situations. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++git-annex\-numcopies(1) +++git-annex\-config(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-mirror.1 ++@@ -0,0 +1,85 @@ +++.TH git-annex-mirror 1 +++.SH NAME +++git-annex-mirror \- mirror content of files to/from another repository +++.PP +++.SH SYNOPSIS +++git annex mirror \fB[path ...] [\-\-to=remote|\-\-from=remote]\fP +++.PP +++.SH DESCRIPTION +++This causes a destination repository to mirror a source repository. +++.PP +++Each specified file in the source repository is mirrored to the destination +++repository. If a file's content is present in the source repository, it is +++copied to the destination repository. If a file's content is not present in +++the source repository, it will be dropped from the destination repository +++when the numcopies setting allows. +++.PP +++Note that mirror does not sync the git repository, but only the file +++contents. Use git-annex\-sync(1) for that. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-to=remote\fP" +++.IP +++Use the local repository as the source repository, and mirror its contents +++to the remote. +++.IP +++.IP "\fB\-\-from=remote\fP" +++Use the remote as the source repository, and mirror its contents to the local +++repository. +++.IP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++Enables parallel transfers with up to the specified number of jobs +++running at once. For example: \fB\-J10\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++.IP "\fB\-\-all\fP \fB\-A\fP" +++Mirror all objects stored in the git annex, not only objects used by +++currently existing files. +++.IP +++However, this bypasses checking the .gitattributes annex.numcopies +++setting when dropping files. +++.IP +++This is the default behavior when running git-annex in a bare repository. +++.IP +++.IP "\fB\-\-branch=ref\fP" +++Operate on files in the specified branch or treeish. +++.IP +++Like \-\-all, this bypasses checking the .gitattributes annex.numcopies +++setting when dropping files. +++.IP +++.IP "\fB\-\-unused\fP" +++Operate on files found by last run of git-annex unused. +++.IP +++.IP "\fB\-\-failed\fP" +++Operate on files that have recently failed to be transferred. +++.IP +++.IP "matching options" +++The git-annex\-matching\-options(1) +++can be used to control what to mirror. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++Note that unlike all other commands that support \fB\-\-json\fP, this command +++outputs different types of json objects in different circumstances. +++.IP +++.IP "\fB\-\-json\-progress\fP" +++Include progress objects in JSON output. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-sync(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-move.1 ++@@ -0,0 +1,123 @@ +++.TH git-annex-move 1 +++.SH NAME +++git-annex-move \- move content of files to/from another repository +++.PP +++.SH SYNOPSIS +++git annex move \fB[path ...] [\-\-from=remote|\-\-to=remote|\-\-to=here]\fP +++.PP +++.SH DESCRIPTION +++Moves the content of files from or to another remote. +++.PP +++With no parameters, operates on all annexed files in the current directory. +++Paths of files or directories to operate on can be specified. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-from=remote\fP" +++.IP +++Move the content of files from the specified remote to the local repository. +++.IP +++.IP "\fB\-\-to=remote\fP" +++Move the content of files from the local repository to the specified remote. +++.IP +++.IP "\fB\-\-to=here\fP" +++Move the content of files from all reachable remotes to the local +++repository. +++.IP +++.IP "\fB\-\-from=remote1 \-\-to=remote2\fP" +++Move the content of files that are in remote1 to remote2. Does not change +++what is stored in the local repository. +++.IP +++This is implemented by first downloading the content from remote1 to the +++local repository (if not already present), then sending it to remote2, and +++then deleting the content from the local repository (if it was not present +++to start with). +++.IP +++.IP "\fB\-\-from\-anywhere \-\-to=remote\fP" +++Move to the remote files from the local repository and from all +++reachable remotes. +++.IP +++.IP "\fB\-\-force\fP" +++Override numcopies and required content checking, and always remove +++files from the source repository once the destination repository has a +++copy. +++.IP +++Note that, even without this option, you can move the content of a file +++from one repository to another when numcopies is not satisfied, as long +++as the move does not result in there being fewer copies. +++.IP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++Enables parallel transfers with up to the specified number of jobs +++running at once. For example: \fB\-J10\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++Note that when using \-\-from with \-\-to, twice this many jobs will +++run at once, evenly split between the two remotes. +++.IP +++.IP "\fB\-\-all\fP \fB\-A\fP" +++Rather than specifying a filename or path to move, this option can be +++used to move all available versions of all files. +++.IP +++This is the default behavior when running git-annex in a bare repository. +++.IP +++.IP "\fB\-\-branch=ref\fP" +++Operate on files in the specified branch or treeish. +++.IP +++.IP "\fB\-\-unused\fP" +++Operate on files found by last run of git-annex unused. +++.IP +++.IP "\fB\-\-failed\fP" +++Operate on files that have recently failed to be transferred. +++.IP +++.IP "\fB\-\-key=keyname\fP" +++Use this option to move a specified key. +++.IP +++.IP "matching options" +++The git-annex\-matching\-options(1) +++can be used to control what to move. +++.IP +++.IP "\fB\-\-batch\fP" +++Enables batch mode, in which lines containing names of files to move +++are read from stdin. +++.IP +++As each specified file is processed, the usual progress output is +++displayed. If a file's content does not need to be moved, +++or it does not match specified matching options, or it +++is not an annexed file, a blank line is output in response instead. +++.IP +++Since the usual output while moving a file is verbose and not +++machine\-parseable, you may want to use \-\-json in combination with +++\-\-batch. +++.IP +++.IP "\fB\-\-batch\-keys\fP" +++This is like \fB\-\-batch\fP but the lines read from stdin are parsed as keys. +++.IP +++.IP "\fB\-z\fP" +++Makes batch input be delimited by nulls instead of the usual newlines. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-progress\fP" +++Include progress objects in JSON output. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-get(1) +++.PP +++git-annex\-copy(1) +++.PP +++git-annex\-drop(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-multicast.1 ++@@ -0,0 +1,88 @@ +++.TH git-annex-multicast 1 +++.SH NAME +++git-annex-multicast \- multicast file distribution +++.PP +++.SH SYNOPSIS +++git annex multicast [options] +++.PP +++.SH DESCRIPTION +++Multicast allows files to be broadcast to multiple receivers, +++typically on a single local network. +++.PP +++The uftp program is used for multicast. +++ +++.PP +++.SH OPTIONS +++.IP "\fB\-\-gen\-address\fP" +++.IP +++Generates a multicast encryption key and stores a corresponding multicast +++address to the git-annex branch. +++.IP +++.IP "\fB\-\-send [file]\fP" +++Sends the specified files to any receivers whose multicast addresses +++are stored in the git-annex branch. +++.IP +++When no files are specified, all annexed files in the current directory +++and subdirectories are sent. +++.IP +++The git-annex\-matching\-options(1) can be used to control which files to +++send. For example: +++.IP +++ git annex multicast send . \-\-not \-\-copies 2 +++.IP +++.IP "\fB\-\-receive\fP" +++Receives files from senders whose multicast addresses +++are stored in the git-annex brach. +++.IP +++As each file is received, its filename is displayed. This is the filename +++that the sender used; the local working tree may use a different name +++for the file, or not contain a link to the file. +++.IP +++This command continues running, until it is interrupted by you pressing +++ctrl\-c. +++.IP +++Note that the configured annex.diskreserve is not honored by this +++command, because \fBuftpd\fP receives the actual files, and can receive +++any size file. +++.IP +++.IP "\fB\-\-uftp\-opt=option\fP \fB\-Uoption\fP" +++Pass an option on to the uftp/uftpd command. May be specified multiple +++times. +++.IP +++For example, to broadcast at 50 Mbps: +++.IP +++ git annex multicast send \-U\-R \-U50000 +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH EXAMPLE +++Suppose a teacher wants to multicast files to students in a classroom. +++.PP +++This assumes that the teacher and students have cloned a git-annex +++repository, and both can push changes to its git-annex branch, +++or otherwise push changes to each\-other. +++.PP +++First, the teacher runs \fBgit annex multicast \-\-gen\-address; git annex sync\fP +++.PP +++Next, students each run \fBgit annex multicast \-\-gen\-address; git annex sync\fP +++.PP +++Once all the students have generated addresses, the teacher runs +++\fBgit annex sync\fP once more. (Now the students all have received the +++teacher's address, and the teacher has received all the student's addresses.) +++.PP +++Next students each run \fBgit annex multicast \-\-receive\fP +++.PP +++Finally, once the students are all listening (ahem), teacher runs +++\fBgit annex multicast \-\-send\fP +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++uftp(1) +++.PP +++uftpd(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-numcopies.1 ++@@ -0,0 +1,41 @@ +++.TH git-annex-numcopies 1 +++.SH NAME +++git-annex-numcopies \- configure desired number of copies +++.PP +++.SH SYNOPSIS +++git annex numcopies \fBN\fP +++.PP +++.SH DESCRIPTION +++Tells git-annex how many copies it should preserve of files, over all +++repositories. The default is 1. +++.PP +++Run without a number to get the current value. +++.PP +++This configuration is stored in the git-annex branch, so it will be seen +++by all clones of the repository. It can be overridden on a per\-file basis +++by the annex.numcopies setting in .gitattributes files, or can be +++overridden temporarily with the \-\-numcopies option. +++.PP +++When git-annex is asked to drop a file, it first verifies that the +++number of copies can be satisfied among all the other +++repositories that have a copy of the file. +++.PP +++In unusual situations, involving special remotes that do not support +++locking, and concurrent drops of the same content from multiple +++repositories, git-annex may violate the numcopies setting. It still +++guarantees at least 1 copy is preserved. This can be configured by +++using git-annex\-mincopies(1) +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++git-annex\-mincopies(1) +++git-annex\-config(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-oldkeys.1 ++@@ -0,0 +1,48 @@ +++.TH git-annex-oldkeys 1 +++.SH NAME +++git-annex-oldkeys \- list keys used for old versions of files +++.PP +++.SH SYNOPSIS +++git annex oldkeys \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++Lists keys used for old versions of the specified files or directories. +++.PP +++The output from this command can be piped into a command like +++\fBgit-annex drop \-\-batch\-keys\fP +++.PP +++The keys are listed in order from newest to oldest. +++.PP +++When listing old keys for a directory, it will include keys used by deleted +++files that were in that directory in past commits. +++.PP +++.SH OPTIONS +++.IP "\-\-unchecked" +++.IP +++By default this command does not list a key that is also used by any +++file in the currently checked out branch. This option makes it also +++list such keys. +++.IP +++The default behavior avoids surprises when dropping listed keys. +++This option can be useful when eg copying all old versions of a file to a +++remote. +++.IP +++.IP "\-\-revision\-range=value" +++Only list old keys used in the specified range of revisions. +++This works the same as the revision range option of \fBgit log\fP. +++See gitrevisions(7) for documentation about the format of this option. +++.IP +++For example, to list only keys used since the tag v1.0, use +++\fB\-\-revision\-range=v1.0..HEAD\fP +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-unused(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-p2p.1 ++@@ -0,0 +1,74 @@ +++.TH git-annex-p2p 1 +++.SH NAME +++git-annex-p2p \- configure peer\-2\-peer links between repositories +++.PP +++.SH SYNOPSIS +++git annex p2p [options] +++.PP +++.SH DESCRIPTION +++This command can be used to link git-annex repositories over peer\-2\-peer +++networks. +++.PP +++Currently, the only P2P network supported by git-annex is Tor hidden +++services. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-pair\fP" +++.IP +++Run this in two repositories to pair them together over the P2P network. +++.IP +++This will print out a code phrase, like "3\-mango\-elephant", and +++will prompt for you to enter the code phrase from the other repository. +++.IP +++Once code phrases have been exchanged, the two repositories will +++be paired. A git remote will be created for the other repository, +++with a name like "peer1". +++.IP +++This uses [Magic Wormhole](https://github.com/warner/magic\-wormhole) +++to verify the code phrases and securely communicate the P2P addresses of +++the repositories, so you will need it installed on both computers that are +++being paired. +++.IP +++This feature was present in a broken form in git-annex versions +++before version 6.20180705. Make sure that a new enough git-annex +++is installed on both computers that are being paired. +++.IP +++.IP "\fB\-\-gen\-addresses\fP" +++Generates addresses that can be used to access this git-annex repository +++over the available P2P networks. The address or addresses is output to +++stdout. +++.IP +++Note that anyone who knows these addresses can access your +++repository over the P2P networks. +++.IP +++This can be run repeatedly, in order to give different addresses +++out to different people. +++.IP +++.IP "\fB\-\-link\fP" +++Sets up a git remote that is accessed over a P2P network. +++.IP +++This will prompt for an address to be entered; you should paste in the +++address that was generated by \-\-gen\-addresses in the remote repository. +++.IP +++Defaults to making the git remote be named "peer1", "peer2", +++etc. This can be overridden with the \fB\-\-name\fP option. +++.IP +++.IP "\fB\-\-name\fP" +++Specify a name to use when setting up a git remote with \fB\-\-link\fP +++or \fB\-\-pair\fP. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-enable\-tor(1) +++.PP +++git-annex\-remotedaemon(1) +++.PP +++wormhole(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-post-receive.1 ++@@ -0,0 +1,32 @@ +++.TH git-annex-post-receive 1 +++.SH NAME +++git-annex-post\-receive \- run by git post\-receive hook +++.PP +++.SH SYNOPSIS +++git annex post\-receive +++.PP +++.SH DESCRIPTION +++This is meant to be called from git's post\-receive hook. \fBgit annex init\fP +++automatically creates a post\-receive hook using this. +++.PP +++When a repository is configured with receive.denyCurrentBranch=updateInstead, +++pushes to the repository update its work tree. However, that does not work +++for repositories that have an adjusted branch checked +++out. The hook updates the work tree when run in such a repository, +++the same as running \fBgit-annex merge\fP would. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-adjust(1) +++.PP +++git-annex\-merge(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-pre-commit.1 ++@@ -0,0 +1,28 @@ +++.TH git-annex-pre-commit 1 +++.SH NAME +++git-annex-pre\-commit \- run by git pre\-commit hook +++.PP +++.SH SYNOPSIS +++git annex pre\-commit \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++This is meant to be called from git's pre\-commit hook. \fBgit annex init\fP +++automatically creates a pre\-commit hook using this. +++.PP +++Fixes up symlinks that are staged as part of a commit, to ensure they +++point to annexed content. +++.PP +++When in a view, updates metadata to reflect changes +++made to files in the view. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-preferred-content.1 ++@@ -0,0 +1,291 @@ +++.TH git-annex-preferred-content 1 +++.SH NAME +++git-annex\-preferred\-content \- which files are wanted in a repository +++.PP +++.SH DESCRIPTION +++Each repository has a preferred content setting, which specifies content +++that the repository wants to have present. These settings can be configured +++using \fBgit annex vicfg\fP or \fBgit annex wanted\fP. +++They are used by the \fB\-\-auto\fP option, by \fBgit annex sync \-\-content\fP, +++and by the git-annex assistant. +++.PP +++While preferred content expresses a preference, it can be overridden +++by simply using \fBgit annex drop\fP. On the other hand, required content +++settings are enforced; \fBgit annex drop\fP will refuse to drop a file if +++doing so would violate its required content settings. A repository's +++required content can be configured using \fBgit annex vicfg\fP or +++\fBgit annex required\fP. +++.PP +++.SH SYNTAX +++Preferred content expressions use a similar syntax to +++the git-annex\-matching\-options(1), without the dashes. +++For example: +++.PP +++ exclude=archive/* and (include=*.mp3 or smallerthan=1mb) +++.PP +++The idea is that you write an expression that files are matched against. If +++a file matches, the repository wants to store its content. If it doesn't, +++the repository wants to drop its content (if there are enough copies +++elsewhere to allow removing it). +++.PP +++.SH EXPRESSIONS +++.IP "\fBinclude=glob\fP / \fBexclude=glob\fP" +++.IP +++Match files to include, or exclude. +++.IP +++While the command\-line options \-\-include=glob and \-\-exclude=glob match +++files relative to the current directory, preferred content expressions +++match files relative to the top of the git repository. +++.IP +++A glob is something like \fBfoo.*\fP or \fBb?r\fP. +++Globs can also contain character classes, +++like \fBfoo[Bb]ar\fP, as well as additional POSIX character classes like +++\fB[[:space:]]\fP. Which is useful, since a glob in a preferred content +++expression cannot contain spaces. See the \fBglob(7)\fP man page for more +++about globs. +++.IP +++For example, suppose you put files into \fBarchive\fP directories +++when you're done with them. Then you could configure your laptop to prefer +++to not retain those files, like this: \fBexclude=*/archive/*\fP +++.IP +++When a subdirectory is being exported or imported to a special remote (see +++git-annex\-export(1)) and git-annex\-import(1), these match relative +++to the top of the subdirectory. +++.IP +++Note that, when a command is run with the \fB\-\-all\fP option, or in a bare +++repository, there is no filename associated with an annexed object, +++and so "include=" and "exclude=" will not match. +++.IP +++.IP "\fBcopies=number\fP" +++Matches only files that git-annex believes to have the specified number +++of copies, or more. Note that it does not check remotes to verify that +++the copies still exist. +++.IP +++To decide if content should be dropped, git-annex evaluates the preferred +++content expression under the assumption that the content has *already* been +++dropped. If the content would not be wanted then, the drop can be done. +++So, for example, \fBcopies=2\fP in a preferred content expression lets +++content be dropped only when there are currently 3 copies of it, including +++the repo it's being dropped from. This is different than running git annex +++drop \-\-copies=2, which will drop files that currently have 2 copies. +++.IP +++.IP "\fBcopies=trustlevel:number\fP" +++Matches only files that git-annex believes have the specified number +++copies, on remotes with the specified trust level. For example, +++\fBcopies=trusted:2\fP +++.IP +++To match any trust level at or higher than a given level, +++use \fBtrustlevel+\fP. For example, \fBcopies=semitrusted+:2\fP +++.IP +++.IP "\fBcopies=groupname:number\fP" +++Matches only files that git-annex believes have the specified number of +++copies, on remotes in the specified group. For example, +++\fBcopies=archive:2\fP +++.IP +++Preferred content expressions have no equivalent to the \fB\-\-in\fP +++option, but groups can accomplish similar things. You can add +++repositories to groups, and match against the groups in a +++preferred content expression. So rather than \fB\-\-in=usbdrive\fP, +++put all the USB drives into a "transfer" group, and use +++\fBcopies=transfer:1\fP +++.IP +++.IP "\fBlackingcopies=number\fP" +++Matches only files that git-annex believes need the specified number or +++more additional copies to be made in order to satisfy their numcopies +++settings. +++.IP +++.IP "\fBapproxlackingcopies=number\fP" +++Like lackingcopies, but does not look at .gitattributes annex.numcopies +++settings. This makes it significantly faster. +++.IP +++.IP "\fBinbackend=backendname\fP" +++Matches only files whose content is stored using the specified key\-value +++backend. +++.IP +++See git-annex\-backends(1) for information about available backends. +++.IP +++.IP "\fBsecurehash\fP" +++Matches only files whose content is hashed using a cryptographically +++secure function. +++.IP +++.IP "\fBinallgroup=groupname\fP" +++Matches only files that git-annex believes are present in all repositories +++in the specified group. +++.IP +++.IP "\fBonlyingroup=groupname\fP" +++Matches files that git-annex believes are present in at least one +++repository that is in the specified group, and are not present in any +++repositories that are not in the specified group. +++.IP +++.IP "\fBsmallerthan=size\fP / \fBlargerthan=size\fP" +++Matches only files whose content is smaller than, or larger than the +++specified size. +++.IP +++The size can be specified with any commonly used units, for example, +++"0.5 gb" or "100 KiloBytes" +++.IP +++.IP "\fBmetadata=field=glob\fP" +++Matches only files that have a metadata field attached with a value that +++matches the glob. The values of metadata fields are matched case +++insensitively. +++.IP +++A glob is something like \fBfoo.*\fP or \fBb?r\fP. +++Globs can also contain character classes, +++like \fBfoo[Bb]ar\fP, as well as additional POSIX character classes like +++\fB[[:space:]]\fP. Which is useful, since a glob in a preferred content +++expression cannot contain spaces. See the \fBglob(7)\fP man page for more +++about globs. +++.IP +++To match a tag "done", use \fBmetadata=tag=done\fP +++.IP +++To match author metadata, use \fBmetadata=author=*Smith\fP +++.IP +++.IP "\fBmetadata=fieldnumber\fP " +++.IP "\fBmetadata=field<=number\fP / \fBmetadata=field>=number\fP" +++Matches only files that have a metadata field attached with a value that +++is a number and is less than or greater than the specified number. +++.IP +++To match PDFs with between 100 and 200 pages (assuming something has set +++that metadata), use \fBmetadata=pagecount>=100 and metadata=pagecount<=200\fP +++.IP +++.IP "\fBpresent\fP" +++Makes content be wanted if it's present, but not otherwise. +++.IP +++This leaves it up to you to use git-annex manually +++to move content around. You can use this to avoid preferred content +++settings from affecting a subdirectory. For example: +++\fBauto/* or (include=ad\-hoc/* and present)\fP +++.IP +++Note that \fBnot present\fP is a very bad thing to put in a preferred content +++expression. It'll make it want to get content that's not present, and +++drop content that is present! Don't go there.. +++.IP +++.IP "\fBinpreferreddir\fP" +++Makes content be preferred if it's in a directory (located anywhere +++in the tree) with a particular name. +++.IP +++The name of the directory can be configured using +++\fBgit annex enableremote $remote preferreddir=$dirname\fP +++.IP +++(If no directory name is configured, it uses "public" by default.) +++.IP +++Note that, when a command is run with the \fB\-\-all\fP option, or in a bare +++repository, there is no filename associated with an annexed object, +++and so "inpreferreddir" will not match. +++.IP +++.IP "\fBstandard\fP" +++git-annex comes with some built\-in preferred content expressions, that +++can be used with repositories that are in some standard groups +++such as "client" and "transfer". +++.IP +++When a repository is in exactly one such group, you can use the "standard" +++keyword in its preferred content expression, to match whatever content +++the group's expression matches. +++.IP +++Most often, the whole preferred content expression is simply "standard". +++But, you can do more complicated things, for example: +++\fBstandard or include=otherdir/*\fP +++.IP +++.IP "\fBgroupwanted\fP" +++The "groupwanted" keyword can be used to refer to a preferred content +++expression that is associated with a group, as long as there is exactly +++one such expression amoung the groups a repository is in. This is like +++the "standard" keyword, but you can configure the preferred content +++expressions using \fBgit annex groupwanted\fP. +++.IP +++When writing a groupwanted preferred content expression, +++you can use all the keywords documented here, including "standard". +++(But not "groupwanted".) +++.IP +++For example, to make a variant of the standard client preferred content +++expression that does not want files in the "out" directory, you +++could run: \fBgit annex groupwanted client "standard and exclude=out/*"\fP +++.IP +++Then repositories that are in the client group and have their preferred +++content expression set to "groupwanted" will use that, while +++other client repositories that have their preferred content expression +++set to "standard" will use the standard expression. +++.IP +++Or, you could make a new group, with your own custom preferred content +++expression tuned for your needs, and every repository you put in this +++group and make its preferred content be "groupwanted" will use it. +++.IP +++For example, the archive group only wants to archive 1 copy of each file, +++spread among every repository in the group. +++Here's how to configure a group named redundantarchive, that instead +++wants to contain 3 copies of each file: +++.IP +++ git annex groupwanted redundantarchive "not (copies=redundantarchive:3)" +++ for repo in foo bar baz; do +++ git annex group $repo redundantarchive +++ git annex wanted $repo groupwanted +++ done +++.IP +++.IP "\fBunused\fP" +++Matches only keys that \fBgit annex unused\fP has determined to be unused. +++.IP +++This is related the the \-\-unused option. +++However, putting \fBunused\fP in a preferred content expression +++doesn't make git-annex consider those unused keys. So when git-annex is +++only checking preferred content expressions against files in the +++repository (which are obviously used), \fBunused\fP in a preferred +++content expression won't match anything. +++.IP +++So when is \fBunused\fP useful in a preferred content expression? +++.IP +++Using \fBgit annex sync \-\-content \-\-all\fP will operate on all files, +++including unused ones, and take \fBunused\fP in preferred content expressions +++into account. +++.IP +++The git-annex assistant periodically scans for unused files, and +++moves them to some repository whose preferred content expression +++says it wants them. (Or, if annex.expireunused is set, it may just delete +++them.) +++.IP +++.IP "\fBanything\fP" +++Always matches. +++.IP +++.IP "\fBnothing\fP" +++Never matches. (Same as "not anything") +++.IP +++.IP "\fBnot expression\fP" +++Inverts what the expression matches. For example, \fBnot include=archive/*\fP +++is the same as \fBexclude=archive/*\fP +++.IP +++.IP "\fBand\fP / \fBor\fP / \fB( expression )\fP" +++These can be used to build up more complicated expressions. +++.IP +++.SH TESTING +++To check at the command line which files are matched by a repository's +++preferred content settings, you can use the \-\-want\-get and \-\-want\-drop +++options. +++.PP +++For example, git annex find \-\-want\-get \-\-not \-\-in . will find all the files +++that git annex get \-\-auto will want to get, and git annex find \-\-want\-drop \-\-in +++\&. will find all the files that git annex drop \-\-auto will want to drop. +++.PP +++The \-\-explain option can be used to understand why a complex preferred +++content expression matches or fails to match. The expression will +++be displayed, with each term followed by "[TRUE]" or "[FALSE]" to indicate +++the value. Irrelevant terms will be ommitted from the explanation, +++for example \fB"exclude=* and copies=1"\fP will be displayed as +++\fB"exclude=*[FALSE]"\fP +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-vicfg(1) +++.PP +++git-annex\-wanted(1) +++.PP +++ +++.PP +++ +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++ +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-proxy.1 ++@@ -0,0 +1,22 @@ +++.TH git-annex-proxy 1 +++.SH NAME +++git-annex-proxy \- safely bypass direct mode guard (deprecated) +++.PP +++.SH SYNOPSIS +++git annex proxy \fB\-\- git cmd [options]\fP +++.PP +++.SH DESCRIPTION +++This command was for use in a direct mode repository, and such +++repositories are automatically updated to use an adjusted unlocked branch. +++So, there's no reason to use this command any longer. +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-direct(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-pull.1 ++@@ -0,0 +1,139 @@ +++.TH git-annex-pull 1 +++.SH NAME +++git-annex-pull \- pull content from remotes +++.PP +++.SH SYNOPSIS +++git annex pull \fB[remote ...]\fP +++.PP +++.SH DESCRIPTION +++This command pulls content from remotes. It downloads +++both git repository content, and the content of annexed files. +++Like \fBgit pull\fP, it merges changes into the current branch. +++.PP +++You can use \fBgit pull\fP and \fBgit-annex get\fP by hand to do the same thing as +++this command, but this command handles several details, including making +++sure that the git-annex branch is fetched from the remote. +++.PP +++Some special remotes contain a tree of files that can be imported, +++and this command can be used to pull from those remotes as +++well as regular git remotes. See git-annex\-import(1) for details +++about how those special remotes work. In order for this command to import +++from a special remote, \fBremote..annex\-tracking\-branch\fP also must +++be configured, and have the same value as the currently checked out branch. +++.PP +++When git-annex\-adjust(1) has been used to check out an adjusted branch, +++this command will also pull changes from the parent branch. +++.PP +++When git-annex\-view(1) has been used to check out a view branch, +++this command will update the view branch to reflect any changes +++to the parent branch or metadata. +++.PP +++When git-annex\-migrate(1) has been used in other repositories, +++this updates the content in the local repository for those migrations as well. +++.PP +++Normally this tries to download the content of each annexed file, +++from any remote that it's pulling from that has a copy. +++To control which files it downloads, configure the preferred +++content of the local repository. It will also drop files from a +++remote that are not preferred content of the remote. +++See git-annex\-preferred\-content(1). +++.PP +++.SH OPTIONS +++.IP "\fB[remote]\fP" +++.IP +++By default this command pulls from all available remotes, except for remotes +++that have \fBremote..annex\-pull\fP (or \fBremote..annex\-sync\fP) +++set to false. +++.IP +++By specifying the names of remotes (or remote groups), you can control +++which ones to pull from. +++.IP +++.IP "\fB\-\-fast\fP" +++Only pull with the remotes with the lowest annex\-cost value configured. +++.IP +++When a list of remotes (or remote groups) is provided, it picks from +++amoung those, otherwise it picks from amoung all remotes. +++.IP +++.IP "\fB\-\-only\-annex\fP \fB\-a\fP, \fB\-\-not\-only\-annex\fP" +++Only pull the git-annex branch and annexed content from remotes, +++not other git branches. +++.IP +++The \fBannex.synconlyannex\fP configuration can be set to true to make +++this be the default behavior. To override such a setting, use +++\fB\-\-not\-only\-annex\fP. +++.IP +++When this is combined with \-\-no\-content, only the git-annex branch +++will be pulled. +++.IP +++.IP "\fB\-\-no\-content, \fP\-g\fB, \fP\-\-content" +++Use \fB\-\-no\-content\fP or \fB\-g\fP to avoid downloading (and dropping) +++the content of annexed files, and also prevent doing any migrations of +++content. +++.IP +++If you often use \fB\-\-no\-content\fP, you can set the \fBannex.synccontent\fP +++configuration to false to prevent downloading content by default. +++The \fB\-\-content\fP option overrides that configuration. +++.IP +++To only prevent only migrations of content, you can set the +++\fBannex.syncmigrations\fP configuration to false. +++The \fB\-\-content\fP option overrides that configuration as well. +++.IP +++.IP "\fB\-\-content\-of=path\fP \fB\-C path\fP" +++Only download (and drop) annexed files in the given path. +++.IP +++This option can be repeated multiple times with different paths. +++.IP +++.IP "\fB\-\-all\fP \fB\-A\fP" +++Usually this command operates on annexed files in the current branch. +++This option makes it operate on all available versions of all annexed files +++(when preferred content settings allow). +++.IP +++Note that preferred content settings that use \fBinclude=\fP or \fBexclude=\fP +++will only match the version of files currently in the work tree, but not +++past versions of files. +++.IP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++Enables parallel pulling with up to the specified number of jobs +++running at once. For example: \fB\-J10\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++(Note that git pulls are not done in parallel because that tends to be +++less efficient.) +++.IP +++.IP "\fB\-\-allow\-unrelated\-histories\fP, \fB\-\-no\-allow\-unrelated\-histories\fP" +++Passed on to \fBgit merge\fP, to control whether or not to merge +++histories that do not share a common ancestor. +++.IP +++.IP "\fB\-\-resolvemerge\fP, \fB\-\-no\-resolvemerge\fP" +++By default, merge conflicts are automatically handled by this command. +++When two conflicting versions of a file have been committed, both will +++be added to the tree, under different filenames. For example, file "foo" +++would be replaced with "foo.variant\-A" and "foo.variant\-B". (See +++git-annex\-resolvemerge(1) for details.) +++.IP +++Use \fB\-\-no\-resolvemerge\fP to disable this automatic merge conflict +++resolution. It can also be disabled by setting \fBannex.resolvemerge\fP +++to false. +++.IP +++.IP "\fB\-\-backend\fP" +++Specifies which key\-value backend to use when importing from a +++special remote. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-push(1) +++.PP +++git-annex\-sync(1) +++.PP +++git-annex\-preferred\-content(1) +++.PP +++git-annex\-satisfy(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-push.1 ++@@ -0,0 +1,135 @@ +++.TH git-annex-push 1 +++.SH NAME +++git-annex-push \- push content to remotes +++.PP +++.SH SYNOPSIS +++git annex push \fB[remote ...]\fP +++.PP +++.SH DESCRIPTION +++This command pushes content to remotes. It uploads +++both git repository content, and the content of annexed files. +++.PP +++You can use \fBgit push\fP and \fBgit-annex copy\fP by hand to do the same thing as +++this command, but this command handles several details, including making +++sure that the git-annex branch is pushed to the remote. +++.PP +++When using git-annex, often remotes are not bare repositories, because +++it's helpful to add remotes for nearby machines that you want +++to access the same annexed content. Pushing to a non\-bare remote will +++not normally update the remote's current branch with changes from the local +++repository. (Unless the remote is configured with +++receive.denyCurrentBranch=updateInstead.) +++.PP +++To make working with such non\-bare remotes easier, this command pushes not +++only local \fBmaster\fP to remote \fBmaster\fP, but also to remote \fBsynced/master\fP +++(and similar with other branches). When \fBgit-annex pull\fP (or git-annex +++sync\fB) is later run on the remote, it will merge the \fPsynced/ branches +++that were pushed to it. +++.PP +++Some special remotes allow exporting a tree of files to them +++(\fBexporttree=yes\fP), +++and this command can be used to push to those remotes as well +++as regular git remotes. See git-annex\-export(1) for details +++about how those special remotes work. In order for this command to export +++to a special remote, \fBremote..annex\-tracking\-branch\fP also must +++be configured, and have the same value as the currently checked out branch. +++.PP +++When git-annex\-adjust(1) has been used to check out an adjusted branch, +++this command will propagate changes that have been made back to the +++parent branch, without propagating the adjustments. +++.PP +++Normally this tries to upload the content of each annexed file that is +++in the working tree, to any remote that it's pushing to that does not have +++a copy. To control which files are uploaded to a remote, configure the preferred +++content of the remote. When a file is not the preferred content of a remote, +++or of the local repository, this command will try to drop the file's content. +++See git-annex\-preferred\-content(1). +++.PP +++.SH OPTIONS +++.IP "\fB[remote]\fP" +++.IP +++By default, this command pushes to all available remotes, except for remotes +++that have \fBremote..annex\-push\fP (or \fBremote..annex\-sync\fP) +++set to false or \fBremote..annex\-readonly\fP set to true. +++.IP +++By specifying the names of remotes (or remote groups), you can control which +++ones to push to. +++.IP +++.IP "\fB\-\-fast\fP" +++Only push to the remotes with the lowest annex\-cost value configured. +++.IP +++When a list of remotes (or remote groups) is provided, it picks from +++amoung those, otherwise it picks from amoung all remotes. +++.IP +++.IP "\fB\-\-only\-annex\fP \fB\-a\fP, \fB\-\-not\-only\-annex\fP" +++Only push the git-annex branch and annexed content to remotes, +++not other git branches. +++.IP +++The \fBannex.synconlyannex\fP configuration can be set to true to make +++this be the default behavior. To override such a setting, use +++\fB\-\-not\-only\-annex\fP. +++.IP +++When this is combined with \-\-no\-content, only the git-annex branch +++will be pushed. +++.IP +++.IP "\fB\-\-no\-content\fP, \fB\-g\fP, \fB\-\-content\fP" +++Use \fB\-\-no\-content\fP or \fB\-g\fP to avoid uploading (and dropping) the content +++of annexed files. +++.IP +++If you often use \fB\-\-no\-content\fP, you can set the \fBannex.synccontent\fP +++configuration to false to prevent uploading content by default. +++The \fB\-\-content\fP option overrides that configuration. +++.IP +++.IP "\fB\-\-content\-of=path\fP \fB\-C path\fP" +++Only upload (or drop) annexed files in the given path. +++.IP +++This option can be repeated multiple times with different paths. +++.IP +++Note that this option is ignored when syncing with "exporttree=yes" +++remotes. +++.IP +++.IP "\fB\-\-all\fP \fB\-A\fP" +++Usually this command operates on annexed files in the current branch. +++This option makes it operate on all available versions of all annexed files +++(when preferred content settings allow). +++.IP +++Note that preferred content settings that use \fBinclude=\fP or \fBexclude=\fP +++will only match the version of files currently in the work tree, but not +++past versions of files. +++.IP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++Enables parallel pushing with up to the specified number of jobs +++running at once. For example: \fB\-J10\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++.IP "\fB\-\-cleanup\fP" +++Removes the local and remote \fBsynced/\fP branches, which were created +++and pushed by \fBgit-annex push\fP or \fBgit-annex sync\fP. This option +++prevents all other activities. +++.IP +++This can come in handy when you've pushed a change to remotes and now +++want to reset your master branch back before that change. So you +++run \fBgit reset\fP and force\-push the master branch to remotes, only +++to find that the next \fBgit annex merge\fP or \fBgit annex pull\fP brings the +++changes back. Why? Because the \fBsynced/master\fP branch is hanging +++around and still has the change in it. Cleaning up the \fBsynced/\fP branches +++prevents that problem. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-pull(1) +++.PP +++git-annex\-sync(1) +++.PP +++git-annex\-preferred\-content(1) +++.PP +++git-annex\-satisfy(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-readpresentkey.1 ++@@ -0,0 +1,28 @@ +++.TH git-annex-readpresentkey 1 +++.SH NAME +++git-annex-readpresentkey \- read records of where key is present +++.PP +++.SH SYNOPSIS +++git annex readpresentkey \fBkey uuid\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command reads git-annex's records about whether +++the specified key's content is present in the remote with the specified +++uuid. +++.PP +++It exits 0 if the key is recorded to be present and 1 if not. +++.PP +++Note that this does not do an active check to verify if the key +++is present. To do such a check, use git-annex\-checkpresentkey(1) +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-registerurl.1 ++@@ -0,0 +1,68 @@ +++.TH git-annex-registerurl 1 +++.SH NAME +++git-annex-registerurl \- registers an url for a key +++.PP +++.SH SYNOPSIS +++git annex registerurl \fB[key url]\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command can be used to register urls where a +++key can be downloaded from. +++.PP +++No verification is performed of the url's contents. +++.PP +++Normally the key is a git-annex formatted key. However, to make it easier +++to use this to add urls, if the key cannot be parsed as a key, and is a +++valid url, an URL key is constructed from the url. +++.PP +++Registering an url also makes git-annex treat the key as present in the +++special remote that claims it. (Usually the web special remote.) +++.PP +++.SH OPTIONS +++.IP "\fB\-\-remote=name|uuid\fP" +++.IP +++Indicate that the url is expected to be claimed by the specified remote. +++If some other remote claims the url instead, registering it will fail. +++.IP +++Note that \fB\-\-remote=web\fP will prevent any other remote from claiming +++the url. +++.IP +++.IP "\fB\-\-batch\fP" +++In batch input mode, lines are read from stdin, and each line +++should contain a key and url, separated by a single space. +++.IP +++For backwards compatability with old git-annex before this option +++was added, when no key and url pair are specified on the command line, +++batch input is used, the same as if the \-\-batch option were +++specified. It is however recommended to use \-\-batch. +++.IP +++.IP "\fB\-z\fP" +++When in batch mode, the input is delimited by nulls instead of the usual +++newlines. +++.IP +++(Note that for this to be used, you have to explicitly enable batch mode +++with \fB\-\-batch\fP) +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-addurl(1) +++.PP +++git-annex\-unregisterurl(1) +++.PP +++git-annex\-reregisterurl(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-reinit.1 ++@@ -0,0 +1,46 @@ +++.TH git-annex-reinit 1 +++.SH NAME +++git-annex-reinit \- initialize repository, reusing old UUID +++.PP +++.SH SYNOPSIS +++git annex reinit \fBuuid|description\fP +++.PP +++.SH DESCRIPTION +++Normally, initializing a repository generates a new, unique identifier +++(UUID) for that repository. Occasionally it may be useful to reuse a +++UUID \-\- for example, if a repository got deleted, and you're +++setting it back up. +++.PP +++Use this with caution; it can be confusing to have two existing +++repositories with the same UUID. +++.PP +++Make sure you run \fBgit annex fsck\fP after changing the UUID of a +++repository to make sure location tracking information is recorded +++correctly. +++.PP +++Like \fBgit annex init\fP, this attempts to enable any special remotes +++that are configured with autoenable=true. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-json\fP" +++.IP +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-init(1) +++.PP +++git-annex\-fsck(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-reinject.1 ++@@ -0,0 +1,88 @@ +++.TH git-annex-reinject 1 +++.SH NAME +++git-annex-reinject \- inject content of file back into annex +++.PP +++.SH SYNOPSIS +++git annex reinject \fB[src dest]\fP +++.PP +++git annex reinject \-\-known \fB[src]\fP +++.PP +++.SH DESCRIPTION +++Moves the content of the src file or files into the annex. +++Only known file contents will be reinjected. Any unknown src files will +++be left unchanged. +++.PP +++This can be useful if you have obtained the content of a file from +++elsewhere and want to put it in the local annex. For example, if a file's +++content has been lost and you have a backup, you can restore the backup and +++reinject it into your local repository. +++.PP +++There are two ways to use this command. Specifying a src file and the name +++of a dest file (located inside the repository's working tree) +++injects the src file as the content of the dest file. +++.PP +++ git annex reinject /tmp/foo.iso foo.iso +++.PP +++Or the \fB\-\-known\fP option can be used to reinject all known src files, without +++needing to specify the dest file. +++.PP +++ git annex reinject \-\-known /tmp/*.iso +++.PP +++.SH OPTIONS +++.IP "\fB\-\-known\fP" +++.IP +++With this option, each specified src file is hashed using the default +++key\-value backend (or the one specified with \fB\-\-backend\fP), and if git-annex +++has a record of the resulting key having been in the annex before, the +++content is reinjected. +++.IP +++Note that, when using a key\-value backend that includes the filename +++extension in the key, this will only work if the src files have the same +++extensions as the files with the same content that was originally added +++to git-annex. +++.IP +++Note that this will reinject old versions of files that have been +++modified or deleted from the current git branch. +++Use git-annex\-unused(1) to detect when such old and potentially +++unused files have been reinjected. +++.IP +++.IP "\fB\-\-backend\fP" +++Specify the key\-value backend to use when checking if a file is known +++with the \fB\-\-known\fP option. +++.IP +++.IP "\fB\-\-guesskeys\fP" +++With this option, each specified source file is checked to see if it +++has the name of a git-annex key, and if so it is imported as the content +++of that key. +++.IP +++This can be used to pluck git-annex objects out of \fBlost+found\fP, +++as long as the original filename has not been lost, +++and is particularly useful when using key\-value backends that don't hash +++to the content of a file. +++.IP +++When the key\-value backend does support hashing, the content of the file +++is verified before importing it. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-add(1) +++.PP +++git-annex\-unused(1) +++.PP +++git-annex\-fsck(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-rekey.1 ++@@ -0,0 +1,50 @@ +++.TH git-annex-rekey 1 +++.SH NAME +++git-annex-rekey \- change keys used for files +++.PP +++.SH SYNOPSIS +++git annex rekey \fB[file key ...]\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command is similar to migrate, but you specify +++both the file, and the new key to use for it. +++.PP +++Multiple pairs of file and key can be given in a single command line. +++.PP +++Note that, unlike \fBgit-annex migrate\fP, this does not copy over metadata, +++urls, and other such information from the old to the new key +++.PP +++.SH OPTIONS +++.IP "\fB\-\-force\fP" +++.IP +++Allow rekeying of even files whose content is not currently available. +++Use with caution. +++.IP +++.IP "\fB\-\-batch\fP" +++Enables batch mode, in which lines are read from stdin. +++Each line should contain the file, and the new key to use for that file, +++separated by a single space. +++.IP +++.IP "\fB\-z\fP" +++Makes the \fB\-\-batch\fP input be delimited by nulls instead of the usual +++newlines. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-migrate(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-remotedaemon.1 ++@@ -0,0 +1,53 @@ +++.TH git-annex-remotedaemon 1 +++.SH NAME +++git-annex-remotedaemon \- persistent communication with remotes +++.PP +++.SH SYNOPSIS +++git annex remotedaemon +++.PP +++.SH DESCRIPTION +++The remotedaemon provides persistent communication with remotes. +++.PP +++Several types of remotes are supported: +++.PP +++For ssh remotes, the remotedaemon tries to maintain a connection to the +++remote git repository, and uses git-annex\-shell notifychanges to detect +++when the remote git repository has changed, and fetches changes from it. +++For this to work, the git remote must have git-annex\-shell(1) +++installed, with notifychanges support. The first version of git-annex\-shell +++that supports it is 5.20140405. +++.PP +++For tor\-annex remotes, the remotedaemon runs a tor hidden service, +++accepting connections from other nodes and serving up the contents of the +++repository. This is only done if you first run \fBgit annex enable\-tor\fP. +++Use \fBgit annex p2p\fP to configure access to tor\-annex remotes. +++.PP +++Note that when \fBremote..annex\-pull\fP is set to false, the remotedaemon +++will avoid fetching changes from that remote. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-foreground\fP" +++.IP +++Don't fork to the background, and communicate on stdin/stdout using a +++simple textual protocol. The assistant runs the remotedaemon this way. +++.IP +++Commands in the protocol include LOSTNET, which tells the remotedaemon +++that the network connection has been lost, and causes it to stop any TCP +++connctions. That can be followed by RESUME when the network connection +++comes back up. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-assistant(1) +++.PP +++git-annex\-enable\-tor(1) +++.PP +++git-annex\-p2p(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-renameremote.1 ++@@ -0,0 +1,43 @@ +++.TH git-annex-renameremote 1 +++.SH NAME +++git-annex-renameremote \- changes name of a special remote +++.PP +++.SH SYNOPSIS +++git annex renameremote \fBname|uuid|desc newname\fP +++.PP +++.SH DESCRIPTION +++Changes the name that is used to enable a special remote. +++.PP +++Normally the current name is used to identify the special remote to rename, +++but its uuid or description can also be used. +++.PP +++This is especially useful when an old special remote used a name, and now you +++want to use that name for a new special remote. \fBgit annex initremote\fP +++won't let you create a remote with a conflicting name, so rename the old +++remote first. +++.PP +++ git annex renameremote phone lost\-phone +++ git annex initremote phone ... +++.PP +++This only updates the name that git-annex has stored for use +++by \fBgit annex enableremote\fP. It does not update the git config stanza +++for the special remote to use the new name, but of course you can edit +++the git config if you want to rename it there. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-initremote(1) +++.PP +++git-annex\-enableremote(1) +++.PP +++git-annex\-configremote(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-repair.1 ++@@ -0,0 +1,54 @@ +++.TH git-annex-repair 1 +++.SH NAME +++git-annex-repair \- recover broken git repository +++.PP +++.SH SYNOPSIS +++git annex repair +++.PP +++.SH DESCRIPTION +++This can repair many of the problems with git repositories that \fBgit fsck\fP +++detects, but does not itself fix. It's useful if a repository has become +++badly damaged. One way this can happen is if a repository used by git-annex +++is on a removable drive that gets unplugged at the wrong time. +++.PP +++This command can actually be used inside git repositories that do not +++use git-annex at all; when used in a repository using git-annex, it +++does additional repairs of the git-annex branch. +++.PP +++It works by deleting any corrupt objects from the git repository, and +++retrieving all missing objects it can from the remotes of the repository. +++.PP +++If that is not sufficient to fully recover the repository, it can also +++reset branches back to commits before the corruption happened, delete +++branches that are no longer available due to the lost data, and remove any +++missing files from the index. It will only do this if run with the +++\fB\-\-force\fP option, since that rewrites history and throws out missing data. +++Note that the \fB\-\-force\fP option never touches tags, even if they are no +++longer usable due to missing data. +++.PP +++After running this command, you will probably want to run \fBgit fsck\fP to +++verify it fixed the repository. Note that fsck may still complain about +++objects referenced by the reflog, or the stash, if they were unable to be +++recovered. This command does not try to clean up either the reflog or the +++stash. +++.PP +++It is also a good idea to run \fBgit annex fsck \-\-fast\fP after this command, +++to make sure that the git-annex branch reflects reality. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-force\fP" +++.IP +++Enable repair actions that involve deleting data that has been +++lost due to git repository corruption. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-fsck(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-required.1 ++@@ -0,0 +1,44 @@ +++.TH git-annex-required 1 +++.SH NAME +++git-annex-required \- get or set required content expression +++.PP +++.SH SYNOPSIS +++git annex required \fBrepository [expression]\fP +++.PP +++.SH DESCRIPTION +++When run with an expression, configures the content that is required +++to be held in the archive. +++.PP +++For example: +++.PP +++ git annex required . "include=*.mp3 or include=*.ogg" +++.PP +++Without an expression, displays the current required content setting +++of the repository. +++.PP +++While git-annex\-wanted(1) is just a preference, this designates content +++that should really not be removed. For example a file that is \fBwanted\fP can +++be removed with \fBgit annex drop\fP, but if that file is \fBrequired\fP, it would +++need to be removed with \fBgit annex drop \-\-force\fP. +++.PP +++Also, \fBgit-annex fsck\fP will warn about required contents that are not +++present. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH NOTES +++The \fBrequired\fP command was added in git-annex 5.20150420. +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-wanted(1) +++.PP +++git-annex\-preferred\-content(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-reregisterurl.1 ++@@ -0,0 +1,55 @@ +++.TH git-annex-reregisterurl 1 +++.SH NAME +++git-annex-reregisterurl \- updates url registration information +++.PP +++.SH SYNOPSIS +++git annex reregisterurl \fB[key]\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command updates information about the urls that are +++registered for a key. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-move\-from=name|uuid\fP" +++.IP +++For each key, update any urls that are currently claimed by the +++specified remote to be instead used by the web special remote. +++.IP +++This could be used eg, when a special remote was needed to provide +++authorization to get an url, but the url has now become publically +++available and so the web special remote can be used. +++.IP +++Note that, like \fBgit-annex unregisterurl\fP, using this option unregisters +++an url from a special remote, but it does not mark the content as not +++present in that special remote. However, like \fBgit-annex registerurl\fP, +++this option does mark content as being present in the web special remote. +++.IP +++.IP "\fB\-\-batch\fP" +++In batch input mode, lines are read from stdin, and each line +++should contain a key. +++.IP +++.IP "\fB\-z\fP" +++When in batch mode, the input is delimited by nulls instead of the usual +++newlines. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-registerurl(1) +++.PP +++git-annex\-unregisterurl(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-resolvemerge.1 ++@@ -0,0 +1,65 @@ +++.TH git-annex-resolvemerge 1 +++.SH NAME +++git-annex-resolvemerge \- resolve merge conflicts +++.PP +++.SH SYNOPSIS +++git annex resolvemerge +++.PP +++.SH DESCRIPTION +++Automatically resolves a conflicted merge. This is done +++automatically when using \fBgit annex sync\fP or \fBgit annex merge\fP. +++.PP +++When two trees being merged contain conflicting versions of an annexed +++file, the merge conflict will be resolved by adding both versions to the +++tree, using variants of the filename. +++.PP +++When one tree modified the file, and the other tree deleted the file, +++the merge conflict will be resolved by adding the modified file using a +++variant of the filename, leaving the original filename deleted. +++.PP +++When the merge conflict involves a file that is annexed in one +++tree, but is not annexed in the other tree, it is +++resolved by keeping the non\-annexed file as\-is, and adding the annexed +++version using a variant of the filename. +++.PP +++Note that only merge conflicts that involve one or more annexed files +++are resolved. Merge conflicts between two files that are not annexed +++will not be automatically resolved. +++.PP +++.SH EXAMPLES +++Suppose Alice commits a change to annexed file \fBfoo\fP, and Bob commits +++a different change to the same file \fBfoo\fP. +++.PP +++Merging between them will then fail, and git will present the +++merge conflict as a file \fBfoo\fP pointing to one version of the +++git-annex symlink, with \fBgit status\fP indicating that \fBfoo\fP has an +++unresolved conflict. +++.PP +++Running \fBgit annex resolvemerge\fP in this situation will resolve the merge +++conflict, by replacing the file \fBfoo\fP with files named like +++\fBfoo.variant\-c696\fP and \fBfoo.variant\-f16a\fP. One of the files has the content +++that Alice committed, and the other has the content that Bob committed. +++.PP +++The user can then examine the two variants of the file, and either merge +++the two changes into a single file, or rename one of them back to \fBfoo\fP +++and delete the other. +++.PP +++Now suppose Alice commits a change to annexed file \fBbar\fP, while Bob commits +++a deletion of the same file \fBbar\fP. Merging will fail. Running +++\fBgit annex resolvemerge\fP in this situation will resolve the merge conflict +++by making a file with a name like \fBbar.variant\-421f\fP containing Alice's +++version. The \fBbar\fP file remains deleted. The user can later examine the +++variant of the file and either rename it back to \fBbar\fP, or decide to delete +++it too. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-restage.1 ++@@ -0,0 +1,31 @@ +++.TH git-annex-restage 1 +++.SH NAME +++git-annex-restage \- restages unlocked files in the git index +++.PP +++.SH SYNOPSIS +++git annex restage +++.PP +++.SH DESCRIPTION +++Since getting or dropping an unlocked file modifies the file in the work +++tree, git needs to be told that the modification does not change the +++content that it has recorded (the annex pointer). Restaging the file +++accomplishes that. +++.PP +++You do not normally need to run this command, because usually git-annex +++is able to restage unlocked files itself. There are some situations +++where git-annex needs to restage a file, but the git index is locked, +++and so it cannot. It will then display a warning suggesting you run this +++command. +++.PP +++It's safe to run this command even after you have made a modification to an +++unlocked file. +++.PP +++.SH SEE ALSO +++git-annex(1) +++git-annex\-smudge(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-rmurl.1 ++@@ -0,0 +1,45 @@ +++.TH git-annex-rmurl 1 +++.SH NAME +++git-annex-rmurl \- record file is not available at url +++.PP +++.SH SYNOPSIS +++git annex rmurl \fB[file url ..]\fP +++.PP +++.SH DESCRIPTION +++Record that the file is no longer available at the url. +++.PP +++Removing the last web url will make git-annex no longer treat content as being +++present in the web special remote. If some other special remote +++claims the url, unregistering the url will not update presence information +++for it, because the content may still be present on the remote. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-batch\fP" +++.IP +++Enables batch mode, in which lines are read from stdin. +++Each line should contain the file, and the url to remove from that file, +++separated by a single space. +++.IP +++.IP "\fB\-z\fP" +++Makes the \fB\-\-batch\fP input be delimited by nulls instead of the usual +++newlines. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-addurl(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-satisfy.1 ++@@ -0,0 +1,66 @@ +++.TH git-annex-satisfy 1 +++.SH NAME +++git-annex-satisfy \- transfer and drop content as configured +++.PP +++.SH SYNOPSIS +++git annex satisfy \fB[remote ...]\fP +++.PP +++.SH DESCRIPTION +++This transfers and drops content of annexed files to work toward satisfying +++the preferred content settings of the local repository and remotes. +++.PP +++It does the same thing as \fBgit-annex sync \-\-content\fP without the pulling +++and pushing of git repositories, and without changing the trees that are +++imported to or exported from special remotes. +++.PP +++Note that it (like git-annex\-sync or git-annex\-assist) does not work +++specifically towards satisfying the git-annex\-numcopies setting, +++unless the preferred content setting of the local repository is written to +++do so by using eg \fBapproxlackingcopies=1\fP. +++.PP +++.SH OPTIONS +++.IP "\fB[remote]\fP" +++.IP +++By default this command operates on all remotes, except for remotes +++that have \fBremote..annex\-sync\fP set to false. +++.IP +++By specifying the names of remotes (or remote groups), you can control +++which ones to operate on. +++.IP +++.IP "\fB\-\-content\-of=path\fP \fB\-C path\fP" +++Operate on only files in the specified path. The default is to operate on +++all files in the working tree. +++.IP +++This option can be repeated multiple times with different paths. +++.IP +++Note that this option is ignored when syncing with "exporttree=yes" +++remotes. +++.IP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++Enables parallel processing with up to the specified number of jobs +++running at once. For example: \fB\-J10\fP +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++.IP "\fB\-\-all\fP \fB\-A\fP" +++Usually this command operates on annexed files in the current branch. +++This option makes it operate on all available versions of all annexed files +++(when preferred content settings allow). +++.IP +++Note that preferred content settings that use \fBinclude=\fP or \fBexclude=\fP +++will only match the version of files currently in the work tree, but not +++past versions of files. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-sync(1) +++.PP +++git-annex\-preferred\-content(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-schedule.1 ++@@ -0,0 +1,50 @@ +++.TH git-annex-schedule 1 +++.SH NAME +++git-annex-schedule \- get or set scheduled jobs +++.PP +++.SH SYNOPSIS +++git annex schedule \fBrepository [expression]\fP +++.PP +++.SH DESCRIPTION +++The git-annex\-assistant(1) daemon can be configured to run scheduled jobs. +++This is similar to cron and anacron (and you can use them if you prefer), +++but has the advantage of being integrated into git-annex, and so being able +++to e.g., fsck a repository on a removable drive when the drive gets +++connected. +++.PP +++When run with an expression, configures scheduled jobs to run at a +++particular time. This can be used to make the assistant periodically run +++incremental fscks. +++.PP +++When run without an expression, outputs the current scheduled jobs for +++the repository. +++.PP +++.SH EXPRESSIONS +++These actions are available: "fsck self", "fsck UUID" (where UUID +++is the UUID of a remote to fsck). After the action comes the duration +++to allow the action to run, and finally the schedule of when to run it. +++.PP +++To schedule multiple jobs, separate them with "; ". +++.PP +++Some examples: +++.PP +++ fsck self 30m every day at any time +++ fsck self 1h every month at 3 AM +++ fsck self 1h on day 1 of every month at any time +++ fsck self 1h every week divisible by 2 at any time +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-assistant(1) +++.PP +++git-annex\-expire(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-semitrust.1 ++@@ -0,0 +1,40 @@ +++.TH git-annex-semitrust 1 +++.SH NAME +++git-annex-semitrust \- return repository to default trust level +++.PP +++.SH SYNOPSIS +++git annex semitrust \fB[repository ...]\fP +++.PP +++.SH DESCRIPTION +++Returns a repository to the default semi trusted state. +++.PP +++Repositories can be specified using their remote name, their +++description, or their UUID. For the current repository, use "here". +++.PP +++.SH OPTIONS +++.IP "\fB\-\-json\fP" +++.IP +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-trust(1) +++.PP +++git-annex\-untrust(1) +++.PP +++git-annex\-dead(1) +++.PP +++git-annex\-expire(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-setkey.1 ++@@ -0,0 +1,29 @@ +++.TH git-annex-setkey 1 +++.SH NAME +++git-annex-setkey \- sets annexed content for a key +++.PP +++.SH SYNOPSIS +++git annex setkey key file +++.PP +++.SH DESCRIPTION +++This plumbing\-level command makes the content of the specified key +++be set to the specified file. The file is moved into the annex. +++.PP +++It's generally a better idea to use git-annex\-reinject(1) instead of +++this command. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-reinject(1) +++.PP +++git-annex\-dropkey(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-setpresentkey.1 ++@@ -0,0 +1,37 @@ +++.TH git-annex-setpresentkey 1 +++.SH NAME +++git-annex-setpresentkey \- change records of where key is present +++.PP +++.SH SYNOPSIS +++git annex setpresentkey \fBkey uuid [1|0]\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command changes git-annex's records about whether +++the specified key's content is present in a remote with the specified uuid. +++.PP +++Use 1 to indicate the key is present, or 0 to indicate the key is +++not present. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-batch\fP" +++.IP +++Enables batch mode, in which lines are read from stdin. +++The line format is "key uuid [1|0]" +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-shell.1 ++@@ -0,0 +1,172 @@ +++.TH git-annex-shell 1 +++.SH NAME +++git-annex\-shell \- Restricted login shell for git-annex only SSH access +++.PP +++.SH SYNOPSIS +++git-annex\-shell [\-c] command [params ...] +++.PP +++.SH DESCRIPTION +++git-annex\-shell is a restricted shell, similar to git\-shell, which +++can be used as a login shell for SSH accounts. +++.PP +++Since its syntax is identical to git\-shell's, it can be used as a drop\-in +++replacement anywhere git\-shell is used. For example it can be used as a +++user's restricted login shell. +++.PP +++.SH COMMANDS +++Any command not listed below is passed through to git\-shell. +++.PP +++Note that the directory parameter should be an absolute path, otherwise +++it is assumed to be relative to the user's home directory. Also the +++first "/~/" or "/~user/" is expanded to the specified home directory. +++.PP +++.IP "configlist directory" +++This outputs a subset of the git configuration, in the same form as +++\fBgit config \-\-list\fP. This is used to get the annex.uuid of the remote +++repository. +++.IP +++When run in a repository that does not yet have an annex.uuid, one +++will be created, as long as a git-annex branch has already been pushed to +++the repository, or if the autoinit=1 flag is used to indicate +++initialization is desired. +++.IP +++.IP "p2pstdio directory uuid" +++This causes git-annex\-shell to communicate using the git-annex p2p +++protocol over stdio. +++.IP +++The uuid is the one belonging to the repository that will be +++communicating with git-annex\-shell. +++.IP +++.IP "notifychanges directory" +++This is used by \fBgit-annex remotedaemon\fP to be notified when +++refs in the remote repository are changed. +++.IP +++.IP "gcryptsetup directory gcryptid" +++Sets up a repository as a gcrypt repository. +++.IP +++.IP "inannex directory [key ...]" +++This checks if all specified keys are present in the annex, +++and exits zero if so. +++.IP +++Exits 1 if the key is certainly not present in the annex. +++Exits 100 if it's unable to tell (perhaps the key is in the process of +++being removed from the annex). +++.IP +++Used only by the gcrypt special remote. +++.IP +++.IP "recvkey directory key" +++This runs rsync in server mode to receive the content of a key, +++and stores the content in the annex. +++.IP +++Used only by the gcrypt special remote. +++.IP +++.IP "sendkey directory key" +++This runs rsync in server mode to transfer out the content of a key. +++.IP +++Used only by the gcrypt special remote. +++.IP +++.IP "dropkey directory [key ...]" +++This drops the annexed data for the specified keys. +++.IP +++Used only by the gcrypt special remote. +++.IP +++.SH OPTIONS +++.IP "\-\-uuid=UUID" +++.IP +++git-annex uses this to specify the UUID of the repository it was expecting +++git-annex\-shell to access, as a sanity check. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.IP "\-\- fields=val fields=val.. \-\-" +++Additional fields may be specified this way, to retain compatibility with +++past versions of git-annex\-shell (that ignore these, but would choke +++on new dashed options). +++.IP +++Currently used fields are autoinit= and remoteuuid= +++.IP +++.SH HOOK +++After content is received or dropped from the repository by git-annex\-shell, +++it runs a hook, \fB.git/hooks/annex\-content\fP (or \fBhooks/annex\-content\fP on a bare +++repository). The hook is not currently passed any information about what +++changed. +++.PP +++.SH ENVIRONMENT +++.IP "GIT_ANNEX_SHELL_READONLY" +++.IP +++If set, disallows any action that could modify the git-annex +++repository. +++.IP +++Note that this does not prevent passing commands on to git\-shell. +++For that, you also need ... +++.IP +++.IP "GIT_ANNEX_SHELL_LIMITED" +++If set, disallows running git\-shell to handle unknown commands. +++.IP +++.IP "GIT_ANNEX_SHELL_APPENDONLY" +++If set, allows data to be written to the git-annex repository, +++but does not allow data to be removed from it. +++.IP +++Note that this does not prevent passing commands on to git\-shell, +++so you will have to separately configure git to reject pushes that +++overwrite branches or are otherwise not appends. The git pre\-receive +++hook may be useful for accomplishing this. +++.IP +++It's a good idea to enable annex.securehashesonly in a repository +++that's set up this way. +++.IP +++.IP "GIT_ANNEX_SHELL_DIRECTORY" +++If set, git-annex\-shell will refuse to run commands that do not operate +++on the specified directory. +++.IP +++.SH EXAMPLES +++To make a \fB~/.ssh/authorized_keys\fP file that only allows git-annex\-shell +++to be run, and not other commands, pass the original command to the \-c +++option: +++.PP +++ command="git-annex\-shell \-c \\"$SSH_ORIGINAL_COMMAND\\"",no\-agent\-forwarding,no\-port\-forwarding,no\-X11\-forwarding ssh\-rsa AAAAB3NzaC1y[...] user@example.com +++.PP +++To further restrict git-annex\-shell to a particular repository, +++and fully lock it down to read\-only mode: +++.PP +++ command="GIT_ANNEX_SHELL_DIRECTORY=/srv/annex GIT_ANNEX_SHELL_LIMITED=true GIT_ANNEX_SHELL_READONLY=true git-annex\-shell \-c \\"$SSH_ORIGINAL_COMMAND\\"",restrict ssh\-rsa AAAAB3NzaC1y[...] user@example.com +++.PP +++Obviously, \fBssh\-rsa AAAAB3NzaC1y[...] user@example.com\fP needs to +++replaced with your SSH key. The above also assumes \fBgit-annex\-shell\fP +++is available in your \fB$PATH\fP, use an absolute path if it is not the +++case. Also note how the above uses the \fBrestrict\fP option instead of an +++explicit list of functionality to disallow. This only works in certain +++OpenSSH releases, starting from 7.1p2. +++.PP +++To only allow adding new objects to the repository, the +++\fBGIT_ANNEX_SHELL_APPENDONLY\fP variable can be used as well: +++.PP +++command="GIT_ANNEX_SHELL_DIRECTORY=/srv/annex GIT_ANNEX_SHELL_APPENDONLY=true git-annex\-shell \-c \\"$SSH_ORIGINAL_COMMAND\\"",restrict ssh\-rsa AAAAB3NzaC1y[...] user@example.com +++.PP +++This will not keep an attacker from destroying the git history, as +++explained above. For this you might want to disallow certain +++operations, like branch deletion and force\-push, with options from +++git\-config(1). For example: +++.PP +++git config receive.denyDeletes true +++git config receive.denyNonFastForwards true +++.PP +++With this configuration, git commits can still remove files, +++but they will still be available in the git history and git-annex will +++retain their contents. Changes to \fBgit-annex\fP branch, however, can +++negatively impact git-annex's location tracking information and might +++cause data loss. To work around this problem, more complex hooks +++are required, see for example the \fBupdate\-paranoid\fP hook in the git +++source distribution. +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git\-shell(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++ +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-smudge.1 ++@@ -0,0 +1,62 @@ +++.TH git-annex-smudge 1 +++.SH NAME +++git-annex-smudge \- git filter driver for git-annex +++.PP +++.SH SYNOPSIS +++git annex smudge [\-\-clean] file +++.PP +++git annex smudge \-\-update +++.PP +++.SH DESCRIPTION +++This command lets git-annex be used as a git filter driver which lets +++annexed files in the git repository to be unlocked, instead +++of being symlinks, and lets \fBgit add\fP store files in the annex. +++.PP +++When adding a file with \fBgit add\fP, the annex.largefiles config is +++consulted to decide if a given file should be added to git as\-is, +++or if its content are large enough to need to use git-annex. +++The annex.gitaddtoannex setting overrides that; setting it to false +++prevents \fBgit add\fP from adding files to the annex. +++.PP +++However, if git-annex can tell that a file was annexed before, +++it will still be added to the annex even when those configs would normally +++prevent it. Two examples of this are adding a modified version of an +++annexed file, and moving an annexed file to a new filename and adding that. +++.PP +++The git configuration to use this command as a filter driver is as follows. +++This is normally set up for you by git-annex init, so you should +++not need to configure it manually. +++.PP +++ [filter "annex"] +++ smudge = git-annex smudge %f +++ clean = git-annex smudge \-\-clean %f +++.PP +++To make git use that filter driver, it needs to be configured in +++the \fB.gitattributes\fP file or in \fB.git/info/attributes\fP. The latter +++is normally configured when a repository is initialized, with the following +++contents: +++.PP +++ * filter=annex +++.PP +++The smudge filter does not provide git with the content of annexed files, +++because that would be slow and triggers memory leaks in git. Instead, +++it records which worktree files need to be updated, and +++\fBgit annex smudge \-\-update\fP later updates the work tree to contain +++the content. That is run by several git hooks, including post\-checkout +++and post\-merge. However, a few git commands, notably \fBgit stash\fP and +++\fBgit cherry\-pick\fP, do not run any hooks, so after using those commands +++you can manually run \fBgit annex smudge \-\-update\fP to update the working +++tree. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++git-annex\-filter\-process(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-status.1 ++@@ -0,0 +1,39 @@ +++.TH git-annex-status 1 +++.SH NAME +++git-annex-status \- show the working tree status (deprecated) +++.PP +++.SH SYNOPSIS +++git annex status \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++Similar to \fBgit status \-\-short\fP, this command displays the status of the files +++in the working tree. +++.PP +++Show files that are not checked into git (?), deleted (D), +++modified (M), added but not committed (A), and type changed/unlocked (T). +++.PP +++.SH OPTIONS +++.IP "\fB\-\-ignore\-submodules=when\fP" +++.IP +++This option is passed on to git status, see its man page for +++details. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git\-status(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-sync.1 ++@@ -0,0 +1,82 @@ +++.TH git-annex-sync 1 +++.SH NAME +++git-annex-sync \- synchronize local repository with remotes +++.PP +++.SH SYNOPSIS +++git annex sync \fB[remote ...]\fP +++.PP +++.SH DESCRIPTION +++This command synchronizes the local repository with its remotes. +++.PP +++This command first commits any local changes to files that have +++previously been added to the repository. Then it does the equivilant of +++git-annex\-pull(1) followed by git-annex\-push(1). +++.PP +++However, unlike those commands, this command does not transfer annexed +++content by default. That will change in a future version of git-annex, +++when syncing with repositories that have preferred content configured. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-content\fP, \fB\-\-no\-content\fP, \fB\-g\fP" +++.IP +++The \-\-content option causes the content of annexed files +++to also be pulled and pushed. +++.IP +++The \-\-no\-content and \-g options cause the content of annexed files to +++not be pulled and pushed. +++.IP +++The \fBannex.synccontent\fP configuration can be set to true to make +++\fB\-\-content\fP be enabled by default. +++.IP +++.IP "\fB\-\-content\-of=path\fP \fB\-C path\fP" +++This option causes the content of annexed files in the given +++path to also be pulled and pushed. +++.IP +++This option can be repeated multiple times with different paths. +++.IP +++Note that this option does not prevent exporting other files to an +++"exporttree=yes" remote. +++.IP +++.IP "\fB\-\-commit\fP, \fB\-\-no\-commit\fP" +++A commit is done by default (unless \fBannex.autocommit\fP is set to false). +++.IP +++Use \-\-no\-commit to avoid committing local changes. +++.IP +++.IP "\fB\-\-message=msg\fP \fB\-m msg\fP" +++Use this option to specify a commit message. +++.IP +++If multiple \-m options are given, their values are concatenated +++as separate paragraphs. +++.IP +++.IP "\fB\-\-pull\fP, \fB\-\-no\-pull\fP" +++Use this option to disable pulling. +++.IP +++When \fBremote..annex\-sync\fP is set to false, pulling is disabled +++for that remote, and using \fB\-\-pull\fP will not enable it. +++.IP +++.IP "\fB\-\-push\fP, \fB\-\-no\-push\fP " +++Use this option to disable pushing. +++.IP +++When \fBremote..annex\-sync\fP is set to false, pushing is disabled for +++that remote, and using \fB\-\-push\fP will not enable it. +++.IP +++.IP "Also all options supported by git-annex\-pull(1) and" +++git-annex\-push(1) can be used. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-pull(1) +++.PP +++git-annex\-push(1) +++.PP +++git-annex\-assist(1) +++.PP +++git-annex\-satisfy(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-test.1 ++@@ -0,0 +1,63 @@ +++.TH git-annex-test 1 +++.SH NAME +++git-annex-test \- run built\-in test suite +++.PP +++.SH SYNOPSIS +++git annex test +++.PP +++.SH DESCRIPTION +++This runs git-annex's built\-in test suite. +++.PP +++The test suite runs in the \fB.t\fP subdirectory of the current directory. +++.PP +++It can be useful to run the test suite on different filesystems, +++or to verify your local installation of git-annex. +++.PP +++.SH OPTIONS +++There are several options, provided by Haskell's tasty test +++framework. Pass \-\-help for details about those. +++.PP +++.IP "\fB\-\-jobs=N\fP \fB\-JN\fP" +++How many tests to run in parallel. The default is "cpus", which will +++runs one job per CPU core. +++.IP +++.IP "\fB\-\-keep\-failures\fP" +++When there are test failures, leave the \fB.t\fP directory populated with +++repositories that demonstate the failures, for later analysis. +++.IP +++.IP "\fB\-\-test\-git\-config name=value\fP" +++The test suite prevents git from reading any git configuration files. +++Usually it is a good idea to run the test suite with a standard +++git configuration. However, this option can be useful to see what +++effect a git configuration setting has on the test suite. +++.IP +++Some configuration settings will break the test suite, in ways that are +++due to a bug in git-annex. But it is possible that changing a +++configuration can find a legitimate bug in git-annex. +++.IP +++One valid use of this is to change a git configuration to a value that +++is planned to be the new default in a future version of git. +++.IP +++Also, some things can only be tested with a git configuration. For +++example, annex.shared\-sop\-command has to be set for the test suite to +++test using that command. +++.IP +++.IP "\fB\-\-test\-debug\fP" +++Normally output of commands run by the test suite is hidden, so even +++when annex.debug or \-\-debug is enabled, it will not be displayed. +++This option makes the full output of commands run by the test suite be +++displayed. It also makes the test suite run git-annex with \-\-debug. +++.IP +++It's a good idea to use \fB\-J1\fP in combinaton with this, otherwise +++the output of concurrent tests will be mixed together. +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-testremote(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-testremote.1 ++@@ -0,0 +1,53 @@ +++.TH git-annex-testremote 1 +++.SH NAME +++git-annex-testremote \- test transfers to/from a remote +++.PP +++.SH SYNOPSIS +++git annex testremote \fBremote\fP +++.PP +++.SH DESCRIPTION +++This tests a remote by sending objects to it, downloading objects from it, +++etc. +++.PP +++It's safe to run in an existing repository (the repository contents are +++not altered), although it may perform expensive data transfers. +++.PP +++It's best to make a new remote for testing purposes. While the test +++tries to clean up after itself, if the remote being tested had a bug, +++the cleanup might fail, leaving test data in the remote. Also, +++some special remotes don't support removal of data that has been stored +++in them, so test data won't be able to be cleaned up when testing those. +++.PP +++Testing will use the remote's configuration, automatically varying +++the chunk sizes, and with simple shared encryption disabled and enabled, +++and exporttree disabled and enabled. If the remote is readonly, testing +++is limited to checking various properties of downloading from it. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-fast\fP" +++.IP +++Perform a smaller set of tests. +++.IP +++.IP "\fB\-\-test\-readonly=file\fP" +++Normally, random objects are generated for the test and are sent to the +++remote. When a readonly remote is being tested, that cannot be done, +++and so you need to specify some annexed files to use in the testing, +++using this option. Their content needs to be present in the readonly remote +++being tested, and in the local repository. +++.IP +++This option can be repeated. +++.IP +++.IP "\fB\-\-size=NUnits\fP" +++Tune the base size of generated objects. The default is 1MiB. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-test(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-transferkey.1 ++@@ -0,0 +1,32 @@ +++.TH git-annex-transferkey 1 +++.SH NAME +++git-annex-transferkey \- transfers a key from or to a remote +++.PP +++.SH SYNOPSIS +++git annex transferkey \fBkey [\-\-from=remote|\-\-to=remote]\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command is used to request a single key be +++transferred. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-from=remote\fP" +++.IP +++Download the content of the key from the remote. +++.IP +++.IP "\fB\-\-to=remote\fP" +++Upload the content of the key to the remote. +++.IP +++.IP "\fB\-\-file=name\fP" +++Provides a hint about the name of the file associated with the key. +++(This name is only used in progress displays.) +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-transferkeys.1 ++@@ -0,0 +1,27 @@ +++.TH git-annex-transferkeys 1 +++.SH NAME +++git-annex-transferkeys \- transfers keys (deprecated) +++.PP +++.SH SYNOPSIS +++git annex transferkeys +++.PP +++.SH DESCRIPTION +++This plumbing\-level command is used to transfer data, by the assistant +++in git-annex version 8.20201127 and older. It is still included only +++to prevent breakage during upgrades. +++.PP +++It is a long\-running process, which is fed instructions about the keys +++to transfer using an internal stdio protocol, which is +++intentionally not documented (as it may change at any time). +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-transferrer.1 ++@@ -0,0 +1,24 @@ +++.TH git-annex-transferrer 1 +++.SH NAME +++git-annex-transferrer \- transfers content +++.PP +++.SH SYNOPSIS +++git annex transferrer +++.PP +++.SH DESCRIPTION +++This plumbing\-level command is used to transfer data. +++It is a long\-running process, which is fed instructions about +++what to transfer using an internal stdio protocol, which is +++intentionally not documented (as it may change at any time). +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-trust.1 ++@@ -0,0 +1,46 @@ +++.TH git-annex-trust 1 +++.SH NAME +++git-annex-trust \- trust a repository +++.PP +++.SH SYNOPSIS +++git annex trust \fB[repository ...]\fP +++.PP +++.SH DESCRIPTION +++Records that a repository is trusted to not unexpectedly lose +++content. Use with care. +++.PP +++Repositories can be specified using their remote name, their +++description, or their UUID. To trust the current repository, use "here". +++.PP +++Before trusting a repository, consider this scenario. Repository A +++is trusted and B is not; both contain the same content. \fBgit-annex drop\fP +++is run on repository A, which checks that B still contains the content, +++and so the drop proceeds. Then \fBgit-annex drop\fP is run on repository B, +++which trusts A to still contain the content, so the drop succeeds. Now +++the content has been lost. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-json\fP" +++.IP +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-semitrust(1) +++.PP +++git-annex\-untrust(1) +++.PP +++git-annex\-dead(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-unannex.1 ++@@ -0,0 +1,48 @@ +++.TH git-annex-unannex 1 +++.SH NAME +++git-annex-unannex \- undo accidental add command +++.PP +++.SH SYNOPSIS +++git annex unannex \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++Use this to undo an accidental \fBgit annex add\fP command. It puts the +++file back how it was before the add. +++.PP +++Note that for safety, the content of the file remains in the annex, +++until you use \fBgit annex unused\fP and \fBgit annex dropunused\fP. +++.PP +++This is not the command you should use if you intentionally added a +++file some time ago, and don't want its contents any more. In that +++case you should use \fBgit annex drop\fP instead, and you can also +++\fBgit rm\fP the file. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-fast\fP" +++.IP +++Normally this does a slow copy of the file. In \fB\-\-fast\fP mode, it +++instead makes a hard link from the file to the content in the annex. +++But use \-\-fast mode with caution, because editing the file will +++change the content in the annex. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "file matching options" +++The git-annex\-matching\-options(1) +++can be used to specify files to unannex. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-undo.1 ++@@ -0,0 +1,43 @@ +++.TH git-annex-undo 1 +++.SH NAME +++git-annex-undo \- undo last change to a file or directory +++.PP +++.SH SYNOPSIS +++git annex \fB[filename|directory] ...\fP +++.PP +++.SH DESCRIPTION +++When passed a filename, undoes the last change that was made to that +++file. +++.PP +++When passed a directory, undoes the last change that was made to the +++contents of that directory. +++.PP +++Running undo a second time will undo the undo, returning the working +++tree to the same state it had before. To support undoing an undo of +++staged changes, any staged changes are first committed by the +++undo command. +++.PP +++Note that this does not undo get/drop of a file's content; it only +++operates on the file tree committed to git. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-json\fP" +++.IP +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "The git-annex\-common\-options(1) can also be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-add(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-ungroup.1 ++@@ -0,0 +1,23 @@ +++.TH git-annex-ungroup 1 +++.SH NAME +++git-annex-ungroup \- remove a repository from a group +++.PP +++.SH SYNOPSIS +++git annex ungroup \fBrepository groupname\fP +++.PP +++.SH DESCRIPTION +++Removes a repository from a group. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-group(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-uninit.1 ++@@ -0,0 +1,35 @@ +++.TH git-annex-uninit 1 +++.SH NAME +++git-annex-uninit \- de\-initialize git-annex and clean out repository +++.PP +++.SH SYNOPSIS +++git annex uninit +++.PP +++.SH DESCRIPTION +++Use this to stop using git annex. It will unannex every file in the +++repository, and remove all of git-annex's other data, leaving you with a +++git repository plus the previously annexed files. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-json\fP" +++.IP +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-unannex(1) +++.PP +++git-annex\-init(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-unlock.1 ++@@ -0,0 +1,71 @@ +++.TH git-annex-unlock 1 +++.SH NAME +++git-annex-unlock \- unlock files for modification +++.PP +++.SH SYNOPSIS +++git annex unlock \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++Normally, the content of annexed files is protected from being changed. +++Unlocking an annexed file allows it to be modified. When no files are +++specified, all annexed files in the current directory are unlocked. +++.PP +++Unlocking a file changes how it is stored in the git repository (from a +++symlink to a pointer file), so this command will make a change that you +++can commit. +++.PP +++The content of an unlocked file is still stored in git-annex, not git, +++and when you commit modifications to the file, the modifications will also +++be stored in git-annex, with only the pointer file stored in git. +++.PP +++If you use \fBgit add\fP to add a file to the annex, it will be added in unlocked form from +++the beginning. This allows workflows where a file starts out unlocked, is +++modified as necessary, and is locked once it reaches its final version. +++.PP +++Normally, unlocking a file requires a copy to be made of its content, so +++that its original content is preserved, while the copy can be modified. To +++use less space, annex.thin can be set to true; this makes a hard link to +++the content be made instead of a copy. (Only when supported by the file +++system.) While this can save considerable disk space, any modification made +++to a file will cause the old version of the file to be lost from the local +++repository. So, enable annex.thin with care. +++.PP +++.SH EXAMPLES +++ # git annex unlock disk\-image +++ # git commit \-m "unlocked to allow VM to make changes as it runs" +++.PP +++ # git annex unlock photo.jpg +++ # gimp photo.jpg +++ # git annex add photo.jpg +++ # git annex lock photo.jpg +++ # git commit \-m "redeye removal" +++.PP +++.SH OPTIONS +++.IP "file matching options" +++.IP +++The git-annex\-matching\-options(1) +++can be used to specify files to unlock. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-edit(1) +++.PP +++git-annex\-add(1) +++.PP +++git-annex\-lock(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-unregisterurl.1 ++@@ -0,0 +1,59 @@ +++.TH git-annex-unregisterurl 1 +++.SH NAME +++git-annex-unregisterurl \- unregisters an url for a key +++.PP +++.SH SYNOPSIS +++git annex unregisterurl \fB[key url]\fP +++.PP +++.SH DESCRIPTION +++This plumbing\-level command can be used to unregister urls when keys can +++no longer be downloaded from them. +++.PP +++Normally the key is a git-annex formatted key. However, if the key cannot be +++parsed as a key, and is a valid url, an URL key is constructed from the url. +++.PP +++Unregistering a key's last web url will make git-annex no longer treat content +++as being present in the web special remote. If some other special remote +++claims the url, unregistering the url will not update presence information +++for it, because the content may still be present on the remote. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-remote=name|uuid\fP" +++.IP +++Indicate that the url is expected to be claimed by the specified remote. +++If some other remote claims the url instead, unregistering it will fail. +++.IP +++Note that \fB\-\-remote=web\fP will prevent any other remote from claiming +++the url. +++.IP +++.IP "\fB\-\-batch\fP" +++In batch input mode, lines are read from stdin, and each line +++should contain a key and url, separated by a single space. +++.IP +++.IP "\fB\-z\fP" +++When in batch mode, the input is delimited by nulls instead of the usual +++newlines. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-registerurl(1) +++.PP +++git-annex\-reregisterurl(1) +++.PP +++git-annex\-rmurl(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-untrust.1 ++@@ -0,0 +1,39 @@ +++.TH git-annex-untrust 1 +++.SH NAME +++git-annex-untrust \- do not trust a repository +++.PP +++.SH SYNOPSIS +++git annex untrust \fB[repository ...]\fP +++.PP +++.SH DESCRIPTION +++Records that a repository is not trusted and could lose content +++at any time. +++.PP +++Repositories can be specified using their remote name, their +++description, or their UUID. To untrust the current repository, use "here". +++.PP +++.SH OPTIONS +++.IP "\fB\-\-json\fP" +++.IP +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-trust(1) +++.PP +++git-annex\-semitrust(1) +++.PP +++git-annex\-dead(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-unused.1 ++@@ -0,0 +1,100 @@ +++.TH git-annex-unused 1 +++.SH NAME +++git-annex-unused \- look for unused file content +++.PP +++.SH SYNOPSIS +++git annex unused +++.PP +++.SH DESCRIPTION +++Checks the annex for data that does not correspond to any files present +++in any tag or branch, or in the git index, and prints a numbered list +++of the data. +++.PP +++After running this command, you can use the \fB\-\-unused\fP option with many +++other git-annex commands to operate on all the unused data that was found. +++.PP +++For example, to move all unused data to origin: +++.PP +++ git annex unused; git annex move \-\-unused \-\-to origin +++.PP +++.SH OPTIONS +++.IP "\fB\-\-fast\fP" +++.IP +++Only show unused temp and bad files. +++.IP +++.IP "\fB\-\-from=repository\fP" +++Check for unused data that is located in a repository. +++.IP +++The repository should be specified using the name of a configured remote, +++or the UUID or description of a repository. +++.IP +++.IP "\fB\-\-used\-refspec=+ref:\-ref\fP" +++By default, any data that the git index uses, or that any refs in the git +++repository point to is considered to be used. If you only want to use +++some refs, you can use this option to specify the ones to use. Data that +++is not in the specified refs (and not used by the index) will then be +++considered unused. +++.IP +++See REFSPEC FORMAT below for details of the format of this setting. +++.IP +++The git configuration annex.used\-refspec can be used to configure +++this in a more permanent fashion. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH REFSPEC FORMAT +++The refspec format for \-\-used\-refspec and annex.used\-refspec is +++a colon\-separated list of additions and removals of refs. +++A somewhat contrived example: +++.PP +++ +refs/heads/*:+HEAD^:+refs/tags/*:\-refs/tags/old\-tag:reflog +++.PP +++This adds all refs/heads/ refs, as well as the previous version +++of HEAD. It also adds all tags, except for old\-tag. And it adds +++all refs from the reflog. +++.PP +++The default behavior is equivilant to \fB\-\-used\-refspec=+refs/*:+HEAD\fP +++.PP +++The refspec is processed by starting with an empty set of refs, +++and walking the list in order from left to right. +++.PP +++Each + using a glob is matched against all relevant refs +++(a subset of \fBgit show\-ref\fP) and all matching refs are added +++to the set. +++For example, "+refs/remotes/*" adds all remote refs. +++.PP +++Each + without a glob adds the literal value to the set. +++For example, "+HEAD^" adds "HEAD^". +++.PP +++Each \- is matched against the set of refs accumulated so far. +++Any refs with names that match are removed from the set. +++.PP +++"reflog" adds all the refs from the reflog. This will make past versions +++of files not be considered to be unused until the ref expires from the +++reflog (by default for 90 days). Note that this may make git-annex unused +++take some time to complete, it if needs to check every ref from the +++reflog. +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-dropunused(1) +++.PP +++git-annex\-addunused(1) +++.PP +++git-annex\-whereused(1) +++.PP +++git-annex\-oldkeys(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-upgrade.1 ++@@ -0,0 +1,53 @@ +++.TH git-annex-upgrade 1 +++.SH NAME +++git-annex-upgrade \- upgrade repository +++.PP +++.SH SYNOPSIS +++git annex upgrade +++.PP +++.SH DESCRIPTION +++Upgrades the repository to the latest version. +++.PP +++Each git-annex repository has an annex.version in its git configuration, +++that indicates the repository version. When an old repository version +++becomes deprecated, git-annex will automatically upgrade it +++(unless annex.autoupgraderepository is set to false). To manually upgrade, +++you can use this command. +++.PP +++Sometimes there's a newer repository version that is not the default yet, +++and then you can use this command to upgrade to it. +++.PP +++Currently, git-annex supports upgrades all the way back to version 0, which +++was only used by its author. It's expected that git-annex will always +++support upgrading from all past repository versions \-\- this is necessary to +++allow archives to be taken offline for years and later used. +++.PP +++.SH OPTIONS +++.IP "\-\-autoonly" +++.IP +++Only do whatever automatic upgrade can be done, don't necessarily +++upgrade to the latest version. This is used internally by git-annex. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-migrate(1) +++.PP +++Upgrades procedures and history: +++.PP +++News and release notes: +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-vadd.1 ++@@ -0,0 +1,38 @@ +++.TH git-annex-vadd 1 +++.SH NAME +++git-annex-vadd \- add subdirs to current view +++.PP +++.SH SYNOPSIS +++git annex vadd \fB[field=glob ...] [field=value ...] [tag ...] [?tag ...] [field?=glob]\fP +++.PP +++.SH DESCRIPTION +++Changes the current view, adding an additional level of directories +++to categorize the files. +++.PP +++For example, when the view is by author/tag, \fBvadd year=*\fP will +++change it to year/author/tag. +++.PP +++So will \fBvadd year=2014 year=2013\fP, but limiting the years in view +++to only those two. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-metadata(1) +++.PP +++git-annex\-view(1) +++.PP +++git-annex\-vpop(1) +++.PP +++git-annex\-vfilter(1) +++.PP +++git-annex\-vcycle(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-vcycle.1 ++@@ -0,0 +1,34 @@ +++.TH git-annex-vcycle 1 +++.SH NAME +++git-annex-vcycle \- switch view to next layout +++.PP +++.SH SYNOPSIS +++git annex vcycle +++.PP +++.SH DESCRIPTION +++When a view involves nested subdirectories, this cycles the order. +++.PP +++For example, when the view is by year/author/tag, \fBvcycle\fP will switch +++it to author/tag/year. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-metadata(1) +++.PP +++git-annex\-view(1) +++.PP +++git-annex\-vpop(1) +++.PP +++git-annex\-vadd(1) +++.PP +++git-annex\-vfilter(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-version.1 ++@@ -0,0 +1,33 @@ +++.TH git-annex-version 1 +++.SH NAME +++git-annex-version \- show version info +++.PP +++.SH SYNOPSIS +++git annex version +++.PP +++.SH DESCRIPTION +++Shows the version of git-annex, as well as repository version information. +++.PP +++git-annex's version is in the form MAJOR.DATE, where MAJOR is a number +++like 5, which corresponds to the current repository version, and DATE +++is the date of the last release, like 20150320. +++.PP +++Daily builds of git-annex will append a "\-gREF" to the version, which +++corresponds to the git ref from git-annex's source repository that was +++built. Therefore, "5.20150320\-gdd35cf3" is a daily build, and +++"5.20150401" is an April 1st release made a bit later. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-raw\fP" +++.IP +++Causes only git-annex's version to be output, and nothing else. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-vfilter.1 ++@@ -0,0 +1,32 @@ +++.TH git-annex-vfilter 1 +++.SH NAME +++git-annex-vfilter \- filter current view +++.PP +++.SH SYNOPSIS +++git annex vfilter \fB[tag ...] [field=value ...] [?tag ...] [field?=glob] [!tag ...] [field!=value ...]\fP +++.PP +++.SH DESCRIPTION +++Filters the current view to only the files that have the +++specified field values and tags. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-metadata(1) +++.PP +++git-annex\-view(1) +++.PP +++git-annex\-vpop(1) +++.PP +++git-annex\-vadd(1) +++.PP +++git-annex\-vcycle(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-vicfg.1 ++@@ -0,0 +1,28 @@ +++.TH git-annex-vicfg 1 +++.SH NAME +++git-annex-vicfg \- edit configuration in git-annex branch +++.PP +++.SH SYNOPSIS +++git annex vicfg +++.PP +++.SH DESCRIPTION +++Opens EDITOR on a temp file containing all of git-annex's +++configuration settings that are stored in the git-annex branch, +++and when it exits, stores any changes made back to the git-annex branch. +++.PP +++Unlike git config settings, these configuration settings can be seen +++by all clones of the repository. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git\-config(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-view.1 ++@@ -0,0 +1,73 @@ +++.TH git-annex-view 1 +++.SH NAME +++git-annex-view \- enter a view branch +++.PP +++.SH SYNOPSIS +++git annex view \fB[tag ...] [field=value ...] [field=glob ...] [?tag ...] [field?=glob] [!tag ...] [field!=value ...]\fP +++.PP +++.SH DESCRIPTION +++Uses metadata to build a view branch of the files in the current branch, +++and checks out the view branch. Only files in the current branch whose +++metadata matches all the specified field values and tags will be +++shown in the view. +++.PP +++Multiple values for a metadata field can be specified, either by using +++a glob (\fBfield="*"\fP) or by listing each wanted value. The resulting view +++will put files in subdirectories according to the value of their fields. +++.PP +++Once within such a view, you can make additional directories, and +++copy or move files into them. When you commit, the metadata will +++be updated to correspond to your changes. Deleting files and committing +++also updates the metadata. +++.PP +++As well as the usual metadata, there are fields available corresponding +++to the path to the file. So a file "foo/bar/baz/file" has fields "/=foo", +++"foo/=bar", and "foo/bar/=baz". These location fields can be used the +++same as other metadata to construct the view. +++.PP +++For example, \fB/=foo\fP will only include files from the foo +++directory in the view, while \fBfoo/=*\fP will preserve the +++subdirectories of the foo directory in the view. +++.PP +++To enter a view containing only files that lack a given metadata +++value or tag, specify field!=value or !tag. (Globs cannot be used here.) +++.PP +++\fBfield?=*\fP is like \fBfield=*\fP but adds an additional directory named \fB_\fP (by +++default) that contains files that do not have the field set to any value. +++Similarly, \fB?tag\fP adds an additional directory named \fB_\fP that contains +++files that do not have any tags set. Moving files from the \fB_\fP directory to +++another directory and committing will set the metadata. And moving files +++into the \fB_\fP directory and committing will unset the metadata. +++.PP +++The name of the \fB_\fP directory can be changed using the annex.viewunsetdirectory +++git config. +++.PP +++Filenames in the view branch include their path within the original branch, to +++ensure that they are unique. The path comes after the main filename, and +++before any extensions. For example, "foo/bar.baz" will have a name +++like "bar_%foo%.baz". annex.maxextensionlength can be used to configure +++what is treated as an extension. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-metadata(1) +++.PP +++git-annex\-vpop(1) +++.PP +++git-annex\-vfilter(1) +++.PP +++git-annex\-vadd(1) +++.PP +++git-annex\-vcycle(1) +++.PP +++git-annex\-adjust(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-vpop.1 ++@@ -0,0 +1,34 @@ +++.TH git-annex-vpop 1 +++.SH NAME +++git-annex-vpop \- switch back to previous view +++.PP +++.SH SYNOPSIS +++git annex vpop \fB[N]\fP +++.PP +++.SH DESCRIPTION +++Switches from the currently active view back to the previous view. +++Or, from the first view back to original branch. +++.PP +++The optional number tells how many views to pop. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-metadata(1) +++.PP +++git-annex\-view(1) +++.PP +++git-annex\-vfilter(1) +++.PP +++git-annex\-vadd(1) +++.PP +++git-annex\-vcycle(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-wanted.1 ++@@ -0,0 +1,35 @@ +++.TH git-annex-wanted 1 +++.SH NAME +++git-annex-wanted \- get or set preferred content expression +++.PP +++.SH SYNOPSIS +++git annex wanted \fBrepository [expression]\fP +++.PP +++.SH DESCRIPTION +++When run with an expression, configures the content that is preferred +++to be held in the archive. See git-annex\-preferred\-content(1) +++.PP +++For example: +++.PP +++ git annex wanted . "include=*.mp3 or include=*.ogg" +++.PP +++Without an expression, displays the current preferred content setting +++of the repository. +++.PP +++.SH OPTIONS +++.IP "The git-annex\-common\-options(1) can be used." +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-required(1) +++.PP +++git-annex\-preferred\-content(1) +++.PP +++git-annex\-groupwanted(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-watch.1 ++@@ -0,0 +1,41 @@ +++.TH git-annex-watch 1 +++.SH NAME +++git-annex-watch \- daemon to watch for changes +++.PP +++.SH SYNOPSIS +++git annex watch +++.PP +++.SH DESCRIPTION +++Watches for changes to files in the current directory and its subdirectories, +++and takes care of automatically adding new files, as well as dealing with +++deleted, copied, and moved files. With this running as a daemon in the +++background, you no longer need to manually run git commands when +++manipulating your files. +++.PP +++By default, all new files in the directory will be added to the repository. +++(Including dotfiles.) To block some files from being added, use +++\fB.gitignore\fP files. +++.PP +++By default, all files that are added are added to the annex, the same +++as when you run \fBgit annex add\fP. If you configure annex.largefiles, +++files that it does not match will instead be added with \fBgit add\fP. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-foreground\fP" +++.IP +++Avoid forking to the background. +++.IP +++.IP "\fB\-\-stop\fP" +++Stop a running daemon in the current repository. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-assistant(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-webapp.1 ++@@ -0,0 +1,53 @@ +++.TH git-annex-webapp 1 +++.SH NAME +++git-annex-webapp \- launch webapp +++.PP +++.SH SYNOPSIS +++git annex webapp +++.PP +++.SH DESCRIPTION +++Opens a web app, that allows easy setup of a git-annex repository, +++and control of the git-annex assistant. If the assistant is not +++already running, it will be started. This will cause new files to +++be added and syncing operations to be performed. +++.PP +++By default, the webapp can only be accessed from localhost, and running +++it opens a browser window. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-listen=address\fP" +++.IP +++Useful for using the webapp on a remote computer. This makes the webapp +++listen on the specified IP address. (Or on the address that a specified +++hostname resolves to.) +++.IP +++This disables running a local web browser, and outputs the url you +++can use to open the webapp. +++.IP +++Set annex.listen in the git config to make the webapp always +++listen on an IP address. +++.IP +++.IP "\fB\-\-port=number\fP" +++Use this option to specify a port for the webapp. +++By default, the webapp picks an unused port. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH USING HTTPS +++When using the webapp on a remote computer, you'll almost certainly +++want to enable HTTPS. The webapp will use HTTPS if it finds +++a .git/annex/privkey.pem and .git/annex/certificate.pem. Here's +++one way to generate those files, using a self\-signed certificate: +++.PP +++ openssl genrsa \-out .git/annex/privkey.pem 4096 +++ openssl req \-new \-x509 \-key .git/annex/privkey.pem > .git/annex/certificate.pem +++.PP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-assistant(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-whereis.1 ++@@ -0,0 +1,107 @@ +++.TH git-annex-whereis 1 +++.SH NAME +++git-annex-whereis \- lists repositories that have file content +++.PP +++.SH SYNOPSIS +++git annex whereis \fB[path ...]\fP +++.PP +++.SH DESCRIPTION +++Displays information about where the contents of files are located. +++.PP +++For example: +++.PP +++ # git annex whereis +++ whereis my_cool_big_file (1 copy) +++ 0c443de8\-e644\-11df\-acbf\-f7cd7ca6210d \-\- laptop +++ whereis other_file (3 copies) +++ 0c443de8\-e644\-11df\-acbf\-f7cd7ca6210d \-\- laptop +++ 62b39bbe\-4149\-11e0\-af01\-bb89245a1e61 \-\- usb drive [here] +++ 7570b02e\-15e9\-11e0\-adf0\-9f3f94cb2eaa \-\- backup drive +++.PP +++Note that this command does not contact remotes to verify if they still +++have the content of files. It only reports on the last information that was +++received from remotes. +++.PP +++.SH OPTIONS +++.IP "matching options" +++.IP +++The git-annex\-matching\-options(1) +++can be used to control what to act on. +++.IP +++.IP "\fB\-\-key=keyname\fP" +++Show where a particular git-annex key is located. +++.IP +++.IP "\fB\-\-all\fP \fB\-A\fP" +++Show whereis information for all known keys. +++.IP +++(Except for keys that have been marked as dead, +++see git-annex\-dead(1).) +++.IP +++.IP "\fB\-\-branch=ref\fP" +++Show whereis information for files in the specified branch or treeish. +++.IP +++.IP "\fB\-\-unused\fP" +++Show whereis information for files found by last run of git-annex unused. +++.IP +++.IP "\fB\-\-batch\fP" +++Enables batch mode, in which a file is read in a line from stdin, +++its information displayed, and repeat. +++.IP +++Note that if the file is not an annexed file, or does not match +++specified matching options, an empty line will be +++output instead. +++.IP +++.IP "\fB\-\-batch\-keys\fP" +++This is like \fB\-\-batch\fP but the lines read from stdin are parsed as keys. +++.IP +++.IP "\fB\-z\fP" +++Makes batch input be delimited by nulls instead of the usual +++newlines. +++.IP +++.IP "\fB\-\-json\fP" +++Enable JSON output. This is intended to be parsed by programs that use +++git-annex. Each line of output is a JSON object. +++.IP +++.IP "\fB\-\-json\-error\-messages\fP" +++Messages that would normally be output to standard error are included in +++the JSON instead. +++.IP +++.IP "\fB\-\-format=value\fP" +++Use custom output formatting. +++.IP +++The value is a format string, in which '${var}' is expanded to the +++value of a variable. To right\-justify a variable with whitespace, +++use '${var;width}' ; to left\-justify a variable, use '${var;\-width}'; +++to escape unusual characters (including control characters) +++in a variable, use '${escaped_var}' +++.IP +++These variables are available for use in formats: file, key, uuid, +++url, backend, bytesize, humansize, keyname, hashdirlower, hashdirmixed, +++mtime (for the mtime field of a WORM key). +++.IP +++Also, '\\n' is a newline, '\\000' is a NULL, etc. +++.IP +++When the format contains the uuid variable, it will be expanded in turn +++for each repository that contains the file content. For example, +++with \-\-format="${file} ${uuid}\\n", output will look like: +++.IP +++ foo 00000000\-0000\-0000\-0000\-000000000001 +++ foo a7f7ddd0\-9a08\-11ea\-ab66\-8358e4209d30 +++ bar a7f7ddd0\-9a08\-11ea\-ab66\-8358e4209d30 +++.IP +++The same applies when the url variable is used and a file has multiple +++recorded urls. +++.IP +++.IP "Also the git-annex\-common\-options(1) can be used." +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-find(1) +++.PP +++git-annex\-list(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex-whereused.1 ++@@ -0,0 +1,47 @@ +++.TH git-annex-whereused 1 +++.SH NAME +++git-annex-whereused \- find what files use or used a key +++.PP +++.SH SYNOPSIS +++git annex whereused \fB\-\-key=keyname|\-\-unused\fP +++.PP +++.SH DESCRIPTION +++Finds what files use or used a key. +++.PP +++For each file in the working tree that uses a key, this outputs one line, +++starting with the key, then a space, and then the name of the file. +++When multiple files use the same key, they will all be listed. When +++nothing is found that uses the key, there will be no output. +++.PP +++The default is to find only files in the current working tree that use a +++key. The \fB\-\-historical\fP option makes it also find past versions of files. +++.PP +++.SH OPTIONS +++.IP "\fB\-\-key=keyname\fP" +++.IP +++Operate on this key. +++.IP +++.IP "\fB\-\-unused\fP" +++Operate on keys found by last run of git-annex unused. +++.IP +++Usually these keys won't be used by any files in the current working +++tree, or any tags or branches. Combining this option with \fB\-\-historical\fP +++will find past uses of the keys. +++.IP +++.IP "\fB\-\-historical\fP" +++When no files in the current working tree use a key, this causes more +++work to be done, looking at past versions of the current branch, other +++branches, tags, and the reflog, to find somewhere that the key was used. +++It stops after finding one use of the key, and outputs a git rev that +++refers to where it was used, eg "HEAD@{40}:somefile" +++.IP +++.SH SEE ALSO +++git-annex(1) +++.PP +++git-annex\-unused(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-annex.1 ++@@ -0,0 +1,1942 @@ +++.TH git-annex 1 +++.SH NAME +++git-annex \- manage files with git, without checking their contents in +++.PP +++.SH SYNOPSIS +++git annex command [params ...] +++.PP +++.SH DESCRIPTION +++git-annex allows managing files with git, without checking the file +++contents into git. While that may seem paradoxical, it is useful when +++dealing with files larger than git can currently easily handle, whether due +++to limitations in memory, checksumming time, or disk space. +++.PP +++Even without file content tracking, being able to manage files with git, +++move files around and delete files with versioned directory trees, and use +++branches and distributed clones, are all very handy reasons to use git. And +++annexed files can co\-exist in the same git repository with regularly +++versioned files, which is convenient for maintaining documents, Makefiles, +++etc that are associated with annexed files but that benefit from full +++revision control. +++.PP +++When a file is annexed, its content is moved into a key\-value store, and +++a symlink is made that points to the content. These symlinks are checked into +++git and versioned like regular files. You can move them around, delete +++them, and so on. Pushing to another git repository will make git-annex +++there aware of the annexed file, and it can be used to retrieve its +++content from the key\-value store. +++.PP +++.SH EXAMPLES +++ # git annex get video/hackity_hack_and_kaxxt.mov +++ get video/hackity_hack_and_kaxxt.mov (not available) +++ I was unable to access these remotes: server +++ Try making some of these repositories available: +++ 5863d8c0\-d9a9\-11df\-adb2\-af51e6559a49 \-\- my home file server +++ 58d84e8a\-d9ae\-11df\-a1aa\-ab9aa8c00826 \-\- portable USB drive +++ ca20064c\-dbb5\-11df\-b2fe\-002170d25c55 \-\- backup SATA drive +++ failed +++ # sudo mount /media/usb +++ # git remote add usbdrive /media/usb +++ # git annex get video/hackity_hack_and_kaxxt.mov +++ get video/hackity_hack_and_kaxxt.mov (from usbdrive...) ok +++ +++ # git annex add iso +++ add iso/Debian_5.0.iso ok +++ +++ # git annex drop iso/Debian_4.0.iso +++ drop iso/Debian_4.0.iso ok +++ +++ # git annex move iso \-\-to=usbdrive +++ move iso/Debian_5.0.iso (moving to usbdrive...) ok +++.PP +++.SH COMMONLY USED COMMANDS +++.IP "\fBhelp\fP" +++.IP +++Display built\-in help. +++.IP +++For help on a specific command, use \fBgit annex help command\fP +++.IP +++.IP "\fBadd [path ...]\fP" +++Adds files to the annex. +++.IP +++See git-annex\-add(1) for details. +++.IP +++.IP "\fBget [path ...]\fP" +++Makes the content of annexed files available in this repository. +++.IP +++See git-annex\-get(1) for details. +++.IP +++.IP "\fBdrop [path ...]\fP" +++Drops the content of annexed files from this repository. +++.IP +++See git-annex\-drop(1) for details. +++.IP +++.IP "\fBmove [path ...] [\-\-from=remote|\-\-to=remote]\fP" +++Moves the content of files from or to another remote. +++.IP +++See git-annex\-move(1) for details. +++.IP +++.IP "\fBcopy [path ...] [\-\-from=remote|\-\-to=remote]\fP" +++Copies the content of files from or to another remote. +++.IP +++See git-annex\-copy(1) for details. +++.IP +++.IP "\fBstatus [path ...]\fP" +++Show the working tree status. (deprecated) +++.IP +++See git-annex\-status(1) for details. +++.IP +++.IP "\fBunlock [path ...]\fP" +++Unlock annexed files for modification. +++.IP +++See git-annex\-unlock(1) for details. +++.IP +++.IP "\fBedit [path ...]\fP" +++This is an alias for the unlock command. May be easier to remember, +++if you think of this as allowing you to edit an annexed file. +++.IP +++.IP "\fBlock [path ...]\fP" +++Use this to undo an unlock command if you don't want to modify +++the files, or have made modifications you want to discard. +++.IP +++See git-annex\-lock(1) for details. +++.IP +++.IP "\fBpull [remote ...]\fP" +++Pull content from remotes. +++.IP +++See git-annex\-pull(1) for details. +++.IP +++.IP "\fBpush [remote ...]\fP" +++Push content to remotes. +++.IP +++See git-annex\-push(1) for details. +++.IP +++.IP "\fBsync [remote ...]\fP" +++Synchronize local repository with remotes. +++.IP +++See git-annex\-sync(1) for details. +++.IP +++.IP "\fBassist [remote ...]\fP" +++Add files and sync changes with remotes. +++.IP +++See git-annex\-assist(1) for details. +++.IP +++.IP "\fBsatisfy [remote ...]\fP" +++Satisfy preferred content settings by transferring and dropping content. +++.IP +++See git-annex\-satisfy(1) for details. +++.IP +++.IP "\fBmirror [path ...] [\-\-to=remote|\-\-from=remote]\fP" +++Mirror content of files to/from another repository. +++.IP +++See git-annex\-mirror(1) for details. +++.IP +++.IP "\fBaddurl [url ...]\fP" +++Downloads each url to its own file, which is added to the annex. +++.IP +++See git-annex\-addurl(1) for details. +++.IP +++.IP "\fBrmurl file url\fP" +++Record that the file is no longer available at the url. +++.IP +++See git-annex\-rmurl(1) for details. +++.IP +++.IP "\fBimport \-\-from remote branch[:subdir] | [path ...]\fP" +++Add a tree of files to the repository. +++.IP +++See git-annex\-import(1) for details. +++.IP +++.IP "\fBimportfeed [url ...]\fP" +++Imports the contents of podcast feeds into the annex. +++.IP +++See git-annex\-importfeed(1) for details. +++.IP +++.IP "\fBexport treeish \-\-to remote\fP" +++Export content to a remote. +++.IP +++See git-annex\-export(1) for details. +++.IP +++.IP "\fBundo [filename|directory] ...\fP" +++Undo last change to a file or directory. +++.IP +++See git-annex\-undo(1) for details. +++.IP +++.IP "\fBmulticast\fP" +++Multicast file distribution. +++.IP +++See git-annex\-multicast(1) for details. +++.IP +++.IP "\fBwatch\fP" +++Daemon to watch for changes and autocommit. +++.IP +++See git-annex\-watch(1) for details. +++.IP +++.IP "\fBassistant\fP" +++Daemon to automatically sync changes. +++.IP +++See git-annex\-assistant(1) for details. +++.IP +++.IP "\fBwebapp\fP" +++Opens a web app, that allows easy setup of a git-annex repository, +++and control of the git-annex assistant. If the assistant is not +++already running, it will be started. +++.IP +++See git-annex\-webapp(1) for details. +++.IP +++.IP "\fBremotedaemon\fP" +++Persistant communication with remotes. +++.IP +++See git-annex\-remotedaemon(1) for details. +++.IP +++.SH REPOSITORY SETUP COMMANDS +++.IP "\fBinit [description]\fP" +++.IP +++Until a repository (or one of its remotes) has been initialized, +++git-annex will refuse to operate on it, to avoid accidentally +++using it in a repository that was not intended to have an annex. +++.IP +++See git-annex\-init(1) for details. +++.IP +++.IP "\fBdescribe repository description\fP" +++Changes the description of a repository. +++.IP +++See git-annex\-describe(1) for details. +++.IP +++.IP "\fBinitremote name type=value [param=value ...]\fP" +++Creates a new special remote, and adds it to \fB.git/config\fP. +++.IP +++See git-annex\-initremote(1) for details. +++.IP +++.IP "\fBenableremote name [param=value ...]\fP" +++Enables use of an existing special remote in the current repository. +++.IP +++See git-annex\-enableremote(1) for details. +++.IP +++.IP "\fBconfigremote name [param=value ...]\fP" +++Changes configuration of an existing special remote. +++.IP +++See git-annex\-configremote(1) for details. +++.IP +++.IP "\fBrenameremote\fP" +++Renames a special remote. +++.IP +++See git-annex\-renameremote(1) for details. +++.IP +++.IP "\fBenable\-tor\fP" +++Sets up tor hidden service. +++.IP +++See git-annex\-enable\-tor(1) for details. +++.IP +++.IP "\fBnumcopies [N]\fP" +++Configure desired number of copies. +++.IP +++See git-annex\-numcopies(1) for details. +++.IP +++.IP "\fBmincopies [N]\fP" +++Configure minimum number of copies. +++.IP +++See git-annex\-mincopies(1) for details. +++.IP +++.IP "\fBtrust [repository ...]\fP" +++Records that a repository is trusted to not unexpectedly lose +++content. Use with care. +++.IP +++See git-annex\-trust(1) for details. +++.IP +++.IP "\fBuntrust [repository ...]\fP" +++Records that a repository is not trusted and could lose content +++at any time. +++.IP +++See git-annex\-untrust(1) for details. +++.IP +++.IP "\fBsemitrust [repository ...]\fP" +++Returns a repository to the default semi trusted state. +++.IP +++See git-annex\-semitrust(1) for details. +++.IP +++.IP "\fBgroup repository groupname\fP" +++Add a repository to a group. +++.IP +++See git-annex\-group(1) for details. +++.IP +++.IP "\fBungroup repository groupname\fP" +++Removes a repository from a group. +++.IP +++See git-annex\-ungroup(1) for details. +++.IP +++.IP "\fBwanted repository [expression]\fP" +++Get or set preferred content expression. +++.IP +++See git-annex\-wanted(1) for details. +++.IP +++.IP "\fBgroupwanted groupname [expression]\fP" +++Get or set groupwanted expression. +++.IP +++See git-annex\-groupwanted(1) for details. +++.IP +++.IP "\fBrequired repository [expression]\fP" +++Get or set required content expression. +++.IP +++See git-annex\-required(1) for details. +++.IP +++.IP "\fBschedule repository [expression]\fP" +++Get or set scheduled jobs. +++.IP +++See git-annex\-schedule(1) for details. +++.IP +++.IP "\fBconfig\fP" +++Get and set other configuration stored in git-annex branch. +++.IP +++See git-annex\-config(1) for details. +++.IP +++.IP "\fBvicfg\fP" +++Opens EDITOR on a temp file containing most of the above configuration +++settings, as well as a few others, and when it exits, stores any changes +++made back to the git-annex branch. +++.IP +++See git-annex\-vicfg(1) for details. +++.IP +++.IP "\fBadjust\fP" +++Switches a repository to use an adjusted branch, which can automatically +++unlock all files, etc. +++.IP +++See git-annex\-adjust(1) for details. +++.IP +++.IP "\fBdirect\fP" +++Switches a repository to use direct mode. (deprecated) +++.IP +++See git-annex\-direct(1) for details. +++.IP +++.IP "\fBindirect\fP" +++Switches a repository to use indirect mode. (deprecated) +++.IP +++See git-annex\-indirect(1) for details. +++.IP +++.SH REPOSITORY MAINTENANCE COMMANDS +++.IP "\fBfsck [path ...]\fP" +++.IP +++Checks the annex consistency, and warns about or fixes any problems found. +++This is a good complement to \fBgit fsck\fP. +++.IP +++See git-annex\-fsck(1) for details. +++.IP +++.IP "\fBexpire [repository:]time ...\fP" +++Expires repositories that have not recently performed an activity +++(such as a fsck). +++.IP +++See git-annex\-expire(1) for details. +++.IP +++.IP "\fBunused\fP" +++Checks the annex for data that does not correspond to any files present +++in any tag or branch, and prints a numbered list of the data. +++.IP +++See git-annex\-unused(1) for details. +++.IP +++.IP "\fBdropunused [number|range ...]\fP" +++Drops the data corresponding to the numbers, as listed by the last +++\fBgit annex unused\fP +++.IP +++See git-annex\-dropunused(1) for details. +++.IP +++.IP "\fBaddunused [number|range ...]\fP" +++Adds back files for the content corresponding to the numbers or ranges, +++as listed by the last \fBgit annex unused\fP. +++.IP +++See git-annex\-addunused(1) for details. +++.IP +++.IP "\fBfix [path ...]\fP" +++Fixes up symlinks that have become broken to again point to annexed content. +++.IP +++See git-annex\-fix(1) for details. +++.IP +++.IP "\fBmerge\fP" +++Automatically merge changes from remotes. +++.IP +++See git-annex\-merge(1) for details. +++.IP +++.IP "\fBupgrade\fP" +++Upgrades the repository. +++.IP +++See git-annex\-upgrade(1) for details. +++.IP +++.IP "\fBdead [repository ...] [\-\-key key]\fP" +++Indicates that a repository or a single key has been irretrievably lost. +++.IP +++See git-annex\-dead(1) for details. +++.IP +++.IP "\fBforget\fP" +++Causes the git-annex branch to be rewritten, throwing away historical +++data about past locations of files. +++.IP +++See git-annex\-forget(1) for details. +++.IP +++.IP "\fBfilter\-branch\fP" +++Produces a filtered version of the git-annex branch. +++.IP +++See git-annex\-filter\-branch(1) for details. +++.IP +++.IP "\fBrepair\fP" +++This can repair many of the problems with git repositories that \fBgit fsck\fP +++detects, but does not itself fix. It's useful if a repository has become +++badly damaged. One way this can happen is if a repository used by git-annex +++is on a removable drive that gets unplugged at the wrong time. +++.IP +++See git-annex\-repair(1) for details. +++.IP +++.IP "\fBp2p\fP" +++Configure peer\-2\-Peer links between repositories. +++.IP +++See git-annex\-p2p(1) for details. +++.IP +++.SH QUERY COMMANDS +++.IP "\fBfind [path ...]\fP" +++.IP +++Outputs a list of annexed files in the specified path. With no path, +++finds files in the current directory and its subdirectories. +++.IP +++See git-annex\-find(1) for details. +++.IP +++.IP "\fBwhereis [path ...]\fP" +++Displays information about where the contents of files are located. +++.IP +++See git-annex\-whereis(1) for details. +++.IP +++.IP "\fBlist [path ...]\fP" +++Displays a table of remotes that contain the contents of the specified +++files. This is similar to whereis but a more compact display. +++.IP +++See git-annex\-list(1) for details. +++.IP +++.IP "\fBwhereused\fP" +++Finds what files use or used a key. +++.IP +++.IP "\fBlog [path ...]\fP" +++Displays the location log for the specified file or files, +++showing each repository they were added to ("+") and removed from ("\-"). +++.IP +++See git-annex\-log(1) for details. +++.IP +++.IP "\fBoldkeys [path ...]\fP" +++List keys used for old versions of files. +++.IP +++See git-annex\-oldkeys(1) for details. +++.IP +++.IP "\fBinfo [directory|file|remote|uuid ...]\fP" +++Displays statistics and other information for the specified item, +++which can be a directory, or a file, or a remote, or the uuid of a +++repository. +++.IP +++When no item is specified, displays statistics and information +++for the repository as a whole. +++.IP +++See git-annex\-info(1) for details. +++.IP +++.IP "\fBversion\fP" +++Shows the version of git-annex, as well as repository version information. +++.IP +++See git-annex\-version(1) for details. +++.IP +++.IP "\fBmap\fP" +++Generate map of repositories. +++.IP +++See git-annex\-map(1) for details. +++.IP +++.IP "\fBinprogress\fP" +++Access files while they're being downloaded. +++.IP +++See git-annex\-inprogress(1) for details. +++.IP +++.IP "\fBfindkeys\fP" +++Similar to \fBgit-annex find\fP, but operating on keys. +++.IP +++See git-annex\-findkeys(1) for details. +++.IP +++.SH METADATA COMMANDS +++.IP "\fBmetadata [path ...]\fP" +++.IP +++The content of an annexed file can have any number of metadata fields +++attached to it to describe it. Each metadata field can in turn +++have any number of values. +++.IP +++This command can be used to set metadata, or show the currently set +++metadata. +++.IP +++See git-annex\-metadata(1) for details. +++.IP +++.IP "\fBview [tag ...] [field=value ...] [field=glob ...] [?tag ...] [field?=glob] [!tag ...] [field!=value ...]\fP" +++Uses metadata to build a view branch of the files in the current branch, +++and checks out the view branch. Only files in the current branch whose +++metadata matches all the specified field values and tags will be +++shown in the view. +++.IP +++See git-annex\-view(1) for details. +++.IP +++.IP "\fBvpop [N]\fP" +++Switches from the currently active view back to the previous view. +++Or, from the first view back to original branch. +++.IP +++See git-annex\-vpop(1) for details. +++.IP +++.IP "\fBvfilter [tag ...] [field=value ...] [!tag ...] [field!=value ...]\fP" +++Filters the current view to only the files that have the +++specified field values and tags. +++.IP +++See git-annex\-vfilter(1) for details. +++.IP +++.IP "\fBvadd [field=glob ...] [field=value ...] [tag ...]\fP" +++Changes the current view, adding an additional level of directories +++to categorize the files. +++.IP +++See git-annex\-vfilter(1) for details. +++.IP +++.IP "\fBvcycle\fP" +++When a view involves nested subdirectories, this cycles the order. +++.IP +++See git-annex\-vcycle(1) for details. +++.IP +++.SH UTILITY COMMANDS +++.IP "\fBmigrate [path ...]\fP" +++.IP +++Changes the specified annexed files to use a different key\-value backend. +++.IP +++See git-annex\-migrate(1) for details. +++.IP +++.IP "\fBreinject src dest\fP" +++Moves the src file into the annex as the content of the dest file. +++This can be useful if you have obtained the content of a file from +++elsewhere and want to put it in the local annex. +++.IP +++See git-annex\-reinject(1) for details. +++.IP +++.IP "\fBunannex [path ...]\fP" +++Use this to undo an accidental \fBgit annex add\fP command. It puts the +++file back how it was before the add. +++.IP +++See git-annex\-unannex(1) for details. +++.IP +++.IP "\fBuninit\fP" +++De\-initialize git-annex and clean out repository. +++.IP +++See git-annex\-uninit(1) for details. +++.IP +++.IP "\fBreinit uuid|description\fP" +++Initialize repository, reusing old UUID. +++.IP +++See git-annex\-reinit(1) for details. +++.IP +++.SH PLUMBING COMMANDS +++.IP "\fBpre\-commit [path ...]\fP" +++.IP +++This is meant to be called from git's pre\-commit hook. \fBgit annex init\fP +++automatically creates a pre\-commit hook using this. +++.IP +++See git-annex\-pre\-commit(1) for details. +++.IP +++.IP "\fBpost\-receive\fP" +++This is meant to be called from git's post\-receive hook. \fBgit annex init\fP +++automatically creates a post\-receive hook using this. +++.IP +++See git-annex\-post\-receive(1) for details. +++.IP +++.IP "\fBlookupkey [file ...]\fP" +++Looks up key used for file. +++.IP +++See git-annex\-lookupkey(1) for details. +++.IP +++.IP "\fBcalckey [file ...]\fP" +++Calculates the key that would be used to refer to a file. +++.IP +++See git-annex\-calckey(1) for details. +++.IP +++.IP "\fBcontentlocation [key ..]\fP" +++Looks up location of annexed content for a key. +++.IP +++See git-annex\-contentlocation(1) for details. +++.IP +++.IP "\fBexaminekey [key ...]\fP" +++Print information that can be determined purely by looking at the key. +++.IP +++See git-annex\-examinekey(1) for details. +++.IP +++.IP "\fBmatchexpression\fP" +++Checks if a preferred content expression matches provided data. +++.IP +++See git-annex\-matchexpression(1) for details. +++.IP +++.IP "\fBfromkey [key file]\fP" +++Manually set up a file in the git repository to link to a specified key. +++.IP +++See git-annex\-fromkey(1) for details. +++.IP +++.IP "\fBregisterurl [key url]\fP" +++Registers an url for a key. +++.IP +++See git-annex\-registerurl(1) for details. +++.IP +++.IP "\fBunregisterurl [key url]\fP" +++Unregisters an url for a key. +++.IP +++See git-annex\-unregisterurl(1) for details. +++.IP +++.IP "\fBreregisterurl [key url]\fP" +++Updates url registration information. +++.IP +++See git-annex\-reregisterurl(1) for details. +++.IP +++.IP "\fBsetkey key file\fP" +++Moves a file into the annex as the content of a key. +++.IP +++See git-annex\-setkey(1) for details. +++.IP +++.IP "\fBdropkey [key ...]\fP" +++Drops annexed content for specified keys. +++.IP +++See git-annex\-dropkey(1) for details. +++.IP +++.IP "\fBtransferkey key [\-\-from=remote|\-\-to=remote]\fP" +++Transfers a key from or to a remote. +++.IP +++See git-annex\-transferkey(1) for details. +++.IP +++.IP "\fBtransferrer\fP" +++Used internally by git-annex to transfer content. +++.IP +++See git-annex\-transferrer(1) for details. +++.IP +++.IP "\fBtransferkeys\fP" +++Used internally by old versions of the assistant. +++.IP +++See git-annex\-transferkey(1) for details. +++.IP +++.IP "\fBsetpresentkey key uuid [1|0]\fP" +++This plumbing\-level command changes git-annex's records about whether +++the specified key's content is present in a remote with the specified uuid. +++.IP +++See git-annex\-setpresentkey(1) for details. +++.IP +++.IP "\fBreadpresentkey key uuid\fP" +++Read records of where key is present. +++.IP +++See git-annex\-readpresentkey(1) for details. +++.IP +++.IP "\fBcheckpresentkey key remote\fP" +++Check if key is present in remote. +++.IP +++See git-annex\-checkpresentkey(1) for details. +++.IP +++.IP "\fBrekey [file key ...]\fP" +++Change keys used for files. +++.IP +++See git-annex\-rekey(1) for details. +++.IP +++.IP "\fBresolvemerge\fP" +++Resolves a conflicted merge, by adding both conflicting versions of the +++file to the tree, using variants of their filename. This is done +++automatically when using \fBgit annex sync\fP or \fBgit-annex pull\fP +++or \fBgit annex merge\fP. +++.IP +++See git-annex\-resolvemerge(1) for details. +++.IP +++.IP "\fBdiffdriver\fP" +++This can be used to make \fBgit diff\fP diff the content of annexed files. +++.IP +++See git-annex\-diffdriver(1) for details. +++.IP +++.IP "\fBsmudge\fP" +++This command lets git-annex be used as a git filter driver, allowing +++annexed files in the git repository to be unlocked regular files instead +++of symlinks. +++.IP +++See git-annex\-smudge(1) for details. +++.IP +++.IP "\fBfilter\-process\fP" +++An alternative implementation of a git filter driver, that is faster +++in some situations and slower in others than \fBgit-annex smudge\fP. +++.IP +++See git-annex\-filter\-process(1) for details. +++.IP +++.IP "\fBrestage\fP" +++Restages unlocked files in the git index. +++.IP +++See git-annex\-restage(1) for details. +++.IP +++.IP "\fBfindref [ref]\fP" +++Lists files in a git ref. (deprecated) +++.IP +++See git-annex\-findref(1) for details. +++.IP +++.IP "\fBproxy \-\- git cmd [options]\fP" +++Bypass direct mode guard. (deprecated) +++.IP +++See git-annex\-proxy(1) for details. +++.IP +++.SH TESTING COMMANDS +++.IP "\fBtest\fP" +++.IP +++This runs git-annex's built\-in test suite. +++.IP +++See git-annex\-test(1) for details. +++.IP +++.IP "\fBtestremote remote\fP" +++This tests a remote by generating some random objects and sending them to +++the remote, then redownloading them, removing them from the remote, etc. +++.IP +++It's safe to run in an existing repository (the repository contents are +++not altered), although it may perform expensive data transfers. +++.IP +++See git-annex\-testremote(1) for details. +++.IP +++.IP "\fBfuzztest\fP" +++Generates random changes to files in the current repository, +++for use in testing the assistant. +++.IP +++See git-annex\-fuzztest(1) for details. +++.IP +++.IP "\fBbenchmark\fP" +++This runs git-annex's built\-in benchmarks, if it was built with +++benchmarking support. +++.IP +++See git-annex\-benchmark(1) for details. +++.IP +++.SH ADDON COMMANDS +++In addition to all the commands listed above, more commands can be added to +++git-annex by dropping commands named like "git-annex\-foo" into a directory +++in the PATH. +++.PP +++.SH CONFIGURATION +++Like other git commands, git-annex is configured via \fB.git/config\fP. +++These settings, as well as relevant git config settings, are +++the ones git-annex uses. +++.PP +++(Some of these settings can also be set, across all clones of the +++repository, using git-annex\-config. See its man page for a list.) +++.PP +++.IP "\fBannex.uuid\fP" +++A unique UUID for this repository (automatically set). +++.IP +++.IP "\fBannex.backend\fP" +++Name of the default key\-value backend to use when adding new files +++to the repository. See git-annex\-backends(1) for information about +++available backends. +++.IP +++This is overridden by annex annex.backend configuration in the +++\&.gitattributes files, and by the \-\-backend option. +++.IP +++(This used to be named \fBannex.backends\fP, and that will still be used +++if set.) +++.IP +++.IP "\fBannex.securehashesonly\fP" +++Set to true to indicate that the repository should only use +++cryptographically secure hashes (SHA2, SHA3) and not insecure +++hashes (MD5, SHA1) for content. +++.IP +++When this is set, the contents of files using cryptographically +++insecure hashes will not be allowed to be added to the repository. +++.IP +++Also, \fBgit-annex fsck\fP will complain about any files present in +++the repository that use insecure hashes. And, +++\fBgit-annex import \-\-no\-content\fP will refuse to import files +++from special remotes using insecure hashes. +++.IP +++To configure the behavior in new clones of the repository, +++this can be set using git-annex\-config. +++.IP +++.IP "\fBannex.maxextensionlength\fP" +++Maximum length, in bytes, of what is considered a filename extension. +++This is used when adding a file to a backend that preserves filename extensions, +++and also when generating a view branch. +++.IP +++The default length is 4, which allows extensions like "jpeg". The dot before +++the extension is not counted part of its length. +++.IP +++.IP "\fBannex.maxextensions\fP" +++Maximum number of filename extensions to preserve when using a backend +++that preserves filename extensions, and also when generating a view +++branch. +++.IP +++The default is 2, which allows for compound extensions like ".tar.gz". +++When set to 1, it will only preserve the last extension, eg ".gz". +++.IP +++.IP "\fBannex.diskreserve\fP" +++Amount of disk space to reserve. Disk space is checked when transferring +++annexed content to avoid running out, and additional free space can be +++reserved via this option, to make space for other data (such as git +++commit logs). Can be specified with any commonly used units, for +++example, "0.5 gb", "500M", or "100 KiloBytes" +++.IP +++The default reserve is 100 megabytes. +++.IP +++.IP "\fBannex.skipunknown\fP" +++Set to true to make commands like "git-annex get" silently skip over +++items that are listed in the command line, but are not checked into git. +++.IP +++Set to false to make it an error for commands like "git-annex get" +++to be asked to operate on files that are not checked into git. +++(This is the default in recent versions of git-annex.) +++.IP +++Note that, when annex.skipunknown is false, a command like "git-annex get +++\&." will fail if no files in the current directory are checked into git. +++Commands like "git-annex get foo/" will fail if no files in the directory +++are checked into git, but if at least one file is, it will ignore other +++files that are not. This is all the same as the behavior of "git\-ls files +++\-\-error\-unmatch". +++.IP +++Also note that git-annex skips files that are checked into git, but are +++not annexed files; this setting does not affect that. +++.IP +++.IP "\fBannex.largefiles\fP" +++Used to configure which files are large enough to be added to the annex. +++It is an expression that matches the large files, eg +++"\fBinclude=*.mp3 or largerthan=500kb\fP" +++See git-annex\-matching\-expression(1) for details on the syntax. +++.IP +++Overrides any annex.largefiles attributes in \fB.gitattributes\fP files. +++.IP +++To configure a default annex.largefiles for all clones of the repository, +++this can be set in git-annex\-config(1). +++.IP +++This configures the behavior of both git-annex and git when adding +++files to the repository. By default, \fBgit-annex add\fP adds all files +++to the annex (except dotfiles), and \fBgit add\fP adds files to git +++(unless they were added to the annex previously). +++When annex.largefiles is configured, both +++\fBgit annex add\fP and \fBgit add\fP will add matching large files to the +++annex, and the other files to git. +++.IP +++Other git-annex commands also honor annex.largefiles, including +++\fBgit annex import\fP, \fBgit annex addurl\fP, \fBgit annex importfeed\fP, +++\fBgit-annex assist\fP, and the \fBgit-annex assistant\fP. +++.IP +++.IP "\fBannex.dotfiles\fP" +++Normally, dotfiles are assumed to be files like .gitignore, +++whose content should always be part of the git repository, so +++they will not be added to the annex. Setting annex.dotfiles to true +++makes dotfiles be added to the annex the same as any other file. +++.IP +++To annex only some dotfiles, set this and configure annex.largefiles +++to match the ones you want. For example, to match only dotfiles ending +++in ".big" +++.IP +++ git config annex.largefiles "(include=.*.big or include=*/.*.big) or (exclude=.* and exclude=*/.*)" +++ git config annex.dotfiles true +++.IP +++To configure a default annex.dotfiles for all clones of the repository, +++this can be set in git-annex\-config(1). +++.IP +++.IP "\fBannex.gitaddtoannex\fP" +++Setting this to false will prevent \fBgit add\fP from adding +++files to the annex, despite the annex.largefiles configuration. +++.IP +++.IP "\fBannex.addsmallfiles\fP" +++Controls whether small files (not matching annex.largefiles) +++should be checked into git by \fBgit annex add\fP. Defaults to true; +++set to false to instead make small files be skipped. +++.IP +++.IP "\fBannex.addunlocked\fP" +++Commands like \fBgit-annex add\fP default to adding files to the repository +++in locked form. This can make them add the files in unlocked form, +++the same as if git-annex\-unlock(1) were run on the files. +++.IP +++This can be set to "true" to add everything unlocked, or it can be a more +++complicated expression that matches files by name, size, or content. See +++git-annex\-matching\-expression(1) for details. +++.IP +++To configure a default annex.addunlocked for all clones of the repository, +++this can be set in git-annex\-config(1). +++.IP +++(Using \fBgit add\fP always adds files in unlocked form and it is not +++affected by this setting.) +++.IP +++When a repository has core.symlinks set to false, or has an adjusted +++unlocked branch checked out, this setting is ignored, and files are +++always added to the repository in unlocked form. +++.IP +++.IP "\fBannex.numcopies\fP" +++This is a deprecated setting. You should instead use the +++\fBgit annex numcopies\fP command to configure how many copies of files +++are kept across all repositories, or the annex.numcopies .gitattributes +++setting. +++.IP +++This config setting is only looked at when \fBgit annex numcopies\fP has +++never been configured, and when there's no annex.numcopies setting in the +++\&.gitattributes file. +++.IP +++.IP "\fBannex.genmetadata\fP" +++Set this to \fBtrue\fP to make git-annex automatically generate some metadata +++when adding files to the repository. +++.IP +++In particular, it stores year, month, and day metadata, from the file's +++modification date. +++.IP +++When importfeed is used, it stores additional metadata from the feed, +++such as the author, title, etc. +++.IP +++.IP "\fBannex.used\-refspec\fP" +++This controls which refs \fBgit-annex unused\fP considers to be used. +++See REFSPEC FORMAT in git-annex\-unused(1) for details. +++.IP +++.IP "\fBannex.jobs\fP" +++Configure the number of concurrent jobs to run. Default is 1. +++.IP +++Only git-annex commands that support the \-\-jobs option will +++use this. +++.IP +++Setting this to "cpus" will run one job per CPU core. +++.IP +++When the \fB\-\-batch\fP option is used, this configuration is ignored. +++.IP +++.IP "\fBannex.adjustedbranchrefresh\fP" +++When git-annex\-adjust(1) is used to set up an adjusted branch +++that needs to be refreshed after getting or dropping files, this config +++controls how frequently the branch is refreshed. +++.IP +++Refreshing the branch takes some time, so doing it after every file +++can be too slow. (It also can generate a lot of dangling git objects.) +++The default value is 0 (or false), which does not +++refresh the branch. Setting 1 (or true) will refresh only once, +++after git-annex has made other changes. Setting 2 refreshes after every +++file, 3 after every other file, and so on; setting 100 refreshes after +++every 99 files. +++.IP +++(If git-annex gets faster in the future, refresh rates will increase +++proportional to the speed improvements.) +++.IP +++.IP "\fBannex.queuesize\fP" +++git-annex builds a queue of git commands, in order to combine similar +++commands for speed. By default the size of the queue is limited to +++10240 commands; this can be used to change the size. If you have plenty +++of memory and are working with very large numbers of files, increasing +++the queue size can speed it up. +++.IP +++.IP "\fBannex.bloomcapacity\fP" +++The \fBgit annex unused\fP and \fBgit annex sync \-\-content\fP commands use +++a bloom filter to determine what files are present in eg, the work tree. +++The default bloom filter is sized to handle +++up to 500000 files. If your repository is larger than that, +++you should increase this value. Larger values will +++make \fBgit-annex unused\fP and \fBgit annex sync \-\-content\fP consume more memory; +++run \fBgit annex info\fP for memory usage numbers. +++.IP +++.IP "\fBannex.bloomaccuracy\fP" +++Adjusts the accuracy of the bloom filter used by +++\fBgit annex unused\fP and \fBgit annex sync \-\-content\fP. +++The default accuracy is 10000000 \-\- 1 unused file out of 10000000 +++will be missed by \fBgit annex unused\fP. Increasing the accuracy will make +++\fBgit annex unused\fP consume more memory; run \fBgit annex info\fP +++for memory usage numbers. +++.IP +++.IP "\fBannex.sshcaching\fP" +++By default, git-annex caches ssh connections using ssh's +++ControlMaster and ControlPersist settings +++(if built using a new enough ssh). To disable this, set to \fBfalse\fP. +++.IP +++.IP "\fBannex.adviceNoSshCaching\fP" +++When git-annex is unable to use ssh connection caching, or has been +++configured not to, and concurrency is enabled, it will warn that +++this might result in multiple ssh processes prompting for passwords +++at the same time. To disable that warning, eg if you have configured ssh +++connection caching yourself, or have ssh agent caching passwords, +++set this to \fBfalse\fP. +++.IP +++.IP "\fBannex.alwayscommit\fP" +++By default, git-annex automatically commits data to the git-annex branch +++after each command is run. If you have a series +++of commands that you want to make a single commit, you can +++run the commands with \fB\-c annex.alwayscommit=false\fP. You can later +++commit the data by running \fBgit annex merge\fP (or by automatic merges) +++or \fBgit annex sync\fP. +++.IP +++.IP "\fBannex.commitmessage\fP" +++When git-annex updates the git-annex branch, it usually makes up +++its own commit message (eg "update"), since users rarely look at or +++care about changes to that branch. If you do care, you can +++specify this setting by running commands with +++\fB\-c annex.commitmessage=whatever\fP +++.IP +++This works well in combination with annex.alwayscommit=false, +++to gather up a set of changes and commit them with a message you specify. +++.IP +++.IP "\fBannex.commitmessage\-command\fP" +++This command is run and its output is used as the commit message to the +++git-annex branch. +++.IP +++.IP "\fBannex.alwayscompact\fP" +++By default, git-annex compacts data it records in the git-annex branch. +++Setting this to false avoids doing that compaction in some cases, which +++can speed up operations that populate the git-annex branch with a lot +++of data. However, when used with operations that overwrite old values in +++the git-annex branch, that may cause the git-annex branch to use more disk +++space, and so slow down reading data from it. +++.IP +++An example of a command that can be sped up by using +++\fB\-c annex.alwayscompact=false\fP is \fBgit-annex registerurl \-\-batch\fP, +++when adding a large number of urls to the same key. +++.IP +++This option was first supported by git-annex version 10.20220724. +++It is not entirely safe to set this option in a repository that may also +++be used by an older version of git-annex at the same time as a version +++that supports this option. +++.IP +++.IP "\fBannex.allowsign\fP" +++By default git-annex avoids gpg signing commits that it makes when +++they're not the purpose of a command, but only a side effect. +++That default avoids lots of gpg password prompts when +++commit.gpgSign is set. A command like \fBgit annex sync\fP or \fBgit annex merge\fP +++will gpg sign its commit, but a command like \fBgit annex get\fP, +++that updates the git-annex branch, will not. The assistant also avoids +++signing commits. +++.IP +++Setting annex.allowsign to true lets all commits be signed, as +++controlled by commit.gpgSign and other git configuration. +++.IP +++.IP "\fBannex.merge\-annex\-branches\fP" +++By default, git-annex branches that have been pulled from remotes +++are automatically merged into the local git-annex branch, so that +++git-annex has the most up\-to\-date possible knowledge. +++.IP +++To avoid that merging, set this to "false". +++.IP +++This can be useful particularly when you don't have write permission +++to the repository. While git-annex is mostly able to work in a read\-only +++repository with unmerged git-annex branches, some things do not work, +++and when it does work it will be slower due to needing to look at each of +++the unmerged branches. +++.IP +++.IP "\fBannex.private\fP" +++When this is set to true, no information about the repository will be +++recorded in the git-annex branch. +++.IP +++For example, to make a repository without any mention of it ever +++appearing in the git-annex branch: +++.IP +++ git init myprivate +++ cd myprivaterepo +++ git config annex.private true +++ git annex init +++.IP +++.IP "\fBannex.hardlink\fP" +++Set this to \fBtrue\fP to make file contents be hard linked between the +++repository and its remotes when possible, instead of a more expensive copy. +++.IP +++Use with caution \-\- This can invalidate numcopies counting, since +++with hard links, fewer copies of a file can exist. So, it is a good +++idea to mark a repository using this setting as untrusted. +++.IP +++When a repository is set up using \fBgit clone \-\-shared\fP, git-annex init +++will automatically set annex.hardlink and mark the repository as +++untrusted. +++.IP +++When \fBannex.thin\fP is also set, setting \fBannex.hardlink\fP has no effect. +++.IP +++.IP "\fBannex.thin\fP" +++Set this to \fBtrue\fP to make unlocked files be a hard link to their content +++in the annex, rather than a second copy. This can save considerable +++disk space, but when a modification is made to a file, you will lose the +++local (and possibly only) copy of the old version. Any other, locked +++files in the repository that pointed to that content will get broken +++as well (\fBgit-annex fsck\fP will detect and clean up after that). +++So, enable this with care. +++.IP +++After setting (or unsetting) this, you should run \fBgit annex fix\fP to +++fix up the annexed files in the work tree to be hard links (or copies). +++.IP +++Note that this has no effect when the filesystem does not support hard links. +++And when multiple files in the work tree have the same content, only +++one of them gets hard linked to the annex. +++.IP +++.IP "\fBannex.supportunlocked\fP" +++By default git-annex supports unlocked files as well as locked files, +++so this defaults to true. If set to false, git-annex will only support +++locked files. That will avoid doing the work needed to support unlocked +++files. +++.IP +++Note that setting this to false does not prevent a repository from +++having unlocked files added to it, and in that case the content of the +++files will not be accessible until they are locked. +++.IP +++After changing this config, you need to re\-run \fBgit-annex init\fP for it +++to take effect. +++.IP +++.IP "\fBannex.resolvemerge\fP" +++Set to false to prevent merge conflicts in the checked out branch +++being automatically resolved by the \fBgit-annex assitant\fP, +++\fBgit-annex assist\fP, \fBgit-annex sync\fP, \fBgit-annex pull\fP, \fBgit-annex merge\fP, +++and the git-annex post\-receive hook. +++.IP +++To configure the behavior in all clones of the repository, +++this can be set in git-annex\-config(1). +++.IP +++.IP "\fBannex.synccontent\fP" +++Set to true to make \fBgit-annex sync\fP default to transferring +++annexed content. +++.IP +++Set to false to prevent \fBgit-annex assist\fP, \fBgit-annex pull\fP and +++\fBgit-annex push\fP from transferring annexed content. +++.IP +++To configure the behavior in all clones of the repository, +++this can be set in git-annex\-config(1). +++.IP +++.IP "\fBannex.synconlyannex\fP" +++Set to true to make \fBgit-annex assist\fP, \fBgit-annex sync\fP, +++\fBgit-annex pull\fP, and \fBgit-annex push\fP default to only operating +++on the git-annex branch and annexed content. +++.IP +++To configure the behavior in all clones of the repository, +++this can be set in git-annex\-config(1). +++.IP +++.IP "\fBannex.syncmigrations\fP" +++Set to false to prevent \fBgit-annex sync\fP and \fBgit-annex pull\fP +++from scanning for migrations and updating the local +++repository for those migrations. +++.IP +++.IP "\fBannex.viewunsetdirectory\fP" +++This configures the name of a directory that is used in a view to contain +++files that do not have metadata set. The default name for the directory +++is \fB"_"\fP. See git-annex\-view(1) for details. +++.IP +++.IP "\fBannex.debug\fP" +++Set to true to enable debug logging by default. +++.IP +++.IP "\fBannex.debugfilter\fP" +++Set to configure which debug messages to display (when debug message +++display has been enabled by annex.debug or \-\-debug). The value is one +++or more module names, separated by commas. +++.IP +++.IP "\fBannex.version\fP" +++The current version of the git-annex repository. This is +++maintained by git-annex and should never be manually changed. +++.IP +++.IP "\fBannex.autoupgraderepository\fP" +++When an old git-annex repository version is no longer supported, +++git-annex will normally automatically upgrade the repository to +++the new version. It may also sometimes upgrade from an old repository +++version that is still supported but that is not as good as a later +++version. +++.IP +++If this is set to false, git-annex won't automatically upgrade the +++repository. If the repository version is not supported, git-annex +++will instead exit with an error message. If it is still supported, +++git-annex will continue to work. +++.IP +++You can run \fBgit annex upgrade\fP yourself when you are ready to upgrade the +++repository. +++.IP +++.IP "\fBannex.crippledfilesystem\fP" +++Set to true if the repository is on a crippled filesystem, such as FAT, +++which does not support symbolic links, or hard links, or unix permissions. +++This is automatically probed by "git annex init". +++.IP +++.IP "\fBannex.pidlock\fP" +++Normally, git-annex uses fine\-grained lock files to allow multiple +++processes to run concurrently without getting in each others' way. +++That works great, unless you are using git-annex on a filesystem that +++does not support POSIX fcntl locks. This is sometimes the case when +++using NFS or Lustre filesystems. +++.IP +++To support such situations, you can set annex.pidlock to true, and it +++will fall back to a single top\-level pid file lock. +++.IP +++Although, often, you'd really be better off fixing your networked +++filesystem configuration to support POSIX locks.. And, some networked +++filesystems are so inconsistent that one node can't reliably tell when +++the other node is holding a pid lock. Caveat emptor. +++.IP +++.IP "\fBannex.pidlocktimeout\fP" +++git-annex will wait up to this many seconds for the pid lock +++file to go away, and will then abort if it cannot continue. Default: 300 +++.IP +++When using pid lock files, it's possible for a stale lock file to get +++left behind by previous run of git-annex that crashed or was interrupted. +++This is mostly avoided, but can occur especially when using a network +++file system. This timeout prevents git-annex waiting forever in such a +++situation. +++.IP +++.IP "\fBannex.dbdir\fP" +++The directory where git-annex should store its sqlite databases. +++The default location is inside \fB.git/annex/\fP. +++.IP +++Certian filesystems, such as cifs, may not support locking operations +++that sqlite needs, and setting this to a directory on another filesystem +++can work around such a problem. +++.IP +++This can safely be set to the same directory in the configuration of +++multiple repositories; each repository will use a subdirectory for its +++sqlite database. +++.IP +++.IP "\fBannex.cachecreds\fP" +++When "true" (the default), git-annex will cache credentials used to +++access special remotes in files in .git/annex/creds/ +++that only you can read. To disable that caching, set to "false", +++and credentials will only be read from the environment, or if +++they have been embedded in encrypted form in the git repository, will +++be extracted and decrypted each time git-annex needs to access the +++remote. +++.IP +++.IP "\fBannex.secure\-erase\-command\fP" +++This can be set to a command that should be run whenever git-annex +++removes the content of a file from the repository. +++.IP +++In the command line, %file is replaced with the file that should be +++erased. +++.IP +++For example, to use the wipe command, set it to \fBwipe \-f %file\fP. +++.IP +++.IP "\fBannex.freezecontent\-command\fP, \fBannex.thawcontent\-command\fP" +++Usually the write permission bits are unset to protect annexed objects +++from being modified or deleted. The freezecontent\-command is run after +++git-annex has removed (or attempted to remove) the write bit, and can +++be used to prevent writing in some other way. +++The thawcontent\-command should undo its effect, and is run before +++git-annex restores the write bit. +++.IP +++In the command line, %path is replaced with the file or directory to +++operate on. +++.IP +++(When annex.crippledfilesystem is set, git-annex will not try to +++remove/restore the write bit, but it will still run these hooks.) +++.IP +++.IP "\fBannex.tune.objecthash1\fP, \fBannex.tune.objecthashlower\fP, \fBannex.tune.branchhash1\fP" +++These can be passed to \fBgit annex init\fP to tune the repository. +++They cannot be safely changed in a running repository and should never be +++set in global git configuration. +++For details, see . +++.IP +++.SH CONFIGURATION OF REMOTES +++Remotes are configured using these settings in \fB.git/config\fP. +++.PP +++.IP "\fBremote..annex\-cost\fP" +++When determining which repository to +++transfer annexed files from or to, ones with lower costs are preferred. +++The default cost is 100 for local repositories, and 200 for remote +++repositories. +++.IP +++.IP "\fBremote..annex\-cost\-command\fP" +++If set, the command is run, and the number it outputs is used as the cost. +++This allows varying the cost based on e.g., the current network. +++.IP +++.IP "\fBremote..annex\-start\-command\fP" +++A command to run when git-annex begins to use the remote. This can +++be used to, for example, mount the directory containing the remote. +++.IP +++The command may be run repeatedly when multiple git-annex processes +++are running concurrently. +++.IP +++.IP "\fBremote..annex\-stop\-command\fP" +++A command to run when git-annex is done using the remote. +++.IP +++The command will only be run once *all* running git-annex processes +++are finished using the remote. +++.IP +++.IP "\fBremote..annex\-shell\fP" +++Specify an alternative git-annex\-shell executable on the remote +++instead of looking for "git-annex\-shell" on the PATH. +++.IP +++This is useful if the git-annex\-shell program is outside the PATH +++or has a non\-standard name. +++.IP +++.IP "\fBremote..annex\-ignore\fP" +++If set to \fBtrue\fP, prevents git-annex from storing or retrieving annexed +++file contents on this remote by default. +++(You can still request it be used with the \fB\-\-from\fP and \fB\-\-to\fP options.) +++.IP +++This is, for example, useful if the remote is located somewhere +++without git-annex\-shell. (For example, if it's on GitHub). +++Or, it could be used if the network connection between two +++repositories is too slow to be used normally. +++.IP +++This does not prevent \fBgit-annex sync\fP, \fBgit-annex pull\fP, \fBgit-annex push\fP, +++\fBgit-annex assist\fP or the \fBgit-annex assistant\fP from operating on the +++git repository. It only affects annexed content. +++.IP +++.IP "\fBremote..annex\-ignore\-command\fP" +++If set, the command is run, and if it exits nonzero, that's the same +++as setting annex\-ignore to true. This allows controlling behavior based +++on e.g., the current network. +++.IP +++.IP "\fBremote..annex\-sync\fP" +++If set to \fBfalse\fP, prevents \fBgit-annex sync\fP (and \fBgit-annex pull\fP, +++\fBgit-annex push\fP, \fBgit-annex assist\fP, and the \fBgit-annex assistant\fP) +++from operating on this remote by default. +++.IP +++.IP "\fBremote..annex\-sync\-command\fP" +++If set, the command is run, and if it exits nonzero, that's the same +++as setting annex\-sync to false. This allows controlling behavior based +++on e.g., the current network. +++.IP +++.IP "\fBremote..annex\-pull\fP" +++If set to \fBfalse\fP, prevents \fBgit-annex pull\fP, \fBgit-annex sync\fP, +++\fBgit-annex assist\fP and the \fBgit-annex assistant\fP from ever pulling +++(or fetching) from the remote. +++.IP +++.IP "\fBremote..annex\-push\fP" +++If set to \fBfalse\fP, prevents \fBgit-annex push\fP, \fBgit-annex sync\fP, +++\fBgit-annex assist\fP and the \fBgit-annex assistant\fP from ever pushing +++to the remote. +++.IP +++.IP "\fBremote..annex\-readonly\fP" +++If set to \fBtrue\fP, prevents git-annex from making changes to a remote. +++This prevents \fBgit-annex sync\fP and \fBgit-annex assist\fP from pushing +++changes to a git repository. And it prevents storing or removing +++files from read\-only remote. +++.IP +++.IP "\fBremote..annex\-verify\fP, \fBannex.verify\fP" +++By default, git-annex will verify the checksums of objects downloaded +++from remotes. If you trust a remote and don't want the overhead +++of these checksums, you can set this to \fBfalse\fP. +++.IP +++Note that even when this is set to \fBfalse\fP, git-annex does verification +++in some edge cases, where it's likely the case than an +++object was downloaded incorrectly, or when needed for security. +++.IP +++.IP "\fBremote..annex\-tracking\-branch\fP" +++This is for use with special remotes that support exports and imports. +++.IP +++When set to eg, "master", this tells git-annex that you want the +++special remote to track that branch. +++.IP +++When set to eg, "master:subdir", the special remote tracks only +++the subdirectory of that branch. +++.IP +++Setting this enables some other commands to work with these special +++remotes: \fBgit-annex pull\fP will import changes from the remote and merge them into +++the annex\-tracking\-branch. And \fBgit-annex push\fP will export changes to +++the remote. Higher\-level commands \fBgit-annex sync \-\-content\fP +++and \fBgit-annex assist\fP both import and export. +++.IP +++.IP "\fBremote..annex\-export\-tracking\fP" +++Deprecated name for \fBremote..annex\-tracking\-branch\fP. Will still be used +++if it's configured and \fBremote..annex\-tracking\-branch\fP is not. +++.IP +++.IP "\fBremote..annexUrl\fP" +++Can be used to specify a different url than the regular \fBremote..url\fP +++for git-annex to use when talking with the remote. Similar to the \fBpushUrl\fP +++used by git\-push. +++.IP +++.IP "\fBremote..annex\-uuid\fP" +++git-annex caches UUIDs of remote repositories here. +++.IP +++.IP "\fBremote..annex\-config\-uuid\fP" +++Used for some special remotes, points to a different special remote +++configuration to use. +++.IP +++.IP "\fBremote..annex\-retry\fP, \fBannex.retry\fP" +++Number of times a transfer that fails can be retried. (default 0) +++.IP +++.IP "\fBremote..annex\-forward\-retry\fP, \fBannex.forward\-retry\fP" +++If a transfer made some forward progress before failing, +++this allows it to be retried even when \fBannex.retry\fP does not. +++The value is the maximum number of times to do that. (default 5) +++.IP +++When both \fBannex.retry\fP and this are set, the maximum number of +++retries is the larger of the two. +++.IP +++.IP "\fBremote..annex\-retry\-delay\fP, \fBannex.retry\-delay\fP" +++Number of seconds to delay before the first retry of a transfer. +++When making multiple retries of the same transfer, the delay +++doubles after each retry. (default 1) +++.IP +++.IP "\fBremote..annex\-bwlimit\fP, \fBannex.bwlimit\fP" +++This can be used to limit how much bandwidth is used for a transfer +++from or to a remote. +++.IP +++For example, to limit transfers to 1 mebibyte per second: +++\fBgit config annex.bwlimit "1MiB"\fP +++.IP +++This will work with many remotes, including git remotes, but not +++for remotes where the transfer is run by a separate program than +++git-annex. +++.IP +++.IP "\fBremote..annex\-bwlimit\-download\fP, \fBannex.bwlimit\-download\fP" +++Limit bandwith for downloads from a remote. +++.IP +++Overrides \fBremote..annex\-bwlimit\fP and \fBannex.bwlimit\fP +++.IP +++.IP "\fBremote..annex\-bwlimit\-upload\fP, \fBannex.bwlimit\-upload\fP" +++Limit bandwith for uploads to a remote. +++.IP +++Overrides \fBremote..annex\-bwlimit\fP and \fBannex.bwlimit\fP +++.IP +++.IP "\fBremote..annex\-stalldetection\fP, \fBannex.stalldetection\fP" +++Configuring this lets stalled or too\-slow transfers be detected, and +++dealt with, so rather than getting stuck, git-annex will cancel the +++stalled operation. The transfer will be considered to have failed, so +++settings like annex.retry will control what it does next. +++.IP +++The default is to automatically detect when transfers that have probably +++stalled, and suggest configuring this, but not cancel the stalled +++operations. For this to work, a remote needs to update its progress +++consistently. Remotes that do not will not have automatic stall detection +++done. And it may take a while for git-annex to decide a remote is really +++stalled when using automatic stall detection, since it needs to be +++conservative about what looks like a stall. +++.IP +++Set to "false" to avoid all attempts at stall detection. +++.IP +++To detect and cancel stalled transfers, set this to a value in the form +++"$amount/$timeperiod" which specifies how much data git-annex should +++expect to see flowing, minimum, over a given period of time. +++.IP +++For example, to detect outright stalls where no data has been transferred +++after 30 seconds: \fBgit config annex.stalldetection "1KB/30s"\fP +++.IP +++Or, if you have a remote on a USB drive that is normally capable of +++several megabytes per second, but has bad sectors where it gets +++stuck for a long time, you could use: +++\fBgit config remote.usbdrive.annex\-stalldetection "1MB/1m"\fP +++.IP +++Some remotes don't report transfer progress, and stalls cannot be +++detected when using those. +++.IP +++Some remotes only report transfer progress occasionally, eg +++after each chunk. To avoid false timeouts in such a situation, if the +++first progress update takes longer to arrive than the configured time +++period, the stall detection will be automically adjusted to use a longer +++time period. For example, if the first progress update comes after 10 +++minutes, but annex.stalldetection is "1MB/1m", it will be treated as eg +++"30MB/30m". +++.IP +++Configuring stall detection can make git-annex use more resources. To be +++able to cancel stalls, git-annex has to run transfers in separate +++processes (one per concurrent job). So it may need to open more +++connections to a remote than usual, or the communication with those +++processes may make it a bit slower. +++.IP +++.IP "\fBremote..annex\-stalldetection\-download\fP, \fBannex.stalldetection\-download\fP" +++Stall detection for downloads from a remote. +++.IP +++For example, if a remote is often fast, but sometimes is very slow, +++and there is another remote that is consistently medium speed +++and that contains the same data, this could be set to treat the fast +++remote as stalled when it's slow. Then a command like \fBgit-annex get\fP +++will fall back to downloading from the medium speed remote. +++.IP +++Overrides \fBremote..annex\-stalldetection\fP, \fBannex.stalldetection\fP +++.IP +++.IP "\fBremote..annex\-stalldetection\-upload\fP, \fBannex.stalldetection\-upload\fP" +++Stall detection for uploads to a remote. +++.IP +++Overrides \fBremote..annex\-stalldetection\fP, \fBannex.stalldetection\fP +++.IP +++.IP "\fBremote..annex\-checkuuid\fP" +++This only affects remotes that have their url pointing to a directory on +++the same system. git-annex normally checks the uuid of such +++remotes each time it's run, which lets it transparently deal with +++different drives being mounted to the location at different times. +++.IP +++Setting annex\-checkuuid to false will prevent it from checking the uuid +++at startup (although the uuid is still verified before making any +++changes to the remote repository). This may be useful to set to prevent +++unnecessary spin\-up or automounting of a drive. +++.IP +++.IP "\fBremote..annex\-trustlevel\fP" +++Configures a local trust level for the remote. This overrides the value +++configured by the trust and untrust commands. The value can be any of +++"trusted", "semitrusted" or "untrusted". +++.IP +++.IP "\fBremote..annex\-availability\fP" +++This configuration setting is no longer used. +++.IP +++.IP "\fBremote..annex\-speculate\-present\fP" +++Set to "true" to make git-annex speculate that this remote may contain the +++content of any file, even though its normal location tracking does not +++indicate that it does. This will cause git-annex to try to get all file +++contents from the remote. Can be useful in setting up a caching remote. +++.IP +++.IP "\fBremote..annex\-private\fP" +++When this is set to true, no information about the remote will be +++recorded in the git-annex branch. This is mostly useful for special +++remotes, and is set when using git-annex\-initremote(1) with the +++\fB\-\-private\fP option. +++.IP +++.IP "\fBremote..annex\-bare\fP" +++Can be used to tell git-annex if a remote is a bare repository +++or not. Normally, git-annex determines this automatically. +++.IP +++.IP "\fBremote..annex\-ssh\-options\fP" +++Options to use when using ssh to talk to this remote. +++.IP +++.IP "\fBremote..annex\-rsync\-options\fP" +++Options to use when using rsync +++to or from this remote. For example, to force IPv6, and limit +++the bandwidth to 100Kbyte/s, set it to \fB\-6 \-\-bwlimit 100\fP +++.IP +++Note that git-annex\-shell has a whitelist of allowed rsync options, +++and others will not be be passed to the remote rsync. So using some +++options may break the communication between the local and remote rsyncs. +++.IP +++.IP "\fBremote..annex\-rsync\-upload\-options\fP" +++Options to use when using rsync to upload a file to a remote. +++.IP +++These options are passed after other applicable rsync options, +++so can be used to override them. For example, to limit upload bandwidth +++to 10Kbyte/s, set \fB\-\-bwlimit 10\fP. +++.IP +++.IP "\fBremote..annex\-rsync\-download\-options\fP" +++Options to use when using rsync to download a file from a remote. +++.IP +++These options are passed after other applicable rsync options, +++so can be used to override them. +++.IP +++.IP "\fBremote..annex\-rsync\-transport\fP" +++The remote shell to use to connect to the rsync remote. Possible +++values are \fBssh\fP (the default) and \fBrsh\fP, together with their +++arguments, for instance \fBssh \-p 2222 \-c blowfish\fP; Note that the +++remote hostname should not appear there, see rsync(1) for details. +++When the transport used is \fBssh\fP, connections are automatically cached +++unless \fBannex.sshcaching\fP is unset. +++.IP +++.IP "\fBremote..annex\-bup\-split\-options\fP" +++Options to pass to bup split when storing content in this remote. +++For example, to limit the bandwidth to 100Kbyte/s, set it to \fB\-\-bwlimit 100k\fP +++(There is no corresponding option for bup join.) +++.IP +++.IP "\fBremote..annex\-gnupg\-options\fP" +++Options to pass to GnuPG when it's encrypting data. For instance, to +++use the AES cipher with a 256 bits key and disable compression, set it +++to \fB\-\-cipher\-algo AES256 \-\-compress\-algo none\fP. (These options take +++precedence over the default GnuPG configuration, which is otherwise +++used.) +++.IP +++.IP "\fBremote..annex\-gnupg\-decrypt\-options\fP" +++Options to pass to GnuPG when it's decrypting data. (These options take +++precedence over the default GnuPG configuration, which is otherwise +++used.) +++.IP +++.IP "\fBremote..annex\-shared\-sop\-command\fP" +++Use this command, which is an implementation of the Stateless OpenPGP +++command line interface, rather than GnuPG for encrypting and decrypting +++data. This is only used when a special remote is configured with +++encryption=shared. +++.IP +++For example, to use Sequoia PGP's sqop command, set this to "sqop". +++.IP +++.IP "\fBremote..annex\-shared\-sop\-profile\fP" +++When encrypting with a Stateless OpenPGP command, this can be used +++to specify the profile to use, such as "rfc4880". +++.IP +++For a list of available profiles, run eg "sqop list\-profiles encrypt" +++.IP +++sqop list\-profiles encrypt +++.IP +++.IP "\fBannex.ssh\-options\fP, \fBannex.rsync\-options\fP," +++\fBannex.rsync\-upload\-options\fP, \fBannex.rsync\-download\-options\fP, +++\fBannex.bup\-split\-options\fP, \fBannex.gnupg\-options\fP, +++\fBannex.gnupg\-decrypt\-options\fP, +++\fBannex.shared\-sop\-command\fP, \fBannex.shared\-sop\-profile\fP +++.IP +++Default options to use if a remote does not have more specific options +++as described above. +++.IP +++.IP "\fBremote..annex\-rsyncurl\fP" +++Used by rsync special remotes, this configures +++the location of the rsync repository to use. Normally this is automatically +++set up by \fBgit annex initremote\fP, but you can change it if needed. +++.IP +++.IP "\fBremote..annex\-buprepo\fP" +++Used by bup special remotes, this configures +++the location of the bup repository to use. Normally this is automatically +++set up by \fBgit annex initremote\fP, but you can change it if needed. +++.IP +++.IP "\fBremote..annex\-borgrepo\fP" +++Used by borg special remotes, this configures +++the location of the borg repository to use. Normally this is automatically +++set up by \fBgit annex initremote\fP, but you can change it if needed. +++.IP +++.IP "\fBremote..annex\-ddarrepo\fP" +++Used by ddar special remotes, this configures +++the location of the ddar repository to use. Normally this is automatically +++set up by \fBgit annex initremote\fP, but you can change it if needed. +++.IP +++.IP "\fBremote..annex\-directory\fP" +++Used by directory special remotes, this configures +++the location of the directory where annexed files are stored for this +++remote. Normally this is automatically set up by \fBgit annex initremote\fP, +++but you can change it if needed. +++.IP +++.IP "\fBremote..annex\-adb\fP" +++Used to identify remotes on Android devices accessed via adb. +++Normally this is automatically set up by \fBgit annex initremote\fP. +++.IP +++.IP "\fBremote..annex\-androiddirectory\fP" +++Used by adb special remotes, this is the directory on the Android +++device where files are stored for this remote. Normally this is +++automatically set up by \fBgit annex initremote\fP, but you can change +++it if needed. +++.IP +++.IP "\fBremote..annex\-androidserial\fP" +++Used by adb special remotes, this is the serial number of the Android +++device used by the remote. Normally this is automatically set up by +++\fBgit annex initremote\fP, but you can change it if needed, eg when +++upgrading to a new Android device. +++.IP +++.IP "\fBremote..annex\-s3\fP" +++Used to identify Amazon S3 special remotes. +++Normally this is automatically set up by \fBgit annex initremote\fP. +++.IP +++.IP "\fBremote..annex\-glacier\fP" +++Used to identify Amazon Glacier special remotes. +++Normally this is automatically set up by \fBgit annex initremote\fP. +++.IP +++.IP "\fBremote..annex\-rclone\fP" +++Used to identify rclone special remotes. +++Normally this is automatically set up by \fBgit annex initremote\fP. +++.IP +++.IP "\fBremote..annex\-web\fP" +++Used to identify web special remotes. +++Normally this is automatically set up by \fBgit annex initremote\fP. +++.IP +++.IP "\fBremote..annex\-webdav\fP" +++Used to identify webdav special remotes. +++Normally this is automatically set up by \fBgit annex initremote\fP. +++.IP +++.IP "\fBremote..annex\-tahoe\fP" +++Used to identify tahoe special remotes. +++Points to the configuration directory for tahoe. +++.IP +++.IP "\fBremote..annex\-gcrypt\fP" +++Used to identify gcrypt special remotes. +++Normally this is automatically set up by \fBgit annex initremote\fP. +++.IP +++It is set to "true" if this is a gcrypt remote. +++If the gcrypt remote is accessible over ssh and has git-annex\-shell +++available to manage it, it's set to "shell". +++.IP +++.IP "\fBremote..annex\-git\-lfs\fP" +++Used to identify git\-lfs special remotes. +++Normally this is automatically set up by \fBgit annex initremote\fP. +++.IP +++It is set to "true" if this is a git\-lfs remote. +++.IP +++.IP "\fBremote..annex\-httpalso\fP" +++Used to identify httpalso special remotes. +++Normally this is automatically set up by \fBgit annex initremote\fP. +++.IP +++.IP "\fBremote..annex\-externaltype\fP" +++Used by external special remotes to record the type of the remote. +++.IP +++Eg, if this is set to "foo", git-annex will run a "git-annex\-remote\-foo" +++program to communicate with the external special remote. +++.IP +++If this is set to "readonly", then git-annex will not run any external +++special remote program, but will try to access things stored in the +++remote using http. That only works for some external special remotes, +++so consult the documentation of the one you are using. +++.IP +++.IP "\fBremote..annex\-hooktype\fP" +++Used by hook special remotes to record the type of the remote. +++.IP +++.IP "\fBannex.web\-options\fP" +++Options to pass to curl when git-annex uses it to download urls +++(rather than the default built\-in url downloader). +++.IP +++For example, to force IPv4 only, set it to "\-4". +++.IP +++Setting this option makes git-annex use curl, but only +++when annex.security.allowed\-ip\-addresses is configured in a +++specific way. See its documentation. +++.IP +++Setting this option prevents git-annex from using git\-credential +++for prompting for http passwords. Instead, you can include "\-\-netrc" +++to make curl use your ~/.netrc file and record the passwords there. +++.IP +++.IP "\fBannex.youtube\-dl\-options\fP" +++Options to pass to yt\-dlp (or deprecated youtube\-dl) when using it to +++find the url to download for a video. +++.IP +++Some options may break git-annex's integration with yt\-dlp. For +++example, the \-\-output option could cause it to store files somewhere +++git-annex won't find them. Avoid setting here or in the yt\-dlp config +++file any options that cause it to download more than one file, +++or to store the file anywhere other than the current working directory. +++.IP +++.IP "\fBannex.youtube\-dl\-command\fP" +++Default is to use "yt\-dlp" or if that is not available in the PATH, +++to use "youtube\-dl". +++.IP +++.IP "\fBannex.aria\-torrent\-options\fP" +++Options to pass to aria2c when using it to download a torrent. +++.IP +++.IP "\fBannex.http\-headers\fP" +++HTTP headers to send when downloading from the web. Multiple lines of +++this option can be set, one per header. +++.IP +++.IP "\fBannex.http\-headers\-command\fP" +++If set, the command is run and each line of its output is used as a HTTP +++header. This overrides annex.http\-headers. +++.IP +++.IP "\fBannex.security.allowed\-url\-schemes\fP" +++List of URL schemes that git-annex is allowed to download content from. +++The default is "http https ftp". +++.IP +++Think very carefully before changing this; there are security +++implications. For example, if it's changed to allow "file" URLs, then +++anyone who can get a commit into your git-annex repository could +++\fBgit-annex addurl\fP a pointer to a private file located outside that +++repository, possibly causing it to be copied into your repository +++and transferred on to other remotes, exposing its content. +++.IP +++Any url schemes supported by curl can be listed here, but you will +++also need to configure annex.security.allowed\-ip\-addresses to allow +++using curl. +++.IP +++Some special remotes support their own domain\-specific URL +++schemes; those are not affected by this configuration setting. +++.IP +++.IP "\fBannex.security.allowed\-ip\-addresses\fP" +++By default, git-annex only makes connections to public IP addresses; +++it will refuse to use HTTP and other servers on localhost or on a +++private network. +++.IP +++This setting can override that behavior, allowing access to particular +++IP addresses that would normally be blocked. For example "127.0.0.1 ::1" +++allows access to localhost (both IPV4 and IPV6). +++To allow access to all IP addresses, use "all" +++.IP +++Think very carefully before changing this; there are security +++implications. Anyone who can get a commit into your git-annex repository +++could \fBgit annex addurl\fP an url on a private server, possibly +++causing it to be downloaded into your repository and transferred to +++other remotes, exposing its content. +++.IP +++Note that, since the interfaces of curl and yt\-dlp do not allow +++these IP address restrictions to be enforced, curl and yt\-dlp will +++never be used unless annex.security.allowed\-ip\-addresses=all. +++.IP +++To allow accessing local or private IP addresses on only specific ports, +++use the syntax "[addr]:port". For example, +++"[127.0.0.1]:80 [127.0.0.1]:443 [::1]:80 [::1]:443" allows +++localhost on the http ports only. +++.IP +++.IP "\fBannex.security.allowed\-http\-addresses\fP" +++Old name for annex.security.allowed\-ip\-addresses. +++If set, this is treated the same as having +++annex.security.allowed\-ip\-addresses set. +++.IP +++.IP "\fBannex.security.allow\-unverified\-downloads\fP" +++For security reasons, git-annex refuses to download content from +++most special remotes when it cannot check a hash to verify +++that the correct content was downloaded. This particularly impacts +++downloading the content of URL or WORM keys, which lack hashes. +++.IP +++The best way to avoid problems due to this is to migrate files +++away from such keys, before their content reaches a special remote. +++See git-annex\-migrate(1). +++.IP +++When the content is only available from a special remote, you can +++use this configuration to force git-annex to download it. +++But you do so at your own risk, and it's very important you read and +++understand the information below first! +++.IP +++Downloading unverified content from encrypted special remotes is +++prevented, because the special remote could send some other encrypted +++content than what you expect, causing git-annex to decrypt data that you +++never checked into git-annex, and risking exposing the decrypted +++data to any non\-encrypted remotes you send content to. +++.IP +++Downloading unverified content from (non\-encrypted) +++external special remotes is prevented, because they could follow +++http redirects to web servers on localhost or on a private network, +++or in some cases to a file:/// url. +++.IP +++If you decide to bypass this security check, the best thing to do is +++to only set it temporarily while running the command that gets the file. +++The value to set the config to is "ACKTHPPT". +++For example: +++.IP +++ git \-c annex.security.allow\-unverified\-downloads=ACKTHPPT annex get myfile +++.IP +++It would be a good idea to check that it downloaded the file you expected, +++too. +++.IP +++.IP "\fBremote..annex\-security\-allow\-unverified\-downloads\fP" +++Per\-remote configuration of annex.security.allow\-unverified\-downloads. +++.IP +++.SH CONFIGURATION OF ASSISTANT +++.IP "\fBannex.delayadd\fP" +++.IP +++Makes the watch and assistant commands delay for the specified number of +++seconds before adding a newly created file to the annex. Normally this +++is not needed, because they already wait for all writers of the file +++to close it. +++.IP +++Note that this only delays adding files created while the daemon is +++running. Changes made when it is not running will be added immediately +++the next time it is started up. +++.IP +++.IP "\fBannex.expireunused\fP" +++Controls what the assistant does about unused file contents +++that are stored in the repository. +++.IP +++The default is \fBfalse\fP, which causes +++all old and unused file contents to be retained, unless the assistant +++is able to move them to some other repository (such as a backup repository). +++.IP +++Can be set to a time specification, like "7d" or "1m", and then +++file contents that have been known to be unused for a week or a +++month will be deleted. +++.IP +++.IP "\fBannex.fscknudge\fP" +++When set to false, prevents the webapp from reminding you when using +++repositories that lack consistency checks. +++.IP +++.IP "\fBannex.autoupgrade\fP" +++When set to ask (the default), the webapp will check for new versions +++and prompt if they should be upgraded to. When set to true, automatically +++upgrades without prompting (on some supported platforms). When set to +++false, disables any upgrade checking. +++.IP +++Note that upgrade checking is only done when git-annex is installed +++from one of the prebuilt images from its website. This does not +++bypass e.g., a Linux distribution's own upgrade handling code. +++.IP +++This setting also controls whether to restart the git-annex assistant +++when the git-annex binary is detected to have changed. That is useful +++no matter how you installed git-annex. +++.IP +++.IP "\fBannex.autocommit\fP" +++Set to false to prevent the \fBgit-annex assistant\fP, \fBgit-annex assist\fP, +++and \fBgit-annex sync\fP from automatically committing changes to files in +++the repository. +++.IP +++To configure the behavior in all clones of the repository, +++this can be set in git-annex\-config(1). +++.IP +++.IP "\fBannex.startupscan\fP" +++Set to false to prevent the git-annex assistant from scanning the +++repository for new and changed files on startup. This will prevent it +++from noticing changes that were made while it was not running, but can be +++a useful performance tweak for a large repository. +++.IP +++.IP "\fBannex.listen\fP" +++Configures which IP address the webapp listens on. +++The default is localhost. Can be either an IP address, +++or a hostname that resolves to the desired address. +++.IP +++.IP "\fBannex.port\fP" +++Configures which port address the webapp listens on. +++The default is to pick an unused port. +++.IP +++.SH CONFIGURATION VIA .gitattributes +++The key\-value backend used when adding a new file to the annex can be +++configured on a per\-file\-type basis via \fB.gitattributes\fP files. In the file, +++the \fBannex.backend\fP attribute can be set to the name of the backend to +++use. (See git-annex\-backends(1) for information about +++available backends.) +++For example, this here's how to use the WORM backend by default, +++but the SHA256E backend for ogg files: +++.PP +++ * annex.backend=WORM +++ *.ogg annex.backend=SHA256E +++.PP +++There is a annex.largefiles attribute, which is used to configure which +++files are large enough to be added to the annex. Since attributes cannot +++contain spaces, it is difficult to use for more complex annex.largefiles +++settings. Setting annex.largefiles in git-annex\-config(1) is an easier +++way to configure it across all clones of the repository. +++See git-annex\-matching\-expression(1) for details on the syntax. +++.PP +++The numcopies and mincopies settings can also be configured on a +++per\-file\-type basis via the \fBannex.numcopies\fP and \fBannex.mincopies\fP +++attributes in \fB.gitattributes\fP files. This overrides other settings. +++For example, this makes two copies be needed for wav files and 3 copies +++for flac files: +++.PP +++ *.wav annex.numcopies=2 +++ *.flac annex.numcopies=3 +++.PP +++These settings are honored by git-annex whenever it's operating on a +++matching file. However, when using \-\-all, \-\-unused, or \-\-key to specify +++keys to operate on, git-annex is operating on keys and not files, so will +++not honor the settings from .gitattributes. For this reason, the git annex +++numcopies\fB and \fPgit annex mincopies commands are useful to configure a +++global default. +++.PP +++Also note that when using views, only the toplevel .gitattributes file is +++preserved in the view, so other settings in other files won't have any +++effect. +++.PP +++.SH EXIT STATUS +++git-annex itself will exit 0 on success and 1 on failure, unless +++the \fB\-\-size\-limit\fP or \fB\-\-time\-limit\fP option is hit, in +++which case it exits 101. +++.PP +++A few git-annex subcommands have other exit statuses used to indicate +++specific problems, which are documented on their individual man pages. +++.PP +++.SH ENVIRONMENT +++These environment variables are used by git-annex when set: +++.PP +++.IP "\fBGIT_WORK_TREE\fP, \fBGIT_DIR\fP" +++Handled the same as they are by git, see git(1) +++.IP +++.IP "\fBGIT_SSH\fP, \fBGIT_SSH_COMMAND\fP" +++Handled similarly to the same as described in git(1). +++The one difference is that git-annex will sometimes pass an additional +++"\-n" parameter to these, as the first parameter, to prevent ssh from +++reading from stdin. Since that can break existing uses of these +++environment variables that don't expect the extra parameter, you will +++need to set \fBGIT_ANNEX_USE_GIT_SSH=1\fP to make git-annex support +++these. +++.IP +++Note that setting either of these environment variables prevents +++git-annex from automatically enabling ssh connection caching +++(see \fBannex.sshcaching\fP), so it will slow down some operations with +++remotes over ssh. It's up to you to enable ssh connection caching +++if you need it; see ssh's documentation. +++.IP +++Also, \fBannex.ssh\-options\fP and \fBremote..annex\-ssh\-options\fP +++won't have any effect when these envionment variables are set. +++.IP +++Usually it's better to configure any desired options through your +++~/.ssh/config file, or by setting \fBannex.ssh\-options\fP. +++.IP +++.IP "\fBGIT_ANNEX_VECTOR_CLOCK\fP" +++Normally git-annex timestamps lines in the log files committed to the +++git-annex branch. Setting this environment variable to a number +++will make git-annex use that (or a larger number) +++rather than the current number of seconds since the UNIX epoch. +++Note that decimal seconds are supported. +++.IP +++This is only provided for advanced users who either have a better way to +++tell which commit is current than the local clock, or who need to avoid +++embedding timestamps for policy reasons. +++.IP +++.IP "Some special remotes use additional environment variables" +++for authentication etc. For example, \fBAWS_ACCESS_KEY_ID\fP +++and \fBGIT_ANNEX_P2P_AUTHTOKEN\fP. See special remote documentation. +++.IP +++.SH FILES +++These files are used by git-annex: +++.PP +++\fB.git/annex/objects/\fP in your git repository contains the annexed file +++contents that are currently available. Annexed files in your git +++repository symlink to that content. +++.PP +++\fB.git/annex/\fP in your git repository contains other run\-time information +++used by git-annex. +++.PP +++\fB~/.config/git-annex/autostart\fP is a list of git repositories +++to start the git-annex assistant in. +++.PP +++\fB.git/hooks/pre\-commit\-annex\fP in your git repository will be run whenever +++a commit is made to the HEAD branch, either by git commit, git-annex +++sync, or the git-annex assistant. +++.PP +++\fB.git/hooks/post\-update\-annex\fP in your git repository will be run +++whenever the git-annex branch is updated. You can make this hook run +++\fBgit update\-server\-info\fP when publishing a git-annex repository by http. +++.PP +++.SH SEE ALSO +++More git-annex documentation is available on its web site, +++ +++.PP +++If git-annex is installed from a package, a copy of its documentation +++should be included, in, for example, \fB/usr/share/doc/git-annex/\fP. +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++ +++.PP +++.PP +++ ++--- /dev/null +++++ git-annex-10.20240430/man/git-remote-tor-annex.1 ++@@ -0,0 +1,33 @@ +++.TH git-remote-tor-annex 1 +++.SH NAME +++git\-remote\-tor\-annex \- remote helper program to talk to git-annex over tor +++.PP +++.SH SYNOPSIS +++git fetch tor\-annex::address.onion:port +++.PP +++git remote add tor tor\-annex::address.onion:port +++.PP +++.SH DESCRIPTION +++This is a git remote helper program that allows git to pull and push +++over tor(1), communicating with a tor hidden service. +++.PP +++The tor hidden service probably requires an authtoken to use it. +++The authtoken can be provided in the environment variable +++\fBGIT_ANNEX_P2P_AUTHTOKEN\fP. Or, if there is a file in +++\fB.git/annex/creds/\fP matching the onion address of the hidden +++service, its first line is used as the authtoken. +++.PP +++.SH SEE ALSO +++git\-remote\-helpers(1) +++.PP +++git-annex(1) +++.PP +++git-annex\-enable\-tor(1) +++.PP +++git-annex\-remotedaemon(1) +++.PP +++.SH AUTHOR +++Joey Hess +++.PP +++.PP +++ diff --cc debian/patches/series index 0000000000,0000000000..7bb825291d new file mode 100644 --- /dev/null +++ b/debian/patches/series @@@ -1,0 -1,0 +1,1 @@@ ++debian-changes diff --cc debian/rules index ed882df488,0000000000..b0a76a0602 mode 100755,000000..100755 --- a/debian/rules +++ b/debian/rules @@@ -1,44 -1,0 +1,73 @@@ +#!/usr/bin/make -f + +export BUILDER=./Setup ++export PATH:=$(CURDIR)/debian/fakebin:$(PATH) + +# -j1 is used for reproducible build +export BUILDEROPTIONS=-j1 + ++# Reduce optimisation on armhf and armel to avoid running out of ++# memory. Passing -O1 to ghc causes it to pass -O2 to llc. We can't ++# simply use ghc's -optlc to pass -O2 to llc, because when we don't ++# pass -O1 to ghc, it will pass an -O3 to llc, overriding our -optlc ++# attempt. See definition of runPhase in ++# compiler/main/DriverPipeline.hs in ghc source ++DEB_HOST_ARCH?=$(shell dpkg-architecture -qDEB_HOST_ARCH) ++ifneq (,$(filter armel,$(DEB_HOST_ARCH))) ++export BUILDEROPTIONS:=$(BUILDEROPTIONS) --ghc-option=-O1 ++endif ++ifneq (,$(filter armhf,$(DEB_HOST_ARCH))) ++export BUILDEROPTIONS:=$(BUILDEROPTIONS) --ghc-option=-O1 ++endif ++ +STANDALONE_BUILD=$(shell grep -qe '^Package: git-annex-standalone' debian/control \ + && echo 1 || echo 0) + +# Do use the changelog's version number, rather than making one up. +export RELEASE_BUILD=1 + +export ZSH_COMPLETIONS_PATH=/usr/share/zsh/vendor-completions + ++ifeq (yes, $(shell dpkg-vendor --derives-from Ubuntu && echo yes)) ++# See LP: #2019992 ++export DEB_LDFLAGS_MAINT_STRIP = -Wl,-Bsymbolic-functions ++ifneq (,$(filter $(DEB_HOST_ARCH), ppc64el)) ++export DEB_BUILD_MAINT_OPTIONS = optimize=-lto ++endif ++endif ++ +%: + dh $@ + ++execute_before_dh_auto_configure: ++ mkdir -p debian/fakebin ++ ln -s /usr/bin/opt-11 debian/fakebin/opt-15 ++ ++execute_after_dh_auto_clean: ++ rm -rf debian/fakebin + +# Standalone build logic/helpers +ifeq ($(STANDALONE_BUILD),1) + +override_dh_auto_build: + make linuxstandalone GIT_ANNEX_PACKAGE_INSTALL=1 + +override_dh_auto_install: + make install-desktop install-docs install-completions \ + DESTDIR=debian/git-annex-standalone + # bins are linked into place, as instructed in debian/install and debian/links + +override_dh_fixperms: + dh_fixperms -Xld-linux + +# gdb can't do much with a haskell program, so avoid the debug package +override_dh_strip: + dh_strip --no-automatic-dbgsym + +# Do not add "ldconfig" trigger since all libraries in the standalone build +# are private copies and the trigger activate-noawait trigger may not work +# on elderly distributions (e.g. squeeze) +override_dh_makeshlibs: + dh_makeshlibs --noscripts + +endif diff --cc debian/source/format index d3827e75a5,0000000000..163aaf8d82 mode 100644,000000..100644 --- a/debian/source/format +++ b/debian/source/format @@@ -1,1 -1,0 +1,1 @@@ - 1.0 ++3.0 (quilt) diff --cc debian/source/lintian-overrides index 0000000000,0000000000..f8107514e0 new file mode 100644 --- /dev/null +++ b/debian/source/lintian-overrides @@@ -1,0 -1,0 +1,2 @@@ ++# making it into a regular file would introduce an unhelpful delta from upstream ++debian-copyright-is-symlink diff --cc debian/source/options index 0000000000,0000000000..ce071fb483 new file mode 100644 --- /dev/null +++ b/debian/source/options @@@ -1,0 -1,0 +1,2 @@@ ++single-debian-patch ++auto-commit diff --cc debian/source/patch-header index 0000000000,0000000000..a5e3f02edc new file mode 100644 --- /dev/null +++ b/debian/source/patch-header @@@ -1,0 -1,0 +1,17 @@@ ++The Debian packaging of git-annex is maintained in git, using the ++merging workflow described in dgit-maint-merge(7). There isn't a ++patch queue that can be represented as a quilt series. ++ ++A detailed breakdown of the changes is available from their canonical ++representation - git commits in the packaging repository. For ++example, to see the changes made by the Debian maintainer in the first ++upload of upstream version 1.2.3, you could use: ++ ++ % git clone https://git.dgit.debian.org/git-annex ++ % cd git-annex ++ % git log --oneline 1.2.3..debian/1.2.3-1 -- . ':!debian' ++ ++(If you have dgit, use `dgit clone git-annex`, rather than plain `git ++clone`.) ++ ++A single combined diff, containing all the changes, follows. diff --cc debian/tests/control index 928caf8e31,0000000000..66c7790ad7 mode 100644,000000..100644 --- a/debian/tests/control +++ b/debian/tests/control @@@ -1,4 -1,0 +1,4 @@@ +Tests: basics +Depends: @, git, rsync, gnupg - Restrictions: allow-stderr ++Restrictions: allow-stderr, flaky +