Commit graph

12101 commits

Author SHA1 Message Date
Joey Hess
4cd44583b9
moreinfo 2023-06-21 14:23:57 -04:00
Joey Hess
fb6098a523
moreinfo 2023-06-21 14:21:34 -04:00
Joey Hess
9925543039
moreinfo 2023-06-21 14:11:38 -04:00
Joey Hess
02b56f1d9d
comment 2023-06-21 14:10:34 -04:00
Joey Hess
ffd737e2be
update 2023-06-21 13:59:13 -04:00
Joey Hess
6d31f35f42
close 2023-06-21 13:56:10 -04:00
Joey Hess
69c3918d85
tag moreinfo 2023-06-21 13:50:13 -04:00
Joey Hess
217a6abb19
assistant: Fix a crash when a small file is deleted immediately after being created
git add will fail if the file got deleted in the meantime. And since it was
queued, there was a window until the queue flushed where a deletion of the
file would cause a crash.

Instead, reuse Command.Add.addFile, which sha1 hashes the file itself
immediately, and then queues the index update. Ignore exceptions that will
happen if the file got deleted already.

Sponsored-by: k0ld on Patreon
2023-06-19 12:44:56 -04:00
Lukey
4a42e7d11e removed 2023-06-16 20:04:05 +00:00
Lukey
aaa4ba0261 removed 2023-06-16 19:59:28 +00:00
Lukey
3b4254153b removed 2023-06-16 19:59:09 +00:00
Joey Hess
12fa697ca5
Merge branch 'master' of ssh://git-annex.branchable.com 2023-06-15 10:08:16 -04:00
Joey Hess
114a2d7504
Fix display when run with -J1
Commit b6642dde8a broke it by enabling
non-concurrent display mode while leaving concurrency set in the config
and having already started concurrency earlier.

