Commit graph

4211 commits

Author SHA1 Message Date
Joey Hess
65ddd13cf7
close 2022-12-26 13:31:09 -04:00
nobodyinperson
82ae848dd0 Added a comment 2022-12-23 10:05:27 +00:00
nobodyinperson
8ec93b6e2f Added a comment 2022-12-23 09:39:58 +00:00
Joey Hess
bda406ff90
Merge branch 'master' of ssh://git-annex.branchable.com 2022-12-22 14:34:16 -04:00
Joey Hess
2fa7656627
switch to readMaybe to handle values with leading number followed by non-number
readish ignores a trailing string after a number, but to support values
like "YYYY:MM:DD" which it makes sense to compare lexographically,
require the whole string to be parsed as a number in order to enable
numeric comparison.

Sponsored-by: Max Thoursie on Patreon
2022-12-22 14:33:47 -04:00
nobodyinperson
11873d00cd Added a comment 2022-12-22 11:39:41 +00:00
Joey Hess
eb8e0594bb
use status --ignore-submodules in configureSmudgeFilter
Speed up git-annex upgrade (from v5) and init in a repository that has
submodules. Setting the config does not affect the submodules, so avoid
the work of getting status in them, which may involve using the smudge
filter etc.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2022-12-20 16:02:42 -04:00
Joey Hess
0b2dd374d8
--anything and --nothing
Added --anything (and --nothing). Eg, git-annex find --anything will list
all annexed files whether or not the content is present. This is slightly
faster and clearer than --include=* or --exclude=*

While I can't imagine how --nothing will be used, preferred content
expressions already had anything and nothing, so might as well support both
as matching options as well.

Sponsored-by: Dartmouth College's Datalad project
2022-12-20 15:44:09 -04:00
Joey Hess
5cbfb74391
belatedly added comment made somewhat earlier 2022-12-20 15:02:09 -04:00
yarikoptic
d3532ebe2b initial TODO for making it possible to use find/findref without penalty 2022-12-15 01:24:55 +00:00
yarikoptic
2e62601db3 fixing formatting 2022-12-12 23:11:21 +00:00
yarikoptic
e1133e9de8 initial report on annex upgrade too curious about submodules 2022-12-12 23:03:33 +00:00
Joey Hess
aa6919737c
--metadata lexicographical comparisons
Change --metadata comparisons < > <= and >= to fall back to lexicographical
comparisons when one or both values being compared are not numbers.

Sponsored-by: Erik Bjäreholt on Patreon
2022-12-12 13:33:24 -04:00
nobodyinperson
ea0a8f5551 2022-12-02 12:00:35 +00:00
nobodyinperson
c0df47c6ac 2022-12-02 11:57:40 +00:00
nobodyinperson
ae9ef1f8fe 2022-12-02 11:56:02 +00:00
Joey Hess
4ae920e0f2
close dup with comment 2022-11-21 15:13:21 -04:00
lena.wildervanck@4b6aac156870f72a36b090e210e4747f702b69cb
06793aee26 Add my name for better comunication 2022-11-18 22:05:07 +00:00
lena.wildervanck@4b6aac156870f72a36b090e210e4747f702b69cb
58eedf062d Add another reflink support request 2022-11-18 22:02:20 +00:00
Joey Hess
9313bf0eac
close as git-annex already makes reflinks when supported 2022-11-14 13:29:27 -04:00
Lena Wildervanck
a140e16fb6 add macos reflink to comment 2022-11-13 20:20:03 +01:00
lena.wildervanck@4b6aac156870f72a36b090e210e4747f702b69cb
896a299a34 Added a comment 2022-11-13 19:03:49 +00:00
lena.wildervanck@4b6aac156870f72a36b090e210e4747f702b69cb
092b118099 2022-11-13 15:42:14 +00:00
Joey Hess
e03cf52504
done 2022-11-04 16:20:51 -04:00
Joey Hess
3149a1e2fe
More robust handling of ErrorBusy when writing to sqlite databases
While ErrorBusy and other exceptions were caught and the write retried for
up to 10 seconds, it was still possible for git-annex to eventually
give up and error out without writing to the database. Now it will retry
as long as necessary.

This does mean that, if one git-annex process is suspended just as sqlite
has locked the database for writing, another git-annex that tries to write
it it might get stuck retrying forever. But, that could already happen when
opening the sqlite database, which retries forever on ErrorBusy. This is an
area where git-annex is known to not behave well, there's a todo about the
general case of it.

Sponsored-by: Dartmouth College's Datalad project
2022-10-17 15:56:19 -04:00
Joey Hess
d5cd1de280
update and open a todo about something I'm pondering 2022-10-12 15:53:56 -04:00
Joey Hess
b4305315b2
S3: pass fileprefix into getBucket calls
S3: Speed up importing from a large bucket when fileprefix= is set by only
asking for files under the prefix.

getBucket still returns the files with the prefix included, so the rest of
the fileprefix stripping still works unchanged.

