Commit graph

11814 commits

Author SHA1 Message Date
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
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