(I don't actually know if that commit was a good idea.)

Sponsored-By: Brett Eisenberg on Patreon
2023-06-15 10:07:54 -04:00
Joey Hess
772d7fa82d
bug 2023-06-15 09:39:56 -04:00
stephenriley
4fdc2113d5 Added a comment 2023-06-15 02:57:35 +00:00
stephenriley
393441a561 Added a comment 2023-06-15 02:57:26 +00:00
jacksondm33@cf6e91518a0fa6a05945d5d4e03ae770f6383615
276c964a9f 2023-06-14 22:06:10 +00:00
Joey Hess
38153ad340
assistant: Add dotfiles to git by default, unless annex.dotfiles is configured
Tthe same as git-annex add does.

Sponsored-by: Luke Shumaker on Patreon
2023-06-12 13:25:04 -04:00
Joey Hess
357291c13c
comment 2023-06-12 13:06:04 -04:00
jgoerzen
56d6b622d7 Added a comment 2023-06-11 02:18:23 +00:00
jacksondm33@cf6e91518a0fa6a05945d5d4e03ae770f6383615
37a9982d86 2023-06-10 16:03:12 +00:00
Joey Hess
c33c226abd
fixed 2023-06-09 16:13:52 -04:00
Joey Hess
a0ab425c95
add ContentIndentifiersCidRemoteKeyIndex
Optimise database to further speed up importing large trees from special
remotes.

See comment for details of why the other index didn't help cid queries.

It would probably be better to manually create an index on only cid, rather
than adding a second uniqueness constraint that is a larger index. But
persitent does not support creating indexes, and an attempt to manually add
it to the migration failed.

Sponsored-by: Nicholas Golder-Manning on Patreon
2023-06-09 15:12:33 -04:00
Joey Hess
532b227086
update exportdb tree in getImportableContents
This avoids bottlenecking on git check-ignore in a particular situation.
Also, there may have been a correctness issue with it not having updated it.
When the exportdb is already up-to-date, this is not expensive. And the
exportdb is updated elsewhere, so usually it is up-to-date.

Sponsored-by: Joshua Antonishen on Patreon
2023-06-08 18:36:24 -04:00
Joey Hess
5934e7d402
Merge branch 'master' of ssh://git-annex.branchable.com 2023-06-08 16:54:05 -04:00
yarikoptic
96a6946a14 stalling report 2023-06-08 15:46:29 +00:00
Joey Hess
7888702955
update 2023-06-07 11:32:53 -04:00
Joey Hess
5bc37c2de2
comment 2023-06-06 15:17:09 -04:00
Joey Hess
d63af3f52e
comment 2023-06-06 14:45:48 -04:00
Joey Hess
3c15e0f7a0
cache negative lookups of global numcopies and mincopies
Speeds up eg git-annex sync --content by up to 50%. When it does not need
to transfer or drop anything, it now noops a lot more quickly.

I didn't see anything else in sync --content noop loop that could really
be sped up. It has to cat git objects to keys, stat object files, etc.

Sponsored-by: unqueued on Patreon
2023-06-06 14:43:25 -04:00
Mowgli
6c60e1d715 Added a comment 2023-06-05 20:35:19 +00:00
Mowgli
c0b2eb3914 Added a comment: comment igendwas 2023-06-05 20:33:42 +00:00
jgoerzen
432e7cd9f3 Added a comment 2023-06-05 19:32:29 +00:00
Joey Hess
1f0f774ab7
close this release blocker 2023-06-05 15:10:52 -04:00
Joey Hess
07db8e234a
comment and wontfix 2023-06-05 14:40:25 -04:00
Joey Hess
528882a6df
comment 2023-06-05 14:08:12 -04:00
jgoerzen
2c2a84caac Added a comment 2023-06-02 21:44:54 +00:00
Joey Hess
b43fb4923f
comment 2023-06-02 13:11:24 -04:00
Joey Hess
b8750bcb17
Merge branch 'master' of ssh://git-annex.branchable.com 2023-06-02 12:14:03 -04:00
Joey Hess
b40b368857
comment 2023-06-02 12:13:50 -04:00
jgoerzen
5dcbf7d41e Added a comment 2023-06-02 03:25:27 +00:00
Joey Hess
7178db5e06
Merge branch 'master' of ssh://git-annex.branchable.com 2023-06-01 18:43:29 -04:00
Joey Hess
2e92cef13f
comment 2023-06-01 18:43:17 -04:00
jgoerzen
53eeca40ae Added a comment 2023-06-01 21:26:23 +00:00
Joey Hess
594110a6af
comment 2023-06-01 14:21:55 -04:00
Joey Hess
029b08f54b
Merge branch 'master' of ssh://git-annex.branchable.com 2023-05-31 16:34:03 -04:00
Joey Hess
f6aa097a39
avoid import writing to cidsdb initially
Speed up importing trees from special remotes somewhat by avoiding
redundant writes to sqlite database.

Before, import would write to both the git-annex branch and also to the
sqlite database. But then the next time it was run, needsUpdateFromLog
would see the branch had changed, so run updateFromLog, which would make
the same writes to the sqlite database a second time.

Now import writes only to the git-annex branch. The next time it's run,
needsUpdateFromLog sees that the branch has changed and so calls
updateFromLog, which updates the sqlite database.

Why defer the write to the sqlite database like this? It seems that it
could write to the database as it goes, and at the end call
recordAnnexBranchTree to indicate that the information in the git-annex
branch has all been written to the cidsdb. That would avoid the second
import doing extra work.

But, there could be other processes running at the same time, and one of
them may update the git-annex branch, eg merging a remote git-annex branch
into it. Any cids logs on that merged git-annex branch would not be
reflected in the cidsdb yet. If the import then called
recordAnnexBranchTree, the cidsdb would never get updated with that merged
information.

I don't think there's a good way to prevent, or to detect that situation.
So, it can't call recordAnnexBranchTree at the end. So it might as well
wait until the next run and do updateFromLog then. It could instead do
updateFromLog at the end, but it's going to check needsUpdateFromLog
at the beginning anyway.

Note that the database writes were queued, so there is already a cidmap
that is used to remember changes that the current process has made.
So, omitting database writes can't change the behavior of the current
process.

Also note that thirdpartypopulatedimport uses recordcidkeyindb, which
reflects what it already did. That code path does not use the cidmap,
but does not need to query it either. It might be possible to make that
code path also only update the git-annex branch and not the db, but I
haven't checked.

Sponsored-by: Noam Kremen on Patreon
2023-05-30 17:05:28 -04:00
jgoerzen
f47e7abd57 Added a comment 2023-05-30 20:58:21 +00:00
Joey Hess
5070087a63
repair: Fix handling of git ref names on Windows
Sponsored-by: Kevin Mueller on Patreon
2023-05-30 16:09:13 -04:00
Joey Hess
aaeae746f0
comment and a neat idea 2023-05-30 15:42:34 -04:00
Joey Hess
5da7f703b0
comment 2023-05-30 14:30:39 -04:00
jgoerzen
e1fa970010 2023-05-30 12:23:28 +00:00
jgoerzen
4547a467b1 2023-05-30 00:37:10 +00:00
jgoerzen
da99a12f21 2023-05-30 00:35:54 +00:00
Mowgli
5fe8ae8f87 Added a comment: Use locales for that porpose 2023-05-29 22:42:13 +00:00
matthew.cieslak@100d765b497d71318a302445df55bbab4b78f4d5
8dfc5dc16e 2023-05-25 13:44:52 +00:00
Joey Hess
f1cdb79ca4
assist: honor gitignore
Sponsored-by: Graham Spencer on Patreon
2023-05-24 14:04:09 -04:00
nobodyinperson
0b9b85f009 2023-05-24 14:59:40 +00:00
Joey Hess
c64436518f
comment 2023-05-23 12:00:01 -04:00
Joey Hess
b46126cd87
comment 2023-05-23 11:45:17 -04:00
Mowgli
b7788c718b 2023-05-23 13:10:45 +00:00
yarikoptic
2616f7f0d3 Added a comment 2023-05-19 19:22:04 +00:00
Joey Hess
0f89d221bd
version: Avoid error message when entire output is not read
Sponsored-by: Dartmouth College's Datalad project
2023-05-19 15:00:57 -04:00
yarikoptic
b76a44511b Added a comment 2023-05-19 18:49:48 +00:00
yarikoptic
b22d49b7f1 Added a comment 2023-05-19 18:49:29 +00:00
yarikoptic
b8a03643e5 Added a comment 2023-05-19 18:47:49 +00:00
Joey Hess
c4ad9b1446
Fix bug in -z handling of trailing NUL in input
The obvious way to fix this would be to adapt lines to split on null.

However, it's actually nontrivial to rewrite lines. In particular it has a
weird implementation to avoid a space leak. See:
https://gitlab.haskell.org/ghc/ghc/-/issues/4334

Also, while that is a small amount of code, it's covered by a rather
complex copyright and I'd have to include that copyright in git-annex.

So, I opted to filter out the trailing empty string instead.

Sponsored-by: Dartmouth College's Datalad project
2023-05-19 14:34:02 -04:00
Joey Hess
0184421a4d
comment 2023-05-19 13:53:21 -04:00
yarikoptic
d73467ebf7 dropkey -z not working 2023-05-19 13:53:46 +00:00
Joey Hess
96c372ac85
document how to include= a path with a space in it
POSIX character classes allowed in globs was a surprise, but just
happened to fall out of the implementation in a way that seems
to behave correctly.

mdwn2man has to be tweaked to render the example properly.
The line I modified is the one that strips ikiwiki wikilinks out of the
man page.

Sponsored-by: Graham Spencer on Patreon
2023-05-15 16:02:06 -04:00
Joey Hess
0da0e2efcc
add git config debugging
(and process cwd debugging)

Sponsored-by: Dartmouth College's Datalad project
2023-05-15 15:35:29 -04:00
aurtzy
4581f11243 Added a comment 2023-05-14 02:52:38 +00:00
yarikoptic
7cffb65de6 original issue -- need more logging 2023-05-12 19:06:50 +00:00
jstritch
005c474a05 2023-05-08 13:52:43 +00:00
Joey Hess
b90c2156a6
forwarded git bug 2023-05-02 13:27:04 -04:00
Joey Hess
72fb1262a3
comment 2023-05-01 17:10:31 -04:00
Joey Hess
460992d2a1
comment 2023-05-01 17:08:44 -04:00
Joey Hess
703014d989
beat my head against this bug for a couple hours 2023-05-01 17:05:51 -04:00
Joey Hess
57c1b4f5e5
initremote: Avoid creating a remote that is not encrypted when gpg is broken
checksize was applied lazily, so the exception didn't happen until the
remote was set up.

Sponsored-by: k0ld on Patreon
2023-05-01 13:00:05 -04:00
Joey Hess
0bf983d3ab
fixed related issue 2023-05-01 12:07:20 -04:00
Joey Hess
aff37fc208
avoid annexFileMode special case
This makes annexFileMode be just an application of setAnnexPerm',
which avoids having 2 functions that do different versions of the same
thing.

Fixes some buggy behavior for some combinations of core.sharedRepository
and umask.

Sponsored-by: Jack Hill on Patreon
2023-04-27 15:58:37 -04:00
Joey Hess
67f8268b3f
Support core.sharedRepository=0xxx at long last
Sponsored-by: Brett Eisenberg on Patreon
2023-04-26 17:03:29 -04:00
Joey Hess
4358545a3e
note 2023-04-25 19:36:23 -04:00
Joey Hess
96cb6d2157
close and followup 2023-04-25 19:32:51 -04:00
Joey Hess
cd05cfc035
comment 2023-04-25 13:19:28 -04:00
Joey Hess
26953ad3a6
comment 2023-04-25 13:18:01 -04:00
BillyIII
38825e089d removed 2023-04-24 23:22:08 +00:00
BillyIII
c62ca36bf5 Added a comment 2023-04-24 23:18:48 +00:00
yarikoptic
5bc8052d9c Added a comment 2023-04-24 21:25:09 +00:00
Joey Hess
a127949e65
comment 2023-04-24 16:05:35 -04:00
yarikoptic
57ad9d8da4 Added a comment 2023-04-24 19:23:22 +00:00
Joey Hess
b002199366
comment 2023-04-24 11:53:14 -04:00
nobodyinperson
6b58846d93 2023-04-24 15:07:28 +00:00
aurtzy
51df5cb26e 2023-04-24 03:25:41 +00:00
aurtzy
c70677e31d 2023-04-24 03:16:12 +00:00
yarikoptic
589abdeb5c initial report on bad escaping 2023-04-22 05:06:01 +00:00
Joey Hess
3545c9f2c1
close 2023-04-21 12:34:20 -04:00
adina.wagner@2a4cac6443aada2bd2a329b8a33f4a7b87cc8eff
a32b0b8659 Added a comment 2023-04-21 07:08:35 +00:00
Joey Hess
e856ae0f35
idea 2023-04-20 14:21:22 -04:00
Joey Hess
2752360708
analysis and followup 2023-04-20 14:11:04 -04:00
DavidD
2de88e299f 2023-04-20 16:08:21 +00:00
DavidD
728a9ce995 2023-04-20 15:43:30 +00:00
DavidD
430bf010ad 2023-04-20 15:37:46 +00:00
Joey Hess
31e4b6dee1
catch chdir exception in --autostop
assistant --autostop: Avoid crashing when ~/.config/git-annex/autostart
lists a directory that it cannot chdir to.

Sponsored-by: k0ld on Patreon
2023-04-19 12:42:02 -04:00
Joey Hess
9155ed1072
configremote
New command, currently limited to changing autoenable= setting of a special remote.

It will probably never be used for more than that given the limitations on
it.

Sponsored-by: Brock Spratlen on Patreon
2023-04-18 15:30:49 -04:00
Joey Hess
8728695b9c
support enableremote of git repo changing eg autoenable=
enableremote: Support enableremote of a git remote (that was previously set
up with initremote) when additional parameters such as autoenable= are
passed.

The enableremote special case for regular git repos is intended to handle
ones that don't have a UUID probed, and the user wants git-annex to
re-probe. So, that special case is still needed. But, in that special
case, the user is not passing any extra parameters. So, when there are
parameters, instead run the special remote setup code. That requires there
to be a uuid known already, and it allows changing things like autoenable=

Remote.Git.enableRemote changed to be a no-op if a git remote with the name
already exists. Which it generally will in this case.

Sponsored-by: Jack Hill on Patreon
2023-04-18 14:00:24 -04:00
Joey Hess
3a402a907f
comment 2023-04-18 13:09:24 -04:00
nobodyinperson
b32ca4180d 2023-04-18 07:55:46 +00:00
mih
377679babc Added a comment: Confirm 2023-04-18 07:54:46 +00:00
Joey Hess
d727907795
comment 2023-04-17 13:48:23 -04:00
Joey Hess
2aba119161
already fixed 2023-04-17 13:35:23 -04:00
nobodyinperson
0393245935 Added a comment: Too old? 2023-04-17 01:43:36 +00:00
adpce
9f8c5a0606 git annex forget bug 2023-04-16 19:58:22 +00:00
mih
bef2b3f607 Initial report 2023-04-14 06:55:18 +00:00
Joey Hess
2a0a0fec8c
close ancient moreinfo bug 2023-04-12 17:18:05 -04:00
Joey Hess
98a3ba0ea5
restore old registerurl location tracking behavior
registerurl: When an url is claimed by a special remote other than the web,
update location tracking for that special remote.

registerurl's behavior was changed in commit
451171b7c1, apparently accidentially to not
update location tracking except for the web.

This makes registerurl followed by unregisterurl not be a no-op, when the
url happens to be claimed by a remote other than the web. It is a noop when
the url is unclaimed except by the web. I don't like the inconsistency,
and wish that registerurl and unregisterurl never updated location
tracking, which would be more in keeping with them being plumbing.

But there is the fact that it used to behave this way, and also it was
inconsistent that it updated location tracking for the web but not for
other remotes, unlike addurl. And there's an argument that the user might
not know what remote to expect to claim an url, so would be considerably in
the dark when using registerurl. (Although they have to know what content
gets downloaded, since they specify a key..)

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-04-05 17:06:44 -04:00
Joey Hess
26a094ac1a
hm 2023-04-05 16:36:18 -04:00
Joey Hess
eecd02fd3d
Merge branch 'master' of ssh://git-annex.branchable.com 2023-04-05 15:56:31 -04:00
Joey Hess
2b940f7725
registerurl, unregisterurl: Added --remote option
This serves two purposes. --remote=web bypasses other special remotes that
claim the url, same as addurl --raw. And, specifying some other remote
allows making sure that an url is claimed by the remote you expect,
which makes then using setpresentkey not be fragile.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-04-05 15:54:41 -04:00
yarikoptic
1751ddd759 Added a comment 2023-04-05 19:36:41 +00:00
Joey Hess
c39d72ac78
comments 2023-04-05 15:00:39 -04:00
jkniiv
247430a272 Added a comment 2023-04-05 09:42:12 +00:00
yarikoptic
25bdb45b72 Added a comment 2023-04-05 00:30:00 +00:00
yarikoptic
352a274f53 Added a comment 2023-04-04 20:15:59 +00:00
Joey Hess
d0e94b4302
fixed 2023-04-04 15:19:25 -04:00
Joey Hess
68a0491f83
comment 2023-04-04 14:43:33 -04:00
Joey Hess
4e64af0010
comment 2023-04-04 14:31:25 -04:00
Joey Hess
31ffb0f216
probably fixed but I didn't actually reproduce it 2023-04-04 14:25:55 -04:00
Joey Hess
c3eaecb244
comment 2023-04-04 13:34:32 -04:00
jkniiv
4a5b5bdd0d Added a comment: happens during sync too 2023-04-03 11:48:10 +00:00
gioele@678b7c03f524f2669b179b603f65352fcc16774e
dfb5826be2 2023-04-03 09:05:45 +00:00
gioele@678b7c03f524f2669b179b603f65352fcc16774e
f9d24e92a0 Added a comment 2023-04-01 11:09:49 +00:00
gioele@678b7c03f524f2669b179b603f65352fcc16774e
170c5edb44 Added a comment 2023-04-01 11:06:26 +00:00
wolf480@8ad1ccdd08efc303a88f7e88c4e629be6637a44e
71e0ec2901 Added a comment 2023-04-01 07:23:18 +00:00
yarikoptic
45eaf8e484 reporting an annoying registerurl issue not registering a URL 2023-03-31 22:36:02 +00:00
Joey Hess
88ea10f606
Merge branch 'master' of ssh://git-annex.branchable.com 2023-03-31 15:16:28 -04:00
Joey Hess
cc36c8516a
Sped up sqlite inserts 2x when built with persistent 2.14.5.0
https://github.com/yesodweb/persistent/issues/1457

Sponsored-by: Dartmouth College's DANDI project
2023-03-31 14:38:25 -04:00
zhongruoyu@80ae9772857666624009364c29f07c70beed46ac
8119f22344 Added a comment 2023-03-31 18:32:29 +00:00
Joey Hess
a858099272
clarify 2023-03-31 14:18:50 -04:00
Joey Hess
8047df62cc
fix link 2023-03-31 14:18:36 -04:00
Joey Hess
f2914ab6a0
idea 2023-03-31 13:11:35 -04:00
Joey Hess
2b40fa51d3
git-annex.cabal: Prevent building with unix-compat 0.7
Which removed System.PosixCompat.User.
See https://github.com/haskell-pkg-janitors/unix-compat/issues/3

Sponsored-by: Noam Kremen on Patreon
2023-03-31 12:52:23 -04:00
wolf480@8ad1ccdd08efc303a88f7e88c4e629be6637a44e
eb51b385a0 Added a comment 2023-03-30 17:33:58 +00:00
wolf480@8ad1ccdd08efc303a88f7e88c4e629be6637a44e
43878157d3 Added a comment 2023-03-30 17:33:10 +00:00
zhongruoyu@80ae9772857666624009364c29f07c70beed46ac
51643bba3e 2023-03-29 22:44:08 +00:00
sawmke
30d7f9ad78 2023-03-29 11:47:13 +00:00
Joey Hess
be65476fd4
close 2023-03-28 17:01:25 -04:00
Joey Hess
18d326cb6f
external protocol VERSION 2
Support VERSION 2 in the external special remote protocol, which is
identical to VERSION 1, but avoids external remote programs neededing to
work around the above bug. External remote program that support
exporttree=yes are recommended to be updated to send VERSION 2.

Sponsored-by: Kevin Mueller on Patreon
2023-03-28 17:00:08 -04:00
Joey Hess
82c65b7951
comment 2023-03-28 16:08:46 -04:00
Joey Hess
e987725282
fixed 2023-03-28 15:26:26 -04:00
Joey Hess
c1d698f1f2
comment 2023-03-28 14:31:00 -04:00
Joey Hess
75ac65435a
comment 2023-03-28 14:26:19 -04:00
jonahmail1@a6afaf85da848e3a3cf7fcec09326a982d4c1819
63c690ddc0 2023-03-28 17:27:46 +00:00
jonahmail1@a6afaf85da848e3a3cf7fcec09326a982d4c1819
668785f182 2023-03-28 17:27:33 +00:00
Joey Hess
4461223c8f
comment 2023-03-28 13:13:34 -04:00
Joey Hess
a5709dcc22
Copy with a reflink when exporting a tree to a directory special remote
Remote.Directory makes a temp file, then calls this, and since the temp
file exists, it prevented probing if CoW works.

Note that deleting the empty file does mean there's a small window for a
race. If another process is also exporting to the remote, that could let it
make the same temp file. However, the temp filename actually has the
processes's pid in it, which avoids that being a problem.

This may have been a reversion caused by commits around
63d508e885, but I haven't gone back and
tested to be sure. The directory special remote had supposedly supported
CoW for this going back to about half a year before that.

Sponsored-by: Graham Spencer on Patreon
2023-03-28 13:09:14 -04:00
Joey Hess
24ae4b291c
addurl, importfeed: Fix failure when annex.securehashesonly is set
The temporary URL key used for the download, before the real key is
generated, was blocked by annex.securehashesonly.

Fixed by passing the Backend that will be used for the final key into
runTransfer. When a Backend is provided, have preCheckSecureHashes
check that, rather than the key being transferred.

Sponsored-by: unqueued on Patreon
2023-03-27 15:10:46 -04:00
Joey Hess
f4a390b2a6
promote comment to bug 2023-03-27 14:10:32 -04:00
Joey Hess
c1d0f90081
verified fixed 2023-03-27 13:58:16 -04:00
Joey Hess
5fdc074fa7
Merge branch 'master' of ssh://git-annex.branchable.com 2023-03-27 13:38:13 -04:00
Joey Hess
3badde71ae
comment 2023-03-27 12:36:21 -04:00
jonas
b9965126a1 2023-03-26 20:04:22 +00:00
wolf480@8ad1ccdd08efc303a88f7e88c4e629be6637a44e
af24798abd 2023-03-26 19:00:42 +00:00
wolf480@8ad1ccdd08efc303a88f7e88c4e629be6637a44e
140edd65ac 2023-03-26 18:39:20 +00:00
gioele@678b7c03f524f2669b179b603f65352fcc16774e
4d198a6665 Added a comment 2023-03-25 08:47:01 +00:00
gioele@678b7c03f524f2669b179b603f65352fcc16774e
70a9e995b8 Added a comment 2023-03-24 08:13:00 +00:00
Joey Hess
038a2600f4
Avoid leaving repo with a detached head when there is a failure checking out an updated adjusted branch
I don't know of scenarios where that can happen (besides the bug
fixed by the parent commit), but there probably are some.

