Commit graph

39760 commits

Author SHA1 Message Date
Joey Hess
4af9b3381c
Merge branch 'master' of ssh://git-annex.branchable.com 2021-04-21 17:19:25 -04:00
Joey Hess
7cb96bc3e3
alternative 2021-04-21 17:18:47 -04:00
pat
7c8bf24768 2021-04-21 21:04:27 +00:00
Joey Hess
affdffb323
docs 2021-04-21 17:01:03 -04:00
Joey Hess
c687eae80b
got private repos really working
This new TODO will need private indexes to resolve; until then the
private journal has to be checked when private UUIDs are known.
2021-04-21 16:26:23 -04:00
Joey Hess
d0c5f6d2f0
optimisation
Avoid trying to read private journal files when no private uuids are
known.
2021-04-21 16:02:56 -04:00
Joey Hess
24eeacdba8
adapt recent bug fixes to support private journal
At this point, private repos should mostly work, except for a few
commands that directly read from the git-annex branch and will not see
the private journal.

Private index not yet implemented.
2021-04-21 16:01:13 -04:00
Joey Hess
0bb57702e1
Merge branch 'master' into hiddenannex 2021-04-21 15:45:12 -04:00
Joey Hess
653b719472
fix --all to include not yet committed files from the journal
Fix bug caused by recent optimisations that could make git-annex not see
recently recorded status information when configured with
annex.alwayscommit=false.

This does mean that --all can end up processing the same key more than once,
but before the optimisations that introduced this bug, it used to also behave
that way. So I didn't try to fix that; it's an edge case and anyway git-annex
behaves well when run on the same key repeatedly.

I am not too happy with the use of a MVar to buffer the list of files in the
journal. I guess it doesn't defeat lazy streaming of the list, if that
list is actually generated lazily, and anyway the size of the journal is
normally capped and small, so if configs are changed to make it huge and
this code path fire, git-annex using enough memory to buffer it all is not a
large problem.
2021-04-21 15:40:32 -04:00
Joey Hess
74acf17a31
refactoring 2021-04-21 14:29:02 -04:00
Joey Hess
6eb3c0a6b4
fix branch precacheing bug by checking journal
Fix bug caused by recent optimisations that could make git-annex not see
recently recorded status information when configured with
annex.alwayscommit=false.

When not using --all, precaching only gets triggered when the
command actually needs location logs, and so there's no speed hit there.

This is a minor speed hit for --all, because it precaches even when the
location log is not actually going to be used, and so checking the journal
is not necessary. It would have been possible to defer checking the journal
until the cache gets used. But that would complicate the usual Branch.get
code path with two different kinds of caches, and the speed hit is really
minimal. A better way to speed up --all, later, would be to avoid
precaching at all when the location log is not going to be used.
2021-04-21 14:02:15 -04:00
Joey Hess
b470673e50
wip 2021-04-21 13:46:39 -04:00
Joey Hess
56478e99ac
bug report 2021-04-21 13:24:32 -04:00
Joey Hess
9b870e29fd
Merge branch 'master' into hiddenannex 2021-04-21 13:04:40 -04:00
Joey Hess
f058618074
Merge branch 'master' of ssh://git-annex.branchable.com 2021-04-21 13:02:47 -04:00
Joey Hess
39d94919cd
reorder tests debugging windows failure
This order will work just as well, so no need to revert this change
later.
2021-04-21 13:01:41 -04:00
Kyle Meyer
876b134b54 doc/git-annex.mdwn: Fix quoting of annex.supportunlocked 2021-04-21 12:36:34 -04:00
kyle
108dc11af3 Added a comment: re: clarifying unlocked files 2021-04-21 16:34:50 +00:00
kyle
54a0db2563 Added a comment: re: Are my unlocked, annexed files still safe? 2021-04-21 16:32:42 +00:00
Joey Hess
430c5a15f5
update 2021-04-21 12:18:04 -04:00
Joey Hess
4ef3fb0b59
Merge branch 'master' of ssh://git-annex.branchable.com 2021-04-21 12:15:57 -04:00
Joey Hess
85d75b8a18
comment 2021-04-21 12:15:42 -04:00
Ilya_Shlyakhter
d568c7c88b Added a comment: clarifying unlocked files 2021-04-21 16:08:05 +00:00
pat
8e3ee7b91d Added a comment: Are my unlocked, annexed files still safe? 2021-04-21 15:47:48 +00:00
Ilya_Shlyakhter
78f31022e3 Added a comment: auto-expire temp repos 2021-04-21 15:37:38 +00:00
Joey Hess
5dae95f95f
Merge branch 'master' of ssh://git-annex.branchable.com 2021-04-20 15:18:56 -04:00
Joey Hess
154fb46b24
update 2021-04-20 15:18:18 -04:00
Joey Hess
05989556a2
start implementing hidden git-annex repositories
This adds a separate journal, which does not currently get committed to
an index, but is planned to be committed to .git/annex/index-private.

