CI to automate build of cargo lockfiles on different Alpine releases for git-annex aports https://gitlab.alpinelinux.org/alpine/aports/-/tree/master/community/git-annex
Find a file
Joey Hess ff65cd6954
invalidate recorded content identifier tree when export changes
Fix bug that made changes to a special remote sometimes be missed when
importing a tree from it. The diff import would miss when a change was
exported, then manually undone on the special remote (eg deleting a newly
exported file). A full import is needed to catch such changes.

After upgrading, any such missed changes will be included in the next
tree imported from a special remote. This happens because the previously
recorded content identifier tree does not have export information included,
so it is treated as invalid, and a full import is done.

Fixes reversion introduced in version 10.20230626, commit
40017089f2

Unfortunately, this does mean that after each export, the next import will
be a full import. Which can take significantly longer than the diff import
does, when there are a lot of files in the tree.

It would be better if exporting also update the content identifier tree.
However, I don't know if that can be done inexpensively. It would be future
optimisation work, in any case.

(That could only be done for an export that is run in the same
repository as the import. When an export is run in a different repository,
the export.log gets updated, and that propagates to the repository where
import is later run. At that point, a full import is done.)

Sponsored-by: Luke T. Shumaker
2025-09-23 12:52:55 -04:00
Annex invalidate recorded content identifier tree when export changes 2025-09-23 12:52:55 -04:00
Assistant annex.assistant.allowunlocked 2025-09-16 14:58:26 -04:00
Backend p2p --enable 2025-07-30 14:08:59 -04:00
Build Add git-remote-p2p-annex and git-remote-tor-annex to standalone builds 2025-09-22 10:20:36 -04:00
CmdLine add git-remote-p2p-annex 2025-07-30 15:25:56 -04:00
Command invalidate recorded content identifier tree when export changes 2025-09-23 12:52:55 -04:00
Config convert all readFile, writeFile, and appendFile to close-on-exec safe versions 2025-09-05 15:44:32 -04:00
Database prevent deadlock when reconcileStaged runs restagePointerFiles 2025-09-22 14:56:50 -04:00
debian Removed support for building with cryptonite, use crypton. 2025-09-10 13:21:06 -04:00
doc invalidate recorded content identifier tree when export changes 2025-09-23 12:52:55 -04:00
Git convert all readFile, writeFile, and appendFile to close-on-exec safe versions 2025-09-05 15:44:32 -04:00
Limit treat "not present" in preferred content as invalid 2024-09-03 13:50:06 -04:00
Logs invalidate recorded content identifier tree when export changes 2025-09-23 12:52:55 -04:00
Messages more OsPath conversion (602/749) 2025-02-07 14:46:11 -04:00
P2P fix mispaste of comment 2025-09-15 13:14:56 -04:00
Remote noCreateProcessWhile to fix close-on-exec races 2025-09-10 14:29:15 -04:00
RemoteDaemon remotedaemon support for generic P2P transports 2025-07-31 14:45:32 -04:00
standalone Add git-remote-p2p-annex and git-remote-tor-annex to standalone builds 2025-09-22 10:20:36 -04:00
static Revert "remove newlines from static js and css" 2014-06-13 02:20:39 -04:00
templates webapp: Rename "Upgrade Repository" to "Convert Repository" 2025-06-24 12:33:48 -04:00
Test convert all readFile, writeFile, and appendFile to close-on-exec safe versions 2025-09-05 15:44:32 -04:00
Types prevent deadlock when reconcileStaged runs restagePointerFiles 2025-09-22 14:56:50 -04:00
Upgrade convert all readFile, writeFile, and appendFile to close-on-exec safe versions 2025-09-05 15:44:32 -04:00
Utility set locale encoding after fdTohandle 2025-09-15 21:35:38 -04:00
.appveyor.yml reenable appveyor test suite 2025-07-02 13:46:21 -04:00
.codespellrc A few more of typo fixes/skip as detected with bleeding edge codespell 2024-05-01 20:06:08 -04:00
.ghci turn of PackageImports in cabal file 2022-02-25 13:16:36 -04:00
.gitattributes update changelog location 2016-08-22 23:54:11 -04:00
.gitignore add git-remote-p2p-annex 2025-07-30 15:25:56 -04:00
.mailmap ENH: add one more mailmap for yarikoptic 2024-06-03 13:00:45 -04:00
Annex.hs prevent deadlock when reconcileStaged runs restagePointerFiles 2025-09-22 14:56:50 -04:00
Assistant.hs set locale encoding after fdTohandle 2025-09-15 21:35:38 -04:00
Author.hs improve attribution armoring 2023-11-21 11:34:21 -04:00
Backend.hs refactoring 2025-02-27 14:54:03 -04:00
bash-completion.bash bash completion fix 2018-11-12 13:23:05 -04:00
Benchmark.hs --size-limit exit 101 2021-06-04 16:43:47 -04:00
BuildFlags.hs Removed support for building with cryptonite, use crypton. 2025-09-10 13:21:06 -04:00
BuildInfo.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
CHANGELOG invalidate recorded content identifier tree when export changes 2025-09-23 12:52:55 -04:00
CmdLine.hs more OsPath conversion (639/749) 2025-02-07 16:07:05 -04:00
Command.hs more OsPath conversion (542/749) 2025-02-06 11:38:14 -04:00
Common.hs add readFileString, writeFileString, appendFileString 2025-09-05 14:54:36 -04:00
Config.hs more OsPath conversion 2025-01-29 11:53:20 -04:00
COPYRIGHT Utility.FileIO: set close-on-exec flag for all functions 2025-09-05 13:36:50 -04:00
Creds.hs onlyencryptcreds=yes 2025-08-20 15:14:01 -04:00
Crypto.hs remove dead code 2025-09-05 11:57:08 -04:00
git-annex.cabal Removed support for building with cryptonite, use crypton. 2025-09-10 13:21:06 -04:00
git-annex.hs add git-remote-p2p-annex 2025-07-30 15:25:56 -04:00
Git.hs remove unncessary comment 2025-04-22 14:03:51 -04:00
Key.hs more OsPath conversion 2025-01-28 15:46:00 -04:00
Limit.hs Add --url option and url= preferred content expression 2025-07-21 12:13:40 -04:00
Logs.hs more OsPath conversion 2025-01-28 16:31:19 -04:00
Makefile add git-remote-p2p-annex 2025-07-30 15:25:56 -04:00
Messages.hs more OsPath conversion 2025-01-28 15:46:00 -04:00
NEWS prep release 2023-06-26 10:41:36 -04:00
README improve description 2022-01-06 12:24:27 -04:00
Remote.hs compute remote: get input files from other remotes 2025-03-04 11:06:58 -04:00
Setup.hs Setup.hs: Stop installing man pages, desktop files, and the git-annex-shell and git-remote-tor-annex symlinks 2023-08-01 15:08:56 -04:00
stack.yaml Removed support for building with cryptonite, use crypton. 2025-09-10 13:21:06 -04:00
Test.hs fix test suite 2025-09-22 15:00:26 -04:00
Types.hs plumb VerifyConfig into retrieveKeyFile 2021-08-17 12:43:13 -04:00
Upgrade.hs more OsPath conversion (464/749) 2025-02-04 13:35:17 -04:00

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.

For documentation, see doc/ or <https://git-annex.branchable.com/>