Sponsored-by: Dartmouth College's DANDI project
2022-10-10 17:37:26 -04:00
Joey Hess
1328be2013
applied a patch 2022-09-30 14:04:10 -04:00
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476
3c1230a8c0 2022-09-30 15:41:51 +00:00
Joey Hess
79aadf63d4
changelog and close 2022-09-26 13:11:23 -04:00
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476
f105bed5d9 2022-09-25 19:39:22 +00:00
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476
cc9634ce12 2022-09-24 23:28:09 +00:00
Joey Hess
f64eff9355
test: Added --test-with-git-config option
Sponsored-by: Dartmouth College's DANDI project
2022-09-22 15:58:45 -04:00
Joey Hess
d049228fd3
comment and todo 2022-09-22 14:48:32 -04:00
Joey Hess
34e313f786
annex.diskreserve default increased from 1 mb to 100 mb
It's hard to know what's a good default for this. But 1 mb seems way too
small, because it's very easy for a git pull or some similar operation
that we don't think of as using much space to use up 1 mb of space.

Most people would want to free up some space if a filesystem only had 100
mb free. But on a small VPS, it's probably not uncommon to have only 1 gb
free. So 1 gb is too large for annex.diskreserve.

While old 1 gb USB keys are around, it's unlikely that anyone is
relying on them to shuttle annex data around; it would be worth anyone's
time to upgrade to a 32 gb or larger cheap modern USB key ($5).

Sponsored-by: Kevin Mueller on Patreon
2022-09-21 15:00:13 -04:00
Joey Hess
94216c99a7
comment and todo 2022-09-21 14:32:42 -04:00
Joey Hess
90da0a5e59
comment 2022-09-21 13:04:47 -04:00
yarikoptic
f3a99db14b Added a comment 2022-09-20 22:50:46 +00:00
nick.guenther@e418ed3c763dff37995c2ed5da4232a7c6cee0a9
0602d659af Added a comment 2022-09-20 21:30:51 +00:00
Joey Hess
3d51f866d3
comment 2022-09-20 14:02:09 -04:00
Joey Hess
f5a3a12360
wontfix 2022-09-20 13:54:34 -04:00
Joey Hess
0a4871cb65
comment 2022-09-16 12:39:43 -04:00
prancewit
f9417c9b20 Added a comment 2022-09-16 08:39:09 +00:00
Joey Hess
9164d9587c
general purpose design for this todo
Sponsored-by: Boyd Stephen Smith Jr. on Patreon
2022-09-15 14:26:18 -04:00
prancewit
bef6eb5d02 Added a comment 2022-09-13 21:36:38 +00:00
prancewit
9f5f960548 removed 2022-09-13 21:34:39 +00:00
prancewit
518105f89c Added a comment 2022-09-13 21:32:45 +00:00
prancewit
e0e16187a8 Added a comment: My current use case 2022-09-13 19:45:23 +00:00
Joey Hess
e13444fb2b
comments 2022-09-13 12:46:05 -04:00
prancewit
0b3da75e62 2022-09-12 19:06:11 +00:00
Joey Hess
c2184e2295
Merge branch 'master' of ssh://git-annex.branchable.com 2022-09-09 14:46:55 -04:00
Joey Hess
c62fe5e9a8
avoid redundant prompt for http password in git-annex get that does autoinit
autoEnableSpecialRemotes runs a subprocess, and if the uuid for a git
remote has not been probed yet, that will do a http get that will prompt
for a password. And then the parent process will subsequently prompt
for a password when getting annexed files from the remote.

So the solution is for autoEnableSpecialRemotes to run remoteList before
the subprocess, which will probe for the uuid for the git remote in the
same process that will later be used to get annexed files.

But, Remote.Git imports Annex.Init, and Remote.List imports Remote.Git,
so Annex.Init cannot import Remote.List. Had to pass remoteList into
functions in Annex.Init to get around this dependency loop.
2022-09-09 14:43:43 -04:00
Joey Hess
9621beabc4
cache credentials in memory when doing http basic auth to a git remote
When accessing a git remote over http needs a git credential prompt for a
password, cache it for the lifetime of the git-annex process, rather than
repeatedly prompting.

The git-lfs special remote already caches the credential when discovering
the endpoint. And presumably commands like git pull do as well, since they
may download multiple urls from a remote.

The TMVar CredentialCache is read, so two concurrent calls to
getBasicAuthFromCredential will both prompt for a credential.
There would already be two concurrent password prompts in such a case,
and existing uses of `prompt` probably avoid it. Anyway, it's no worse
than before.
2022-09-09 14:20:32 -04:00
yarikoptic
9811a02b67 Added a comment 2022-09-09 16:51:47 +00:00
Joey Hess
adb2f5cc00
comment 2022-09-09 12:39:28 -04:00
Joey Hess
28fc8d491f
comment 2022-09-09 12:30:46 -04:00
yarikoptic
f895adbb05 initial todo on multiple passwords entry for get 2022-09-06 21:02:01 +00:00
jgoerzen
254c204da2 Added a comment: mtree can help 2022-09-03 17:30:58 +00:00
yarikoptic
55252d1d4f Added a comment 2022-08-30 19:38:49 +00:00
Joey Hess
b7ff67d176
update 2022-08-30 15:22:06 -04:00
Joey Hess
e1dd689630
Merge branch 'master' of ssh://git-annex.branchable.com 2022-08-30 15:20:46 -04:00
Joey Hess
a93163d6f7
optimise linker in linux standalone tarballs
Trick the linker into not doing unncessary work searching for optimised
libraries that are not present, by symlinking the directories where
optimised libs would be to the main lib dir.

