Commit graph

44384 commits

Author SHA1 Message Date
Joey Hess
c15fa17635
optimise adjustTree when adding many TreeItems (take 2)
The old code traversed the list of addtreeitems once per subdirectory in
the tree, so could get quite slow. Converting to Map lookups sped it up
significantly.

In my test case, git-annex import used to take about 2 minutes, when
calling adjustTree to add back excluded files to the imported tree. This
dropped it down to 6 seconds. Of which 4 seconds are the actual
enumeration of the contents of the remote, so really only 2 seconds for
this.

The path prefix map is a bit suboptimal memory-wise, since items get
stored in the map once per subdirectory on the path to the item. It
would perhaps be better to use a tree data structure.

Also it's suboptimal memory-wise that it builds two maps, as well
as retaining a reference to addtreeitems. I could not see a way around
that though.

This is a fixed version of commit 2c86651180.
It fixes a test suite reversion.

Sponsored-by: Jack Hill on Patreon
2024-01-16 11:53:57 -04:00
kdm9
c3989e3e05 typo fix (renote -> remote) 2024-01-16 14:36:56 +00:00
yarikoptic
8fd6c3f1b1 windows build is broken 2024-01-15 15:38:43 +00:00
TTTTAAAx
795b3f3d45 Added a comment 2024-01-15 01:43:28 +00:00
aurelien@f0d0a0c7da69eff6badf0464898f0a859f69114d
34cf5be43d Added a comment 2024-01-14 23:18:43 +00:00
jaharmi
986f8f6be4 rename forum/Initial_macOS_setup_between_two_Macs.mdwn to forum/Initial_macOS_setup_between_two_local_Macs.mdwn 2024-01-14 20:28:54 +00:00
jaharmi
d80e4e42f9 2024-01-14 20:28:24 +00:00
jaharmi
6d499d51c4 2024-01-14 20:27:44 +00:00
jstritch
acca5ab06b 2024-01-14 16:23:13 +00:00
jstritch
629f570288 2024-01-14 16:15:36 +00:00
Joey Hess
3fbc5d9c7e
Merge branch 'master' of ssh://git-annex.branchable.com 2024-01-12 13:52:04 -04:00
Joey Hess
dda4cb372c
update 2024-01-12 13:51:59 -04:00
Joey Hess
7e69063a29
support annex.shared-sop-command for encryption=shared
This works well, and it interoperates with gpg in my testing (although some
SOP commands might choose to use a profile that does not so caveat emptor).

Note that for creating the Cipher, gpg --gen-random is still used. SOP
does not have an eqivilant, and as long as the user has gpg around,
which seems likely, it doesn't matter that it uses gpg here, it's not being
used for encryption. That seemed better than implementing a second way
to get high quality entropy, at least for now.

The need for the sop command to run in an empty directory has each call
to encrypt and decrypt creating a new temporary directory. That is some
unncessary overhead, though probably swamped by the overhead of running
the sop command. This could be improved in the future by passing an
already empty directory to them, or a sufficiently empty directory
(.git/annex/tmp would probably suffice).

Sponsored-by: Brett Eisenberg on Patreon
2024-01-12 13:31:18 -04:00
Joey Hess
dd3e779020
more groundwork for StatelessOpenPGP
no behavior changes
2024-01-12 13:11:36 -04:00
nobodyinperson
e8a1ad5253 Added a comment: Try datalad 2024-01-12 09:23:16 +00:00
jstritch
181e14467f 2024-01-11 18:24:52 +00:00
Joey Hess
2fb200a110
clarify that combined hook program is deprecated, not entire hook special remote 2024-01-11 11:04:07 -04:00
TTTTAAAx
9a83b2c64f Added a comment 2024-01-11 14:15:58 +00:00
TTTTAAAx
d6cca10efd Added a comment 2024-01-11 13:58:27 +00:00
Joey Hess
790600f7b2
close send side of password pipe on exec
This avoids a hang approximately 1% of the time when running the test
suite on StatelessOpenPGP.

Since I've not seen git-annex hang when running git like that, I guess
git probably does something that avoids hanging similarly. Still, fixed
the same problem in Utility.Gpg too.

Sponsored-by: Kevin Mueller on Patreon
2024-01-10 17:31:58 -04:00
Joey Hess
60366e73e0
Merge branch 'master' of ssh://git-annex.branchable.com 2024-01-10 16:42:40 -04:00
Joey Hess
cd28366855
reverted problem commit 2024-01-10 16:37:29 -04:00
Joey Hess
d9f36085c6
Revert "optimise adjustTree when adding many TreeItems"
This reverts commit 2c86651180.

That commit caused a test failure and problably wrong trees to be
imported, so revert until that is fixed.
2024-01-10 16:36:44 -04:00
Joey Hess
d98f02a5b0
test annex.shared-sop-command
Test a specified Stateless OpenPGP command with eg:
git-annex test --test-git-config annex.shared-sop-command=sqop

Also documented that config and another one, but so far only the test suite
uses the configs, have not yet implemented using it for actual symmetric
encryption.