Sponsored-by: Boyd Stephen Smith Jr. on Patreon
2023-03-23 16:36:43 -04:00
Joey Hess
cb4d9f7b1f
run restagePointerFiles in adjustedBranchRefreshFull
Avoid failure to update adjusted branch --unlock-present after git-annex
drop when annex.adjustedbranchrefresh=1

At higher values, it did flush the queue, which ran restagePointerFiles.
But at 1, adjustedBranchRefreshFull gets added to the queue, and while
restagePointerFiles is also in the queue, it runs after that.

Sponsored-by: Brock Spratlen on Patreon
2023-03-23 16:25:45 -04:00
Joey Hess
d580ea2120
add comment 2023-03-23 15:29:53 -04:00
Joey Hess
3c5f4b89ca
update 2023-03-23 15:29:42 -04:00
Joey Hess
5b4ceda32e
comment 2023-03-23 15:28:27 -04:00
Joey Hess
ec14d95999
comment 2023-03-23 15:27:02 -04:00
Joey Hess
c77f2731e9
Merge branch 'master' of ssh://git-annex.branchable.com 2023-03-23 15:22:13 -04:00
Joey Hess
a0badc5069
sync: Fix parsing of gcrypt::rsync:// urls that use a relative path
Such an url is not valid; parseURI will fail on it. But git-annex doesn't
actually need to parse the url, because all it needs to do to support
syncing with it is know that it's not a local path, and use git pull and
push.