This reduces the ENOENT of git-annex init by about 1/2. The linker always
finds the files where it looks first time now. I have not looked at what
the wall clock speedup might be, it's probably rather small.

If a x86-64-v5 comes to be, the list will need to be extended. And there
may be other directories used on some machines that I have missed. Not done
for arm64 yet, or any uncommon architectures.

Sponsored-by: Dartmouth College's Datalad project
2022-08-30 15:20:04 -04:00
Joey Hess
345e60a623
comment 2022-08-30 13:36:53 -04:00
yarikoptic
04689aa74d Added a comment 2022-08-29 20:46:12 +00:00
Ilya_Shlyakhter
8df2e2dbd8 added suggestion for git-annex-import to import symlinks 2022-08-29 18:45:35 +00:00
Ilya_Shlyakhter
a1efed2a9c Added a comment: testremote cleanup 2022-08-29 18:09:24 +00:00
Joey Hess
d4fd966396
avoid dup check of guardSafeToUseRepo
Speeds up init slightly, and reduces the number of syscalls by the
dynamic linker.

Sponsored-by: Dartmouth College's Datalad project
2022-08-29 13:52:58 -04:00
Joey Hess
f184dca7de
comment 2022-08-29 13:38:42 -04:00
Joey Hess
f8524d6ecb
comment 2022-08-29 12:45:58 -04:00
Ilya_Shlyakhter
86e0e8fce1 Added a comment: testremote cleanup 2022-08-28 20:15:39 +00:00
yarikoptic
ab8ffb406c initial report on libpcre lookups 2022-08-27 00:53:22 +00:00
yarikoptic
3ff0d9ac66 Added a comment 2022-08-24 19:27:00 +00:00
Joey Hess
5e45befa1b
comment 2022-08-24 15:17:43 -04:00
yarikoptic
9750dd5e21 Added a comment 2022-08-24 18:40:10 +00:00
yarikoptic
8e5b22af2f Added a comment 2022-08-24 18:35:25 +00:00
yarikoptic
26c152bae1 Added a comment 2022-08-24 18:32:53 +00:00
Joey Hess
33083a952a
comment 2022-08-24 13:28:43 -04:00
Joey Hess
ef037b9028
comment 2022-08-24 13:26:42 -04:00
Joey Hess
a124a53fa2
comment 2022-08-24 13:17:56 -04:00
Joey Hess
ea445260ba
comment 2022-08-24 13:13:45 -04:00
yarikoptic
cc64741410 Added a comment 2022-08-24 15:42:10 +00:00
yarikoptic
4344943d64 added "reproducer" 2022-08-24 15:25:33 +00:00
yarikoptic
749593af7d request add --batch to be able to handle directories 2022-08-24 15:12:19 +00:00
Ilya_Shlyakhter
ba5c8cba44 added suggestion to add clean-up after a testremote failure 2022-08-24 14:52:36 +00:00
Joey Hess
28921af543
remove old closed bugs and todo items to speed up wiki updates and reduce size
Remove closed bugs and todos that were last edited or commented before 2021.

