Commit graph

5073 commits

Author SHA1 Message Date
yarikoptic
fbecf650ae Added a comment 2025-09-27 17:27:51 +00:00
Joey Hess
b0cd91c707
update 2025-09-24 13:04:51 -04:00
Joey Hess
c688852cd1
comments 2025-09-24 12:54:20 -04:00
Arnie97
9cdf151525 Added a comment: the X prefix conflicts with the eXternal backend namespace 2025-09-24 12:05:05 +00:00
Joey Hess
92c4a34414
annex.assistant.allowunlocked
Sponsored-by: the NIH-funded NICEMAN (ReproNim TR&D3) project
2025-09-16 14:58:26 -04:00
Joey Hess
f8b360f59d
tag repronim based on https://git-annex.branchable.com/forum/Is_there_a_way_to_have_assistant_add_files_locked__63__/#comment-096bedb2d22d5aae6a51a53179372d4f 2025-09-16 13:45:36 -04:00
Joey Hess
7682106d55
close 2025-09-16 13:27:25 -04:00
Joey Hess
cbb4a2bf86
improve error message when SETCREDS overwrites git-annex config
That is not allowed, so it's not a bug in git-annex when it happens and
instead tell the special remote developer how it's messed up.

Note that currently only Remote.External can overwrite the parsed remote
config with a PassedThrough value. PassedThrough values are otherwise
only generated for configs that are not parsed by the remote config
parser.

Sponsored-by: Joshua Antonishen
2025-09-16 13:22:14 -04:00
Joey Hess
1e847fd1af
boot libs 2025-09-15 19:59:07 -04:00
Joey Hess
c87b1738fb
require_OsPath branch 2025-09-15 16:37:53 -04:00
Joey Hess
91dbcf0b56
fix p2phttp worker thread leak with deleted repository LOCKCONTENT
p2phttp: Fix a hang that could occur when used with --directory, and a
repository in the repository got removed.

It could leak up to -J number of worker threads, but this only affected a
client trying to access the deleted repository.

It may be that this could also affect a non-deleted repository, and also
leak a worker thread, if invalid p2p protocol is sent.
2025-09-15 12:03:44 -04:00
Joey Hess
4fd71c125e
Improve performance when used with a local git remote that has a large working tree
git write-tree was being run once per file git-annex acts on when eg,
getting files, which is slow when the remote repository has a large
tree.

onLocal calls quiesce after each action, and quiesce closes the keys db
since [[!commit ba7ecbc6a9c]]. Which has a relevant comment about
performance. I have not addressed that, the keys db still gets closed and
reopened after each file.

Turns out that, since git write-tree was run by each call to
reconcileStaged, the .git/annex/keysdb.cache value was never the
same as the git index's inode. Because git write-tree updates the index's
mtime even when no changes have been made.

And so, when the database got closed and reopened, reconcileStaged would
see a changed index, and run git write-tree again. Over and over.

I considered writing the index's new inodecache after write-tree to the
keysdb.cache, but that would be vulnerable to a race, if the index was
changed just after write-tree.

The fix was to stop using keysb.cache at all. When the database is closed
and later reopened by the same process, avoid re-doing reconcileStaged.

Now that .git/annex/keysdb.cache is no longer used. It could be removed,
but the time overhead of removing it would be more than the space overhead
of keeping it. Defferred removal to the v11 upgrade.

Sponsored-by: unqueued
2025-09-10 12:08:11 -04:00
yarikoptic
f5d2707b97 Added a comment 2025-09-09 12:47:26 +00:00
waldi5001
f82b71e725 Added a comment 2025-09-08 08:47:56 +00:00
Joey Hess
fe67756197
turn on OsPath build flag by default
It was already default in stack builds, now it is default in cabal
builds as well.

Add build warnings when git-annex is built without the OsPath build flag.

git-annex version: Report on whether it was built with the OsPath build flag.

Having the flag on by default was always the plan, and this is a good time to
make the change. A bit of added urgency comes from the close-on-exec leak
issue. Fixing that is going to need reimplentation of things like openFile.
Needing to reimplenment it twice is not very appealing, especially since the
FilePath version of it has an implementation that cannot be easily copied and
tweaked. If OsPath is on by default, I can start with only implementing
openFile for it, and fix the bug in that build. And perhaps avoid doing the
extra work that will later get thrown away when this transition finishes.

Note that at this point, Debian still needs to package file-io. Hopefully, they
will package it, rather than turning off the OsPath build flag.
2025-09-05 12:44:46 -04:00
Joey Hess
146d224c63
drop: --fast support when dropping from a remote
This is the same as --not --in $remote, but easier to type. And the
documentation of --fast helps also document that drop can do extra work
when used without --fast.

Sponsored-by: Nicholas Golder-Manning
2025-08-29 12:45:33 -04:00
Joey Hess
3788c48b32
todo 2025-08-29 11:13:29 -04:00
stv0g
4489ea9bc2 Added a comment: Feedback on encryptonlycreds=yes 2025-08-24 11:20:24 +00:00
Joey Hess
afff2bb47d
onlyencryptcreds=yes
initremote: When onlyencryptcreds=yes is used along with embedcreds=yes,
and encryption is enabled, only encrypt the embedded creds, without
encrypting the content of the special remote.