(Note that there is no good reason for the user to use such an url. An
absolute url is valid and I patched git-remote-gcrypt to support them
years ago. Still, users gonna do anything that tools allow, and
git-remote-gcrypt still supports them.)

Sponsored-by: Jack Hill on Patreon
2023-03-23 15:20:00 -04:00
Joey Hess
0e18bf029e
comment 2023-03-23 14:21:36 -04:00
john
2a0a209908 Added a comment 2023-03-23 11:37:53 +00:00
gioele@678b7c03f524f2669b179b603f65352fcc16774e
4a2dfc4893 2023-03-22 10:06:26 +00:00
hurlebouc
a40a36495f Added a comment 2023-03-22 05:47:16 +00:00
tastabirta@e5349d873c7906025d7db2cc5b86e2529798b640
806c5dc937 2023-03-21 21:28:21 +00:00
Yaroslav Halchenko
0ae5ff797f
Typo: sansative -> sensitive 2023-03-17 15:14:50 -04:00
Joey Hess
1f124103dc
reproduced 2023-03-14 13:36:40 -04:00
Joey Hess
c76d44d7e1
comment 2023-03-13 15:40:18 -04:00
Joey Hess
f1b678face
copy --from --to location tracking update
copy: When --from and --to are combined and the content is already present
on the destination remote, update location tracking as necessary.

