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 780367200b
remove dead nodes when loading the cluster log
This is to avoid inserting a cluster uuid into the location log when
only dead nodes in the cluster contain the content of a key.

One reason why this is necessary is Remote.keyLocations, which excludes
dead repositories from the list. But there are probably many more.

Implementing this was challenging, because Logs.Location importing
Logs.Cluster which imports Logs.Trust which imports Remote.List resulted
in an import cycle through several other modules.

Resorted to making Logs.Location not import Logs.Cluster, and instead
it assumes that Annex.clusters gets populated when necessary before it's
called.

That's done in Annex.Startup, which is run by the git-annex command
(but not other commands) at early startup in initialized repos. Or,
is run after initialization.

Note that is Remote.Git, it is unable to import Annex.Startup, because
Remote.Git importing Logs.Cluster leads the the same import cycle.
So ensureInitialized is not passed annexStartup in there.

Other commands, like git-annex-shell currently don't run annexStartup
either.

So there are cases where Logs.Location will not see clusters. So it won't add
any cluster UUIDs when loading the log. That's ok, the only reason to do
that is to make display of where objects are located include clusters,
and to make commands like git-annex get --from treat keys as being located
in a cluster. git-annex-shell certainly does not do anything like that,
and I'm pretty sure Remote.Git (and callers to Remote.Git.onLocalRepo)
don't either.
2024-06-16 14:39:44 -04:00
Annex remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
Assistant remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
Backend avoid using dropWhileEnd 2024-05-28 10:27:36 -04:00
Build Merge branch 'master' into git-remote-annex 2024-05-10 14:20:36 -04:00
CmdLine remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
Command remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
Config
Database run codespell throughout fixing typos automagically 2024-05-01 15:46:21 -04:00
debian Explicitly specify 1.0 Debian source format 2024-02-15 13:53:26 -04:00
doc remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
Git add git-annex updatecluster command 2024-06-14 15:02:01 -04:00
Limit
Logs remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
Messages RawFilePath conversion 2024-01-19 14:26:21 -04:00
P2P proxy updates location tracking information 2024-06-12 11:37:14 -04:00
Remote remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
RemoteDaemon git-annex-shell: block relay requests 2024-06-10 14:16:27 -04:00
standalone add git-remote-annex to standalone builds 2024-05-28 13:12:51 -04:00
static
templates assistant: When generating a gpg secret key, avoid hardcoding the key algorithm and size 2024-01-09 15:31:53 -04:00
Test remove support for directory < 1.2.7 2024-02-06 10:53:13 -04:00
Types remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
Upgrade remove support for directory < 1.2.7 2024-02-06 10:53:13 -04:00
Utility Fix Windows build with Win32 2.13.4+ 2024-06-03 13:04:15 -04:00
.appveyor.yml
.codespellrc A few more of typo fixes/skip as detected with bleeding edge codespell 2024-05-01 20:06:08 -04:00
.ghci
.gitattributes
.gitignore ignore git-remote-annex 2024-05-06 13:13:39 -04:00
.mailmap ENH: add one more mailmap for yarikoptic 2024-06-03 13:00:45 -04:00
Annex.hs cache getClusters in Annex state 2024-06-14 11:16:01 -04:00
Assistant.hs webapp: Added --port option, and annex.port config 2024-01-25 14:08:36 -04:00
Author.hs improve attribution armoring 2023-11-21 11:34:21 -04:00
Backend.hs implement URL to VURL migration 2024-03-01 16:42:02 -04:00
bash-completion.bash
Benchmark.hs
BuildFlags.hs
BuildInfo.hs
CHANGELOG broke out initcluster 2024-06-14 17:23:11 -04:00
CmdLine.hs remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
Command.hs remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
Common.hs
Config.hs
COPYRIGHT Added dependency on unbounded-delays 2024-02-27 13:11:59 -04:00
Creds.hs simplify base64 to only use ByteString 2023-10-26 13:10:05 -04:00
Crypto.hs support annex.shared-sop-command for encryption=shared 2024-01-12 13:31:18 -04:00
git-annex.cabal remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
git-annex.hs add git-remote-annex stub and build machinery 2024-05-06 13:05:58 -04:00
git-union-merge.hs
Git.hs run codespell throughout fixing typos automagically 2024-05-01 15:46:21 -04:00
Key.hs
Limit.hs implement isCryptographicallySecureKey for VURL 2024-02-29 17:26:35 -04:00
Logs.hs implement cluster.log 2024-06-13 16:00:58 -04:00
Makefile use cabal list-bin 2024-05-31 10:28:56 -04:00
Messages.hs run codespell throughout fixing typos automagically 2024-05-01 15:46:21 -04:00
NEWS
README
Remote.hs avoid git syncing with instantiate proxied remotes 2024-06-12 15:10:03 -04:00
Setup.hs
stack-lts-18.13.yaml enable parallel ghc for building git-annex 2023-09-26 13:46:44 -04:00
stack.yaml stack.yaml: Update to lts-22.9 and use crypton. 2024-02-06 11:08:12 -04:00
Test.hs fix windows build 2024-01-18 11:54:59 -04:00
Types.hs
Upgrade.hs don't say a supported version is unsupported 2023-10-09 14:26:24 -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/>