Sponsored-by: Joshua Antonishen on Patreon
2024-01-10 16:30:38 -04:00
Joey Hess
812cbf0e17
Stateless OpenPGP interface
Implemented according to
https://www.ietf.org/archive/id/draft-dkg-openpgp-stateless-cli-09.html#name-encrypt-encrypt-a-message

Not yet used by git-annex.

Sponsored-by: Leon Schuermann on Patreon
2024-01-10 15:59:35 -04:00
Joey Hess
b728e935bc
correct comment 2024-01-10 15:59:16 -04:00
Joey Hess
478f0870d1
update comment 2024-01-10 13:24:09 -04:00
jgsuess@732b8c62c50d8595d7b1d58eea11e5019c2308b1
36eadec531 Added a comment: Not a special remote 2024-01-10 08:54:57 +00:00
Joey Hess
654f3b7e06
comments 2024-01-09 17:04:17 -04:00
Joey Hess
a496c05995
update 2024-01-09 17:04:10 -04:00
Joey Hess
db5fa267c7
sop 2024-01-09 16:57:11 -04:00
Joey Hess
8a72aa8d99
Merge branch 'master' of ssh://git-annex.branchable.com 2024-01-09 15:32:26 -04:00
Joey Hess
de6a297d36
assistant: When generating a gpg secret key, avoid hardcoding the key algorithm and size
This aims to future-proof gpg key generation. OpenPGP is in flux with a
conflict over standards ongoing. It seems not unlikely that different
systems will have different gpg commands that support different algorithms.

This also simplifies the code by using the --quick-gen-key interface rather
than the experimental batch interface. It seems less likely that
--quick-gen-key will break than an experimental interface (whose
documentation I can no longer find).

--quick-gen-key is supported since gpg 2.1.0 (2014).

Sponsored-by: Graham Spencer on Patreon
2024-01-09 15:31:53 -04:00
psxvoid
6e4d59c05a Added a comment: Using fuse annexize - works like a charm 2024-01-07 04:11:37 +00:00
yarikoptic
61384f155e 2024-01-06 18:31:18 +00:00
yarikoptic
46ab66d97a reporting about --listen 2024-01-06 16:00:05 +00:00
nobodyinperson
25e2e827f6 Added a comment 2024-01-06 09:22:54 +00:00
yarikoptic
d08804ef9e Added a comment 2024-01-05 21:00:52 +00:00
yarikoptic
077a99bebb new issue about stalling transfers 2024-01-04 20:23:34 +00:00
Joey Hess
d37dbd62b8
Merge branch 'master' of ssh://git-annex.branchable.com 2024-01-03 15:22:03 -04:00
Joey Hess
2c86651180
optimise adjustTree when adding many TreeItems
The old code traversed the list of addtreeitems once per subdirectory in
the tree, so could get quite slow. Converting to Map lookups sped it up
significantly.

In my test case, git-annex import used to take about 2 minutes, when
calling adjustTree to add back excluded files to the imported tree. This
dropped it down to 6 seconds. Of which 4 seconds are the actual
enumeration of the contents of the remote, so really only 2 seconds for
this.

The path prefix map is a bit suboptimal memory-wise, since items get
stored in the map once per subdirectory on the path to the item. It
would perhaps be better to use a tree data structure.

Also it's suboptimal memory-wise that it builds two maps, as well
as retaining a reference to addtreeitems. I could not see a way around
that though.

Sponsored-by: Luke T. Shumaker on Patreon
2024-01-03 15:07:49 -04:00
kdm9
d5e1dd195e Added a comment: confirmed fixed 2024-01-03 09:03:44 +00:00
Joey Hess
a6a67f79e7
todo 2024-01-02 17:00:41 -04:00
Joey Hess
11b9069dc2
bump copyright year
after my first commit of 2024
2024-01-02 14:10:52 -04:00
Joey Hess
bcbad66cf3
comment 2024-01-02 14:08:01 -04:00
Joey Hess
2b8d081b60
Merge branch 'master' of ssh://git-annex.branchable.com 2024-01-02 13:59:55 -04:00
Joey Hess
a5b9c2ca69
import: Sped up import from special remote when the imported tree is unchanged
I saw a nearly 2 minute speed up from this, in a repo with 56000 files some
of which are preferred content of the special remote and others not. In
such a case, addBackExportExcluded has to do a lot of work, which is
unncessary when the tree is unchanged.

When using sync --content, preferred content checking of that many files
takes about 1 minute. So this speeds up sync --content by 3x.
When using git-annex import, the speed up is much larger.

Sponsored-by: Nicholas Golder-Manning on Patreon
2024-01-02 13:57:31 -04:00
lemondata
2957eed1f0 Added a comment 2024-01-02 15:44:21 +00:00
Lukey
7243664b6c Added a comment 2023-12-31 14:41:18 +00:00
jgsuess@732b8c62c50d8595d7b1d58eea11e5019c2308b1
74cb99fa4b Added a comment: Scanning for files in ghost repos 2023-12-31 09:46:53 +00:00