Sponsored-by: Dartmouth College's DANDI project
2023-03-13 14:51:09 -04:00
Joey Hess
38e9ea8497
one-way escaping of newlines in uuid.log
A repository can have a newline in its description due to being in a
directory containing a newline, or due to git-annex describe being
passed a string with a newline in it for some reason. Putting that
newline in uuid.log breaks its format.

So, escape the newline when it enters uuid.log, to \n

This is a one-way escaping, it is not converted back to a newline
when reading the log. If it were, commands like git-annex info and
whereis would display a multi-line description, which could be confusing
to read.

And, implementing roundtripping would necessarily cause problems if an
old version of git-annex were used to set a description that contained
whatever special character is used to escape the \n. Eg, a \ or if
it used the ! prefix before base64 data that is used in some other logs,
the ! character. Then the description set by the old git-annex would not
roundtrip.

There just doesn't seem to be any benefit of roundtripping newlines through,
so why bother? And, git often displays \n for newline when a filename
contains a newline, so git-annex doing it in this case seems sorta ok
by analogy to git.

(Some other git-annex logs can also have newlines put into them if the
user really wants to break git-annex. For example:
git-annex config annex.largefiles "foo
bar"
The full list is probably config.log, remote.log, group.log,
preferred-content.log, required-content.log,
group-preferred-content.log, schedule.log. Probably there is no
good reason to use a newline in any of these, and the breakage is
probably limited to the bad data the user put in not coming back out.
And users can write any garbage to log files themselves manually in any
case. So, I am not going to address all of those at this time. If a
problem such as this one with the newline in the repository path comes
up, it can be dealt with on a case by case basis.)