Except for ones tagged projects/* since projects like datalad want to keep
around records of old deleted bugs longer.

Command line used:

    for f in $(grep -l '|done\]\]' -- ./*.mdwn); do if ! grep -q "projects/" "$f"; then d="$(echo "$f" | sed 's/.mdwn$//')"; if [ -z "$(git log --since=01-01-2021 --pretty=oneline -- "$f")" -a -z "$(git log --since=01-01-2021 --pretty=oneline -- "$d")" ]; then git rm -- "./$f" ; git rm -rf "./$d"; fi; fi; done
    for f in $(grep -l '\[\[done\]\]' -- ./*.mdwn); do if ! grep -q "projects/" "$f"; then d="$(echo "$f" | sed 's/.mdwn$//')"; if [ -z "$(git log --since=01-01-2021 --pretty=oneline -- "$f")" -a -z "$(git log --since=01-01-2021 --pretty=oneline -- "$d")" ]; then git rm -- "./$f" ; git rm -rf "./$d"; fi; fi; done
2022-08-22 12:27:10 -04:00
Yaroslav Halchenko
0151976676
Typo fix unncessary -> unnecessary.
Detected while reading recent CHANGELOG entry but then decided to apply
to entire codebase and docs since why not?
2022-08-20 09:40:19 -04:00
Joey Hess
cd9fd6e28c
fix case of Win32 2022-08-04 12:17:27 -04:00
jkniiv
2930afded3 Added a comment: typo in Utility/LockFile/Windows.hs 2022-08-03 20:46:14 +00:00
Joey Hess
f185140d3e
Merge branch 'master' of ssh://git-annex.branchable.com 2022-08-03 11:16:50 -04:00
Joey Hess
3a513cfe73
add --dry-run: New option
This is intended for users who want to see what it would output in order to
eg, check if a file would be added to git or the annex. It is not intended
as a way for scripts to get information.

Sponsored-by: Dartmouth College's Datalad project
2022-08-03 11:16:04 -04:00
jkniiv
e5a83d29bc Added a comment 2022-08-03 15:14:23 +00:00
Joey Hess
54b3bfed4b
comment 2022-08-03 10:21:08 -04:00
Joey Hess
c6ce2150f4
Merge branch 'master' of ssh://git-annex.branchable.com 2022-08-03 09:53:56 -04:00
yarikoptic
d297e9ba78 initial report on wanting --dry-run 2022-08-02 21:06:06 +00:00
Joey Hess
472f5c142b
Use createFile_NoRetry from win32 2.13.3.1
Sponsored-by: Tobias Ammann on Patreon
2022-08-02 10:45:39 -04:00
Joey Hess
f6f46eb9eb
comment 2022-08-01 12:45:41 -04:00
Joey Hess
89095abc26
comment 2022-08-01 12:38:39 -04:00
Joey Hess
0c0724e9a8
response 2022-08-01 12:36:44 -04:00
Joey Hess
08be64b6f6
comment 2022-07-29 12:30:33 -04:00
Joey Hess
be19a68276
new matching options --want-get-by and --want-drop-by
Sponsored-by: Graham Spencer on Patreon
2022-07-28 13:26:03 -04:00
kdm9
11f7e68e16 Added a comment: Bump for --want-get/drop-by 2022-07-26 18:19:37 +00:00
Joey Hess
d4b2c4a3fe
comment and fix my incorrect earlier comment 2022-07-25 16:30:22 -04:00
yarikoptic
dfa8298f46 Added a comment 2022-07-25 19:03:42 +00:00
Joey Hess
7f77405f60
comment 2022-07-25 12:50:56 -04:00
Joey Hess
7e4ee80e9a
comment 2022-07-25 12:35:58 -04:00
yarikoptic
b40ac7af3d Added a comment 2022-07-24 16:52:33 +00:00
Joey Hess
2de61f2e5a
comment 2022-07-22 11:38:33 -04:00
jkniiv
3d105f44bb Added a comment 2022-07-21 20:08:55 +00:00
yarikoptic
152f82796a Added a comment 2022-07-21 14:03:56 +00:00
Joey Hess
27e0108097
comment 2022-07-20 13:51:26 -04:00
Joey Hess
03ce01dcf9
comment 2022-07-20 13:44:24 -04:00
Joey Hess
8b4f7af605
Merge branch 'master' of ssh://git-annex.branchable.com 2022-07-20 13:34:37 -04:00
Joey Hess
a0746d2027
fixed 2022-07-20 13:32:26 -04:00
Joey Hess
05b96a1acf
Merge branch 'append' 2022-07-20 13:24:04 -04:00
Joey Hess
4e88137a28
prevent appends except when annex.alwayscompact=false
I would like for a new repo version to enable appends, but to do so
safely would need a v11 followed by a 1 year delay followed by a v12
that does it. Since a similar v9 and v10 transition is currently
happening, and is less than 6 months along in most repos, it does not
feel wise to stack up another year-long transition behind that. What if
I need to hurry up a new repo version for some other change?

Added todo so I remember to make this change at some time when a v11
and probably v12 repo version do make sense.

Sponsored-by: Dartmouth College's DANDI project
2022-07-20 13:23:55 -04:00
Joey Hess
c933b0074f
comment 2022-07-19 18:10:45 -04:00
yarikoptic
78642ededb Added a comment 2022-07-19 21:29:02 +00:00
Joey Hess
d832a7c211
thoughts 2022-07-19 15:45:08 -04:00
daven.quinn@d0ed4e0e5e4462d9a74a5d5a8fbd1b17f85db13e
0568fc872d 2022-07-19 07:57:37 +00:00
Joey Hess
fd6e01d9b6
comment 2022-07-18 17:02:41 -04:00
Joey Hess
2cb634c373
comment 2022-07-18 16:56:31 -04:00
yarikoptic
cab61b88e0 Added a comment 2022-07-18 19:23:02 +00:00
Joey Hess
b04435ea27
Merge branch 'master' of ssh://git-annex.branchable.com 2022-07-18 14:45:23 -04:00
Joey Hess
efee53f433
comments 2022-07-18 14:45:03 -04:00
Ilya_Shlyakhter
1155bbb3db added suggestion to record ETags in URL- keys 2022-07-18 16:43:28 +00:00
yarikoptic
eee1169ad5 Added a comment 2022-07-15 19:33:50 +00:00
Joey Hess
8bc9381d8d
design work 2022-07-15 15:06:40 -04:00
Joey Hess
7c8c5ffe8e
Merge branch 'master' of ssh://git-annex.branchable.com 2022-07-15 11:10:44 -04:00
Joey Hess
f561602484
comment 2022-07-15 11:10:40 -04:00
jkniiv
c2cdf0f61f Added a comment 2022-07-14 20:32:06 +00:00
Joey Hess
94b50c61b3
comment 2022-07-14 16:09:48 -04:00
yarikoptic
f2c30bcb07 Added a comment 2022-07-14 19:42:58 +00:00
Joey Hess
2e57da226c
comments 2022-07-14 15:08:01 -04:00
Joey Hess
78da3e2783
close 2022-07-14 13:53:32 -04:00
Joey Hess
557542d621
comment 2022-07-14 13:51:59 -04:00
yarikoptic
06981c6c5a Added a comment 2022-07-14 17:00:40 +00:00
yarikoptic
3c948423a9 Added a comment 2022-07-14 16:50:15 +00:00
Joey Hess
ad467791c1
optimise journal writes to not mkdir journal directory when it already exists
Sponsored-by: Dartmouth College's DANDI project
2022-07-14 12:29:39 -04:00
Joey Hess
5e407304a2
comment with a question 2022-07-14 12:13:28 -04:00
yarikoptic
c4cca7e6c6 initial request for more efficient registerurl 2022-07-14 13:40:16 +00:00
Joey Hess
6c7550ba62
comment 2022-07-13 17:27:30 -04:00
yarikoptic
5764450a80 Added a comment 2022-07-13 20:05:34 +00:00
yarikoptic
fa126d1ac9 Added a comment 2022-07-13 19:04:40 +00:00
Joey Hess
7c7b7ac9b9
followup 2022-07-13 14:53:46 -04:00
Joey Hess
68e9b7f987
comment 2022-07-13 13:44:43 -04:00
yarikoptic
2d71b83e7f initial complain/call for a more efficient journal? 2022-07-13 16:19:55 +00:00
Joey Hess
323c78b191
comment
(and fix an old comment's formatting)
2022-07-12 16:47:49 -04:00
Joey Hess
ba13c1e2ac
depend on version of Win32 that exports c_createFile 2022-07-12 16:28:01 -04:00
jkniiv
125feb6da0 I should use the correct term 2022-07-09 11:31:11 +00:00
jkniiv
70357a9bac corr. typo with meta directive 2022-07-09 08:27:20 +00:00
jkniiv
92efe0b8e2 not to be the bringer of bad news re: Windows, yet here we are 2022-07-09 08:23:18 +00:00
yarikoptic
22453fca7c request for anonymous access to S3 2022-07-07 19:50:15 +00:00
Joey Hess
8040ecf9b8
final readonly values moves to AnnexRead
At this point I've checked all AnnexState values and these were all that
remained that could move.

Pity that Annex.repo can't move, but it gets modified sometimes..

A couple of AnnexState values are set by options and could be AnnexRead,
but happen to use Annex when being set.

Sponsored-by: Max Thoursie on Patreon
2022-06-28 16:04:58 -04:00
Joey Hess
cb9cf30c48
move several readonly values to AnnexRead
This improves performance to a small extent in several places.

Sponsored-by: Tobias Ammann on Patreon
2022-06-28 15:40:19 -04:00
Joey Hess
655235319b
comment 2022-06-28 13:04:41 -04:00
Joey Hess
53a4de4968
close 2022-06-28 12:58:00 -04:00
Joey Hess
a153480667
comments 2022-06-28 12:22:32 -04:00
Atemu
4517e9e41c Added a comment: Still useful 2022-06-25 16:36:38 +00:00
Joey Hess
e5c418b99c
convert bug to todo 2022-06-22 14:23:46 -04:00
Atemu
c6b1121088 Added a comment 2022-06-22 12:34:45 +00:00
Joey Hess
49ab467784
comment 2022-06-13 14:20:54 -04:00
Joey Hess
4f23931439
add todo based on forum post 2022-06-13 13:12:18 -04:00
Atemu
c0e648e921 2022-06-11 14:58:11 +00:00
aurelia@b44312a63326710de6cea9c43290e5debbd55607
4150433ef4 Added a comment 2022-06-06 12:38:26 +00:00
Joey Hess
1cacfd1b19
avoid setEnv in test framework when tasty is running
setEnv is not thread safe and could cause a getEnv by another thread to
segfault, or perhaps other had behavior. This is particularly a problem
when using tasty, because tasty runs the test in a thread, and a getEnv
in another thread.

The use of top-level TMVars is ugly, but ok because only 1 test actually
runs at a time per process. Because it has to chdir into the test repo.

The setEnv that remains happens before tasty is running.

Sponsored-by: Dartmouth College's Datalad project
2022-05-18 16:45:20 -04:00
Joey Hess
ebb76f0486
avoid setEnv while testing gpg
setEnv is not thread safe and could cause a getEnv by another thread to
segfault, or perhaps other had behavior.

Sponsored-by: Dartmouth College's Datalad project
2022-05-18 16:05:11 -04:00
Joey Hess
4ba7a97d8c
add comment I made earlier 2022-05-18 14:57:27 -04:00
Joey Hess
6bf09a38ed
comment and open a todo 2022-05-18 14:57:14 -04:00
Joey Hess
12119d8bfe
Merge branch 'master' of ssh://git-annex.branchable.com 2022-05-16 15:38:22 -04:00
Joey Hess
aa414d97c9
make fsck normalize object locations
The purpose of this is to fix situations where the annex object file is
stored in a directory structure other than where annex symlinks point to.

But it will also move object files from the hashdirmixed back to
hashdirlower if the repo configuration makes that the normal location.
It would have been more work to avoid that than to let it do it.

Sponsored-by: Dartmouth College's Datalad project
2022-05-16 15:38:06 -04:00
Joey Hess
5a98f2d509
avoid creating content directory when locking content
If the content directory does not exist, then it does not make sense to
lock the content file, as it also does not exist, and so it's ok for the
lock operation to fail.

This avoids potential races where the content file exists but is then
deleted/renamed, while another process sees that it exists and goes to
lock it, resulting in a dangling lock file in an otherwise empty object
directory.

Also renamed modifyContent to modifyContentDir since it is not only
necessarily used for modifying content files, but also other files in
the content directory.

Sponsored-by: Dartmouth College's Datalad project
2022-05-16 12:34:56 -04:00
yarikoptic
5079891302 Added a comment: shell helper 2022-05-13 16:51:23 +00:00
yarikoptic
e37dddbacb Added a comment 2022-05-13 15:12:29 +00:00
Joey Hess
b6c7819803
thoughts 2022-05-10 14:17:29 -04:00
Joey Hess
c5b5fd364a
thoughts 2022-05-10 14:14:41 -04:00
Joey Hess
997e96ef5e
thoughts 2022-05-10 13:25:38 -04:00
Joey Hess
3b83224e57
followup 2022-05-09 16:10:31 -04:00
Joey Hess
136ad17b94
Merge branch 'master' of ssh://git-annex.branchable.com 2022-05-09 15:54:07 -04:00
Joey Hess
e8a601aa24
incremental verification for retrieval from import remotes
Sponsored-by: Dartmouth College's Datalad project
2022-05-09 15:39:43 -04:00
yarikoptic
dfc3bf4daa Added a comment: hm... 2022-05-09 19:10:10 +00:00
Joey Hess
2f2701137d
incremental verification for retrieval from all export remotes
Only for export remotes so far, not export/import.

Sponsored-by: Dartmouth College's Datalad project
2022-05-09 13:49:33 -04:00
Joey Hess
52b768db45
datalad metadata 2022-05-09 11:32:29 -04:00
Joey Hess
74cf62a51e
comment 2022-05-09 11:00:13 -04:00
yarikoptic
0eeeea318a question/todo about migrating .git/annex/objects 2022-05-06 15:32:56 +00:00
Joey Hess
d1cce869ed
implement dataUnits finally
Added support for "megabit" and related bandwidth units in
annex.stalldetection and everywhere else that git-annex parses data units.

Note that the short form is "Mbit" not "Mb" because that differs from "MB"
only in case, and git-annex parses units case-insensitively. It would be
horrible if two different versions of git-annex parsed the same value
differently, so I don't think "Mb" can be supported.

See comment for bonus sad story from my childhood.

Sponsored-by: Nicholas Golder-Manning
2022-05-05 15:25:11 -04:00
Joey Hess
3d8af64527
close 2022-05-05 12:13:09 -04:00
Joey Hess
1c00731f9e
comment 2022-05-02 14:24:32 -04:00
kdm9
58fcedb598 2022-04-29 07:28:46 +00:00
Ilya_Shlyakhter
97a57a4c2e Added a comment: transitive transfers 2022-04-22 16:59:59 +00:00
Joey Hess
8bb86ee97e
comment 2022-04-19 14:04:14 -04:00
Joey Hess
fa89a52d36
remove moreinfo 2022-04-19 13:17:11 -04:00
Joey Hess
021fafc086
todo 2022-04-13 11:08:33 -04:00
Joey Hess
8f0c7eac09
todo 2022-04-12 23:26:17 -04:00
Ilya_Shlyakhter
6bd23e1725 Added a comment: maxextensionlength 2022-04-08 19:13:38 +00:00
Joey Hess
469801c886
how to implement this? 2022-04-05 14:52:09 -04:00
Joey Hess
77de20c925
todo triage
Tagging todos that seem to have a plan ready as confirmed.

Also closed some old ones for various reasons. Including several that
turn out to be addressed by newer features.

Also opened a new todo about git-annex-config needing a criteria to add
new configs to it.
2022-04-04 15:22:49 -04:00
Joey Hess
f51007d716
comment 2022-04-04 14:27:48 -04:00
Joey Hess
91b2285010
comment 2022-04-04 12:18:05 -04:00
Atemu
53d0f4b0f0 2022-04-01 10:30:48 +00:00
Atemu
9c6dc9db0c Added a comment 2022-03-31 10:39:28 +00:00
Joey Hess
04f13c7d3d
more thoughts
This idea seems fleshed out enough to implement now.

Sponsored-by: Boyd Stephen Smith Jr. on Patreon
2022-03-30 12:53:42 -04:00
Joey Hess
afced1a8ba
idea 2022-03-30 12:28:25 -04:00
Joey Hess
0605cc1bfb
idea 2022-03-29 18:09:41 -04:00
Joey Hess
bc6d64ec8a
comment 2022-03-29 14:53:07 -04:00
yarikoptic
a03aee0033 Added a comment 2022-03-16 20:32:57 +00:00
Joey Hess
025c18128b
test: Added --jobs option
Default to the number of CPU cores, which seems about optimal
on my laptop. Using one more saves me 2 seconds actually.

Better packing of workers improves speed significantly.

In 2 tests runs, I saw segfaulting workers despite my attempt
to work around that issue. So detect when a worker does, and re-run it.

Removed installSignalHandlers again, because I was seeing an
error "lost signal due to full pipe", which I guess was somehow caused
by using it.

Sponsored-by: Dartmouth College's Datalad project
2022-03-16 14:42:07 -04:00
Joey Hess
8d14ce8f38
parallelize git-annex test for 25% speedup
Note the very weird workaround for what appears to be some kind of tasty
bug, which causes a segfault. This is not new to this modification,
I was seeing a segfault before at least intermittently when limiting
git-annex test -p to only run a single test group.

Also, the path from one test repo to a remote test repo used to be
"../../foo", which somehow broke when moving the test repos from .t to
.t/N. I don't actually quite understand how it used to work, but
"../foo" seems correct and works in the new situation.

Test output from the concurrent processes is not yet serialized.
Should be easy to do using concurrent-output.

More test groups will probably make the speedup larger. It would
probably be best to have a larger number of test groups and divvy them
amoung subprocesses numbered based on the number of CPU cores, perhaps
times 2 or 3.

Sponsored-by: Dartmouth College's Datalad project
2022-03-14 15:24:37 -04:00
ErrGe
7580d787cc Added a comment 2022-03-11 02:26:56 +00:00
ErrGe
4d593d4461 Added a comment 2022-03-11 02:23:20 +00:00
Joey Hess
afeb9b728e
comment 2022-03-10 16:10:46 -04:00
Joey Hess
feaf16141e
comment 2022-03-10 13:22:32 -04:00
Atemu
0e39304905 Added a comment 2022-03-09 12:07:45 +00:00
ErrGe
f706a68c43 2022-03-09 01:08:23 +00:00
Joey Hess
c7f7be0236
comment 2022-03-08 15:50:31 -04:00
Joey Hess
82f1d82286
comment 2022-03-08 15:46:29 -04:00
Joey Hess
4cab0c1b05
comment 2022-03-08 14:51:01 -04:00
Joey Hess
14add55c2b
reopen 2022-03-08 14:08:27 -04:00
Joey Hess
2c5bf952cf
comment 2022-03-08 13:47:06 -04:00
Atemu
c7e3414d8d Added a comment 2022-03-08 13:21:03 +00:00
yarikoptic
875a04e1e2 Added a comment: still slow 2022-03-08 00:28:00 +00:00
Joey Hess
1cbbd23109
comment 2022-03-07 15:25:32 -04:00
tomdhunt
0127e5f4e4 Added a comment 2022-03-07 18:27:38 +00:00
Joey Hess
da698437b6
close 2022-03-07 14:12:11 -04:00
Joey Hess
dab9078ab7
close 2022-03-07 13:23:19 -04:00
mih
fa5a001ef6 Added a comment: Thanks! 2022-03-04 16:23:16 +00:00
Joey Hess
5e385cb637
add 2022-03-02 10:44:49 -04:00
Joey Hess
2fc46e1871
git-annex test from standalone speedup
Avoid git-annex test being very slow when run from within the standalone
linux tarball or OSX app.

It may not really be necessary to add to PATH the directory where the
git-annex binary resides, but it can't hurt. Most places where the test
suite or git-annex run git-annex, they use programPath, so won't need
a modified PATH. But I'm not sure if that's always the case.

Sponsored-by: Dartmouth College's Datalad project
2022-03-01 16:08:55 -04:00
Joey Hess
ecf7c29107
update comment 2022-03-01 15:57:13 -04:00
Joey Hess
316a049e96
comment 2022-03-01 15:50:44 -04:00
yarikoptic
ca5834a18c Added a comment: question about backend 2022-02-28 22:42:34 +00:00
yarikoptic
9e6e53af71 initial report on a very slow git annex test on discovery 2022-02-28 20:50:06 +00:00
Joey Hess
525218ef86
commet 2022-02-28 15:42:33 -04:00
yarikoptic
a33b40876d Added a comment 2022-02-28 18:48:51 +00:00
Joey Hess
7a4a1322f5
update 2022-02-28 13:37:05 -04:00
Joey Hess
20875bd5e8
open related todo 2022-02-28 13:26:43 -04:00
Joey Hess
7de469edd0
comment 2022-02-25 13:32:06 -04:00
yarikoptic
7e9ebea910 Added a comment 2022-02-21 21:53:03 +00:00
Joey Hess
5a8b15f6db
comment 2022-02-21 15:46:12 -04:00
Joey Hess
ce1b3a9699
info: Allow using matching options in more situations
File matching options like --include will be rejected in situations where
there is no filename to match against. (Or where there is a filename but
it's not relative to the cwd, or otherwise seemed too bothersome to match
against.)

The addition of listKeys' was necessary to avoid using more memory in the
common case of "git-annex info". Adding a filterM would have caused the
list to buffer in memory and not stream. This is an ugly hack, but listKeys
had previously run Annex operations inside unafeInterleaveIO (for direct
mode). And matching against a matcher should hopefully not change any Annex
state.

This does allow for eg `git-annex info somefile --include=*.ext`
although why someone would want to do that I don't really know. But it
seems to make sense to allow it.
But, consider: `git-annex info ./somefile --include=somefile`
This does not match, so will not display info about somefile.
If the user really wants to, they can `--include=./somefile`.

Using matching options like --copies or --in=remote seems likely to be
slower than git-annex find with those options, because unlike such
commands, info does not have optimised streaming through the matcher.

Note that `git-annex info remote` is not the same as
`git-annex info --in remote`. The former shows info about all files in
the remote. The latter shows local keys that are also in that remote.
The output should make that clear, but this still seems like a point
where users could get confused.

Sponsored-by: Jochen Bartl on Patreon
2022-02-21 14:46:07 -04:00
Joey Hess
d36de3edf9
comment 2022-02-21 12:49:36 -04:00
Atemu
6ca9f5e18a 2022-02-20 18:03:35 +00:00
yarikoptic
b481ec2738 Added a comment 2022-02-18 21:56:19 +00:00
yarikoptic
9d2e6a60f0 Added a comment 2022-02-18 20:18:04 +00:00
Joey Hess
faf84aa5c2
Avoid git status taking a long time after git-annex unlock of many files.
Implemented by making Git.Queue have a FlushAction, which can accumulate
along with another action on files, and runs only once the other action has
run.

This lets git-annex unlock queue up git update-index actions, without
conflicting with the restagePointerFiles FlushActions.

In a repository with filter-process enabled, git-annex unlock will
often not take any more time than before, though it may when the files are
large. Either way, it should always slow down less than git-annex status
speeds up.

When filter-process is not enabled, git-annex unlock will slow down as much
as git status speeds up.

Sponsored-by: Jochen Bartl on Patreon
2022-02-18 15:06:40 -04:00
Joey Hess
c68f52c6a2
restage pointer file after unlock
This avoids a later git status or similar taking a long time to run
as it runs git-annex smudge once per file. While v9 repositories do
avoid that taking long when the files are small, large files can still
make git status take a very long time.

This does make unlock slower, because now git-annex smudge is being run
once per file unlocked. However, the next commit should speed that up in
many cases.

Sponsored-by: Boyd Stephen Smith Jr. on Patreon
2022-02-18 14:55:52 -04:00
Joey Hess
07215cfeb5
complete annex.skipunknown transition
annex.skipunknown now defaults to false, so commands like `git annex get foo*`
will not silently skip over files/dirs that are not checked into git.

Sponsored-by: Brock Spratlen on Patreon
2022-02-18 13:18:05 -04:00
Joey Hess
0edf01d7d4
registerurl,unregisterurl: rework output and support --json
* registerurl, unregisterurl: Improved output when reading from stdin
  to be more like other batch commands.
* registerurl, unregisterurl: Added --json and --json-error-messages options.

Note that this did change the --batch output in a way that could possibly
break something that expected the old output to never change. I think it's
acceptable to break that because there has never been a guarantee of
unchanging output format except with --batch for most commands. The old
output was just really weird too!

One possible wart is that "git-annex registerurl" with no options now
seems to just hang, since it's waiting for stdin input. Before, it said
"registerurl (stdin)" which was clearer about what's happenening. But this
is a deprecated mode anyway, --batch makes clear what's happening. If
anything, this problem would be a reason to eventually remove the support
for reading from stdin w/o --batch.

Sponsored-by: Dartmouth College's Datalad project
2022-02-14 13:29:20 -04:00
Joey Hess
291dc0d1a9
comment 2022-02-14 12:42:37 -04:00
yarikoptic
c908046235 initial todo for --json for registerurl 2022-02-09 21:39:46 +00:00
Joey Hess
ad2f0446a0
comment 2022-02-08 13:24:28 -04:00