Changes that are regarding a UUID that is private will get written to
this journal, and so will not be published into the git-annex branch.

All log writing should have been made to indicate the UUID it's
regarding, though I've not verified this yet.

Currently, no UUIDs are treated as private yet, a way to configure that
is needed.

The implementation is careful to not add any additional IO work when
privateUUIDsKnown is False. It will skip looking at the private journal
at all. So this should be free, or nearly so, unless the feature is
used. When it is used, all branch reads will be about twice as expensive.

It is very lucky -- or very prudent design -- that Annex.Branch.change
and maybeChange are the only ways to change a file on the branch,
and Annex.Branch.set is only internal use. That let Annex.Branch.get
always yield any private information that has been recorded, without
the risk that Annex.Branch.set might be called, with a non-private UUID,
and end up leaking the private information into the git-annex branch.

And, this relies on the way git-annex union merges the git-annex branch.
When reading a file, there can be a public and a private version, and
they are just concacenated together. That will be handled the same as if
there were two diverged git-annex branches that got union merged.
2021-04-20 15:04:53 -04:00
Atemu
f0e15c5a0d Added a comment 2021-04-20 18:30:39 +00:00
Atemu
2f05565db5 Added a comment 2021-04-20 18:05:27 +00:00
Joey Hess
b2222e4639
optimisation
Avoid unnecessary conversion to/from String.
2021-04-20 13:13:45 -04:00
Joey Hess
c30557594e
remove now redundant function 2021-04-20 12:42:57 -04:00
fooness
f71b0218aa 2021-04-20 16:38:33 +00:00
Joey Hess
752c389849
comment 2021-04-20 11:57:10 -04:00
Joey Hess
fee6504388
fix reversion in recent CoW changes
File handle accidentially left open is both a FD leak and causes the
haskell RTS to reject opening it again with "file is locked".
2021-04-20 11:41:43 -04:00
Joey Hess
3d9d1d1416
Merge branch 'master' of ssh://git-annex.branchable.com 2021-04-20 11:08:06 -04:00
https://launchpad.net/~r0lf
fa738b8757 2021-04-20 13:49:58 +00:00
https://launchpad.net/~r0lf
617c574c17 2021-04-20 13:46:07 +00:00
Joey Hess
2d1cbdaba7
thoughts 2021-04-19 13:58:43 -04:00
Joey Hess
3262d6c0bc
yoh asked me to tag this datalad 2021-04-19 13:20:07 -04:00
Ilya_Shlyakhter
38b9cf7747 Added a comment 2021-04-19 15:38:38 +00:00
yarikoptic
b92a7b1a2f initial report for test fails on windows 2021-04-19 13:43:18 +00:00
pat
e3de27dcc0 2021-04-19 00:09:16 +00:00
Ilya_Shlyakhter
3cfc51343f Added a comment 2021-04-18 23:45:26 +00:00
Ilya_Shlyakhter
a9bf898e2c removed 2021-04-18 22:03:26 +00:00
Ilya_Shlyakhter
a9eac5c91a Added a comment: semantics of preferred content expressions 2021-04-18 22:03:02 +00:00
Joey Hess
66e3170245
comment 2021-04-18 13:07:03 -04:00
pat
cfcf11fff8 Added a comment 2021-04-18 16:18:46 +00:00
Ilya_Shlyakhter
f028d4ef77 Added a comment 2021-04-18 15:40:55 +00:00
datamanager
9c30443718 Added a comment: reply 2021-04-18 15:38:33 +00:00