Sponsored-by: Dartmouth College's Datalad project
2023-03-13 14:19:32 -04:00
Joey Hess
0784c3e72a
tag datalad
It links to a datalad issue, so I suppose this is right?
2023-03-13 13:51:10 -04:00
Joey Hess
a6bebe3c0f
make hashFile support paths with newlines
git hash-object --stdin-paths is a newline protocol so it cannot
support them. It would help to not use absPath, when the problem
is that the repository itself is in a path with a newline. But,
there's a reason it used absPath, which is that
git hash-object --stdin-paths actually chdirs to the top of the
repository on startup! That is not documented, and I think is a bug
in git.

I considered making the path relative to the top of the repo, but
then what if this is a git bug and gets fixed? git-annex would break
horribly.

So instead, keep the absPath, but when the path contains a newline,
fall back to running git hash-object once per file, which avoids
the problem with newlines and --stdin-paths. It will be slower,
but this is an edge case. (Similar slow code paths are already used
elsewhere when dealing with filenames with newlines and other parts
of git that use line-based protocols.)

Sponsored-by: Dartmouth College's Datalad project
2023-03-13 13:43:40 -04:00
Joey Hess
f1672fe171
fixed 2023-03-10 12:13:30 -04:00
Joey Hess
89c68f9a60
close 2023-03-10 10:33:20 -04:00
Joey Hess
91129f508f
comment 2023-03-08 12:18:55 -04:00
hurlebouc
9f280d506d Added a comment 2023-03-08 15:16:29 +00:00
hurlebouc
7ca1bd2c70 Added a comment 2023-03-08 15:11:26 +00:00
yarikoptic
3babe84e46 initial report on newlines fiasco 2023-03-08 14:41:56 +00:00
yarikoptic
68632e6f22 initial report on deficiency of copy --from --to 2023-03-08 04:16:15 +00:00
yarikoptic
2aa54cff2a FTBFS bug report 2023-03-07 21:17:04 +00:00
Joey Hess
f1f2588b72
open bug 2023-03-06 13:05:02 -04:00
Joey Hess
175091da90
comment 2023-03-06 12:27:39 -04:00
Joey Hess
efd5bfa72d
re-close with comment 2023-03-06 12:25:39 -04:00
jkniiv
f9deee36c7 Added a comment 2023-03-05 20:18:02 +00:00
jkniiv
04b70c093d retitle bug report now that it's reopened 2023-03-04 19:36:13 +00:00
jkniiv
19c09af793 reopen bug, 2nd try -- now with backslashes :) 2023-03-04 19:33:13 +00:00