Useful for exporttree=yes/importtree=yes remotes.

Sponsored-by: Joshua Antonishen
2025-08-20 15:14:01 -04:00
Joey Hess
dbb207890d
comment 2025-08-20 14:16:29 -04:00
Joey Hess
16463f8f02
Merge branch 'master' of ssh://git-annex.branchable.com 2025-08-20 12:31:35 -04:00
stv0g
5d7a7e2562 Added a comment: encryption=credsonly 2025-08-18 17:07:40 +00:00
Joey Hess
ce8b32de07
update 2025-08-15 11:54:42 -04:00
Joey Hess
0924a45cc4
info: Added --show option
To pick which parts of the info to calculate and display.

Sponsored-by: Dartmouth College's DANDI project
2025-08-13 16:49:21 -04:00
Joey Hess
bcc86c92e2
comment 2025-08-13 16:04:46 -04:00
yarikoptic
ee7e1450b1 wishlist of faster/specific info for a remote 2025-08-13 17:49:20 +00:00
Joey Hess
786fa037c8
comment 2025-08-01 13:57:50 -04:00
Joey Hess
3b6b3416d9
add example git-annex-p2p-unix-sockets program and end-user docs 2025-08-01 13:44:00 -04:00
Joey Hess
59bcfc838e
update design doc with changes from genericp2p branch
That branch is basically ready to merge, but needs more testing in a
chicken and egg situation.
2025-07-31 15:20:28 -04:00
Joey Hess
05c016084d
design for p2p socket transport 2025-07-29 14:00:21 -04:00
nobodyinperson
5a5332faab Added a comment: Workaround for default wanted content? 2025-07-21 18:12:59 +00:00
Joey Hess
d364e434c8
Add --url option and url= preferred content expression
To match content that is recorded as present in an url.

Note that, this cannot ask remotes to provide an url using whereisKey, like
whereis does. Because preferred content expressions need to match the same
from multiple perspectives, and the remote would not always be available.

That's why the docs say "recorded as present", but still this may be
surprising to some who see an url in whereis output and are surprised they
cannot match on it.

The use of getDownloader is to strip the downloader prefix from urls like
"yt:". Note that, when OtherDownloader is used, this strips the ":" prefix,
and allows matching on those urls too.
2025-07-21 12:13:40 -04:00
Joey Hess
ac25e5a6e7
todo 2025-07-19 16:45:51 -04:00
Joey Hess
70da89d5b8
todo 2025-07-18 09:49:21 -04:00
Spencer
954ff63d86 Added a comment: We'll call this solved... 2025-07-08 07:01:21 +00:00
Joey Hess
492c484a82
p2phttp: Added --socket option
Used protectedOutput to set up a umask that makes the socket only
accessible by the current user.

Authentication is still needed when using this option unless it is combined
with --wideopen. It was just simpler to keep authentication separate from
this.
2025-07-07 16:40:02 -04:00
Joey Hess
0ad937f230
Merge branch 'master' of ssh://git-annex.branchable.com 2025-07-07 15:23:59 -04:00
Joey Hess
bbaaab40c1
comment 2025-07-07 15:23:53 -04:00
Joey Hess
2de27751d6
design 2025-07-07 14:26:02 -04:00
Joey Hess
78e9d62c65
correction 2025-07-07 13:22:08 -04:00
matrss
c4e10593e3 Added a comment 2025-07-03 11:07:06 +00:00
Joey Hess
bb7c1b0cd0
response 2025-06-24 11:11:16 -04:00
Spencer
de905c7f7b FR for gx-import 2025-06-20 21:31:23 +00:00
Spencer
ba561159e1 Added a comment: A (Mildly) Compelling Reason 2025-06-19 01:34:17 +00:00
Spencer
c8324ab8e1 Added a comment: Solutions 2025-06-16 20:33:03 +00:00
nobodyinperson
f361e0ef4b Added a comment: Now the current branch is pushed first! 🥳 2025-06-07 09:39:28 +00:00
Joey Hess
fb9ebd12ea
tag as INM7 because it involves git-annex integration with forgejo 2025-06-04 12:31:22 -04:00
Joey Hess
9f4e956346
sync: push current branch first
sync: Push the current branch first, rather than a synced branch, to better
support git forges (gitlab, gitea, forgejo, etc.) which use push-to-create
with the first pushed branch becoming the default branch.

With considerable complication to filter out warning message about
receive.denyCurrentBranch when pushing to a non-bare repository. Localization
may break it in the future, but it seems like the best way to handle this. See
my comments for the gory details.
2025-06-04 12:06:00 -04:00
Joey Hess
48e7497f83
comment 2025-06-04 10:00:10 -04:00
Joey Hess
73060eea51
annex.fastcopy
Added annex.fastcopy and remote.name.annex-fastcopy config setting. When
set, this allows the copy_file_range syscall to be used, which can eg allow
for server-side copies on NFS. (For fastest copying, also disable
annex.verify or remote.name.annex-verify.)

This is a simple implementation, that does not handle resuming as well as
it possibly could.

It can be used with both local git remotes (including on NFS), and
directory special remotes. Other types of remotes could in theory also
support it, so I've left the config documented as a general thing.
2025-06-03 15:01:38 -04:00