Commit graph

34469 commits

Author SHA1 Message Date
Joey Hess
2dfffa0621
bugfix
When pushing branch foo, we don't want to delete other tracking
branches. In particular, a full push needs all the tracking branches.
2024-05-14 16:17:27 -04:00
Joey Hess
169e673ad4
result of some testing 2024-05-14 16:01:24 -04:00
Joey Hess
7dd2a67c41
fix names of new git configs 2024-05-14 15:33:47 -04:00
Joey Hess
0722c504c5
update docs for git-remote-annex 2024-05-14 15:31:16 -04:00
Joey Hess
23c4125ed4
mention other commands shipped with git-annex in SEE ALSO in man page 2024-05-14 15:23:45 -04:00
Joey Hess
24af51e66d
git-annex unused --from remote skips its git-remote-annex keys
This turns out to only be necessary is edge cases. Most of the
time, git-annex unused --from remote doesn't see git-remote-annex keys
at all, because it does not record a location log for them.

On the other hand, git-annex unused does find them, since it does not
rely on the location log. And that's good because they're a local cache
that the user should be able to drop.

If, however, the user ran git-annex unused and then git-annex move
--unused --to remote, the keys would have a location log for that
remote. Then git-annex unused --from remote would see them, and would
consider them unused. Even when they are present on the special remote
they belong to. And that risks losing data if they drop the keys from
the special remote, but didn't expect it would delete git branches they
had pushed to it.

So, make git-annex unused --from skip git-remote-annex keys whose uuid
is the same as the remote.
2024-05-14 15:17:40 -04:00
Joey Hess
0bf72ef103
max-git-bundles config for git-remote-annex 2024-05-14 14:23:40 -04:00
Joey Hess
8ad768fdba
todo 2024-05-14 13:58:35 -04:00
Joey Hess
6f1039900d
prevent using git-remote-annex with unsuitable special remote configs
I hope to support importtree=yes eventually, but it does not currently
work.

Added remote.<name>.allow-encrypted-gitrepo that needs to be set to
allow using it with encrypted git repos.

Note that even encryption=pubkey uses a cipher stored in the git repo
to encrypt the keys stored in the remote. While it would be possible to
not encrypt the GITBUNDLE and GITMANIFEST keys, and then allow using
encryption=pubkey, it doesn't currently work, and that would be a
complication that I doubt is worth it.
2024-05-14 13:52:20 -04:00
Joey Hess
e154c6da92
bug report (copied from email) 2024-05-13 17:11:34 -04:00
Joey Hess
8bf6dab615
update 2024-05-13 14:42:25 -04:00
Joey Hess
ddf05c271b
fix cloning from an annex:: remote with exporttree=yes
Updating the remote list needs the config to be written to the git-annex
branch, which was not done for good reasons. While it would be possible
to instead use Remote.List.remoteGen without writing to the branch, I
already have a plan to discard git-annex branch writes made by
git-remote-annex, so the simplest fix is to write the config to the
branch.

Sponsored-by: k0ld on Patreon
2024-05-13 14:35:17 -04:00
Joey Hess
552b000ef1
update 2024-05-13 14:30:18 -04:00
Joey Hess
34eae54ff9
git-remote-annex support exporttree=yes remotes
Put the annex objects in .git/annex/objects/ inside the export remote.
This way, when importing from the remote, they will be filtered out.

Note that, when importtree=yes, content identifiers are used, and this
means that pushing to a remote updates the git-annex branch. Urk.
Will need to try to prevent that later, but I already had a todo about
that for other reasons.

Untested!

Sponsored-By: Brock Spratlen on Patreon
2024-05-13 11:48:00 -04:00
Joey Hess
3f848564ac
refuse to fetch from a remote that has no manifest
Otherwise, it can be confusing to clone from a wrong url, since it fails
to download a manifest and so appears as if the remote exists but is empty.

Sponsored-by: Jack Hill on Patreon
2024-05-13 09:47:21 -04:00
Joey Hess
97b309b56e
extend manifest with keys to be deleted
This will eventually be used to recover from an interrupted fullPush
and drop the old bundle keys it was unable to delete.

Sponsored-by: Luke T. Shumaker on Patreon
2024-05-13 09:09:33 -04:00
Joey Hess
dfb09ad1ad
preparing to merge git-remote-annex
Update its todo with remaining items.

Add changelog entry.

Simplified internals document to no longer be notes to myself, but
target users who want to understand how the data is stored
and might want to extract these repos manually.

Sponsored-by: Kevin Mueller on Patreon
2024-05-10 15:06:15 -04:00
Joey Hess
ff5193c6ad
Merge branch 'master' into git-remote-annex 2024-05-10 14:20:36 -04:00
Joey Hess
947cf1c345
back to annex:: for git-remote-annex url
Oh, turns out git needs two colons to use a gitremote-helper. Ok.
2024-05-07 14:37:29 -04:00
Joey Hess
c7731cdbd9
add Backend.GitRemoteAnnex
Making GITBUNDLE be in the backend list allows those keys to be
hashed to verify, both when git-remote-annex downloads them, and by other
transfers and by git fsck.

GITMANIFEST is not in the backend list, because those keys will never be
stored in .git/annex/objects and can't be verified in any case.

This does mean that git-annex version will include GITBUNDLE in the list
of backends.

Also documented these in backends.mdwn

Sponsored-by: Kevin Mueller on Patreon
2024-05-07 13:54:08 -04:00
Joey Hess
483887591d
working toward git-remote-annex using a special remote
Not quite there yet.

Also, changed the format of GITBUNDLE keys to use only one '-'
after the UUID. A sha256 does not contain that character, so can just
split at the last one.

Amusingly, the sha256 will probably not actually be verified. A git
bundle contains its own checksums that git uses to verify it. And if
someone wanted to replace the content of a GITBUNDLE object, they
could just edit the manifest to use a new one whose sha256 does verify.

Sponsored-by: Nicholas Golder-Manning
2024-05-06 16:28:04 -04:00
Joey Hess
f4ba6e0c1e
add annex: url parser
Changed the format of the url to use annex: rather than annex::

The reason is that in the future, might want to support an url that
includes an uriAuthority part, eg:

annex://foo@example.com:42/358ff77e-0bc3-11ef-bc49-872e6695c0e3?type=directory&encryption=none&directory=/mnt/foo/"

To parse that foo@example.com:42 as an uriAuthority it needs to start with
annex: rather than annex::

That would also need something to be done with uriAuthority, and also
the uriPath (the UUID) is prefixed with "/" in that example. So the
current parser won't handle that example currently. But this leaves the
possibility for expansion.

Sponsored-by: Joshua Antonishen on Patreon
2024-05-06 14:50:41 -04:00
Joey Hess
306ea42447
improve git-remote-annex docs
renamed the git config to something shorter too
2024-05-06 13:06:22 -04:00
Joey Hess
0be9f7a2c6
add UUID to GITBUNDLE
The UUID is included in the GITMANIFEST in order to allow a single
key/value store to be used to store several special remotes, without any
namespacing. In that situation though, if the same ref is pushed to two
special remotes, it will result in git bundles with the same content.

Which is ok, until a re-push happens to one of the special remote.
At that point, the old git bundle will be deleted. That will prevent
fetching it from the other special remote, where the re-push has not
happened.

Adding the UUID avoids this problem.
2024-05-06 12:51:44 -04:00
Joey Hess
a8cef2bf85
added man page for git-remote-annex
And document remote.<name>.git-remote-annex-max-bundles which will
configure it.

datalad-annex uses a similar url format, but with some enhancements.
See https://github.com/datalad/datalad-next/blob/main/datalad_next/gitremotes/datalad_annex.py

I added the UUID to the URL, because it is needed in order to pick out which
manifest file to use. The design allows for a single key/value store to have
several special remotes all stored in it, and so the manifest includes
the UUID in its name.

While datalad-annex allows datalad-annex::<url>?, and allows referencing
peices of the url in the parameters, needing the UUID prevents
git-remote-annex from supporting that syntax. And anyway, it is a
complication and I want to keep things simple for now.

Sponsored-by: unqueued on Patreon
2024-05-06 12:48:04 -04:00
Joey Hess
90b389369f
fix name of gitremote-helpers
The git man page has that name.
2024-05-06 12:07:05 -04:00
Joey Hess
4007d7234b
update 2024-05-06 11:36:43 -04:00
Joey Hess
5f61667f27
note on cycles 2024-05-02 12:22:04 -04:00
Joey Hess
4c538b0bb9
question 2024-05-02 11:15:35 -04:00
Joey Hess
883328b615
Merge branch 'master' of ssh://git-annex.branchable.com 2024-05-02 11:11:19 -04:00
Joey Hess
008ffd5cb5
update with presigned url idea
Sponsored-by: Dartmouth College's OpenNeuro project
2024-05-02 11:10:23 -04:00
NewUser
54d3cc6ed6 2024-05-02 14:32:26 +00:00
NewUser
7e3b48a388 2024-05-02 14:31:22 +00:00
lell
13b21662c8 2024-05-02 09:06:21 +00:00
Yaroslav Halchenko
9c2ab31549
Fix compatable typo (yet to add to codespell)
=== Do not change lines below ===
{
 "chain": [],
 "cmd": "git-sedi compatable compatible",
 "exit": 0,
 "extra_inputs": [],
 "inputs": [],
 "outputs": [],
 "pwd": "."
}
^^^ Do not change lines above ^^^
2024-05-01 15:46:25 -04:00
Yaroslav Halchenko
aa9f9333ea
one spotted visually typo 2024-05-01 15:46:18 -04:00
Joey Hess
1cbf89f48f
Merge branch 'master' of ssh://git-annex.branchable.com 2024-05-01 15:27:48 -04:00
Joey Hess
cbaf2172ab
started on a design for P2P protocol over HTTP
Added to git-annex_proxies todo because this is something OpenNeuro
would need in order to use the git-annex proxy.

Sponsored-by: Dartmouth College's OpenNeuro project
2024-05-01 15:26:51 -04:00
yarikoptic
f70ae767dc question about assessing size of keys in tagged commits 2024-05-01 19:06:56 +00:00
Joey Hess
d28adebd6b
number list 2024-05-01 12:19:12 -04:00
Joey Hess
0d0c891ff9
add headers for tocs 2024-05-01 12:18:14 -04:00
Joey Hess
4cd2c980d2
toc 2024-05-01 12:14:59 -04:00
Joey Hess
901e02ccc3
design work on proxies for exporttree=yes
Sponsored-by: Dartmouth College's OpenNeuro project
2024-05-01 12:07:57 -04:00
Joey Hess
e7333aa505
fix link 2024-05-01 11:08:57 -04:00
Joey Hess
9cdbcedc37
additional design work on proxies
Sponsored-by: Dartmouth College's OpenNeuro project
2024-05-01 11:08:10 -04:00
Joey Hess
a612fe7299
add todo linking to two design docs and some related todos
Tagging with projects/openneuro as Christopher Markiewicz has oked
them funding at least the initial design work on this.
2024-05-01 11:04:20 -04:00
Joey Hess
5b36e6b4fb
comments 2024-04-30 16:08:46 -04:00
Joey Hess
fa0bcba86e
add news item for git-annex 10.20240430 2024-04-30 15:27:37 -04:00
Joey Hess
d4ed1d9977
comment 2024-04-30 15:20:25 -04:00
Joey Hess
f3cca8a9f8
applied patch 2024-04-30 15:17:38 -04:00
Joey Hess
1f37d0b00d
promote comment to todo 2024-04-30 15:13:59 -04:00
Joey Hess
da712198d8
close 2024-04-30 14:48:25 -04:00
Joey Hess
46aae325af
Merge branch 'master' of ssh://git-annex.branchable.com 2024-04-30 14:44:59 -04:00
Joey Hess
fc37243ffe
convert git-remote-annex to not include old pushed refs in new bundle
Rather than requiring the last listed bundle in the manifest include all
refs that are in the remote, build up refs from each bundle listed in
the manifest.

This fixes a bug where pushing first a new branch foo from one clone,
and then pushing a new branch bar from another clone, caused the second
push to lose branch foo. Now the second push will add a new bundle, but
the foo ref in the bundle from the first push will still be used.

Pushing a deletion of a ref now has to delete all bundles and push a new
bundle with only the remaining refs in it.

In a "list for-push", it now has to unbundle all bundles, in order for a
deletion repush to have available all objects. (And a non-deletion push
can also rely on refs/namespaces/mine/ being up-to-date.)

It would have been possible to fix the bug by only making it do that
unbundling in "list for-push", without changing what's stored in the
bundles. But I think I prefer to populate the bundles this way. For one
thing, deleting a pushed ref now really deletes all data relating to it,
rather than leaving it present in old bundles. For another, it's easier
to explain since there is no special case for the last bundle. And, it
will often result in smaller bundles.

Note that further efficiency gains are possible with respect to what
objects are included in an incremental bundle. Two XXX comments
document how to reduce excess objects. It didn't seem worth implementing
those optimisations in this proof of concept code.

Sponsored-by: Brock Spratlen on Patreon
2024-04-30 14:30:09 -04:00
rshalaev
77065b8569 Added a comment: How to find last available version of a file? 2024-04-29 14:07:40 +00:00
yarikoptic
3302390894 Added a comment 2024-04-29 13:13:48 +00:00
nobodyinperson
2fcfabe499 Added a comment: annex.maxextensionlength and annex.maxextensions 2024-04-27 19:16:29 +00:00
nobodyinperson
6daa338e0c Initial report 2024-04-27 14:20:26 +00:00
Joey Hess
8b56d6b283
fix conflicting push situation
In a situation where there are two repos that are diverged and each pushes
in turn to git-remote-annex, the first to push updates it. Then the second
push fails because it is not a fast-forward. The problem is, before git
push fails with "non-fast-forward", it actually calls git-remote-annex
with push.

So, to the user it appears as if the push failed, but it actually reached
the remote, and overwrote the other push!

The only solution to this seems to be for git-remote-annex push to notice
when a non-force-push would overwrite a ref stored in the remote, and
refuse to push that ref, returning an error to git. This seems strange,
why would git make remote helpers implement that when it later checks the
same thing itself?

With this fix, it's still possible for a race to overwrite a change to
the MANIFEST and lose work that was pushed from the other repo. But that
needs two pushes to be running at the same time. From the user's
perspective, that situation is the same as if one repo pushed new work,
then the other repo did a git push --force, overwriting the first repo's
push. In the first repo, another push will then fail as a non
fast-forward, and the user can recover as usual. But, a MANIFEST
overwrite will leave bundle files in the remote that are not listed in
the MANIFEST. It seems likely that git-annex will eventually be able to
detect that after the fact and clean it up. Eg, it can learn all bundles
that are stored in the remote using the location log, and compare them
to the MANIFEST to find bundles that got lost.

The race can also appear to the user as if they pushed a ref, but then
it got deleted from the remote. This happens when two two pushes are
pushing different ref names. This might be harder for the user to
notice; git fetch does not indicate that a remote ref got deleted.
They would have to use git fetch --prune to notice the deletion.
Once the user does notice, they can re-push their ref to recover.

Sponsored-by: Jack Hill on Patreon
2024-04-26 15:03:04 -04:00
nobodyinperson
477018756a 2024-04-26 13:16:52 +00:00
Joey Hess
84611e7ee6
todo 2024-04-26 04:03:10 -04:00
yarikoptic
5ac14f210e Added a comment 2024-04-25 21:11:56 +00:00
Joey Hess
e3c5f0079d
Merge branch 'master' of ssh://git-annex.branchable.com 2024-04-25 17:01:32 -04:00
Joey Hess
d895df1010
update 2024-04-25 17:01:17 -04:00
Joey Hess
6ff4300bd1
proof of concent for push to git bundles with MANIFEST
This is a shell script, so not final code, and it does not use git-annex
at all, but it shows how to push to git bundles, listed in a MANIFEST,
the same as the git-remote-annex program will eventually do.

While developing this, I realized that the design needed to be changed
slightly regarding where refs are stored. Since a push can delete a ref
from a remote, storing each newly pushed ref in a bundle won't work,
because deleting a ref would then entail deleting all old bundles and
re-uploading from scratch. So instead, only the refs in the last bundle
listed in the MANIFEST are the active refs. Any refs in prior bundles
are just old refs that were stored previously (a reflog as it were).

That means that, in a situation where two different people are pushing
to the same special remote from different repos, whoever pushes last
wins. Any refs pushed by the other person earlier will be ignored. This
may not be desirable, and git-annex might be able use the git-annex
branch to detect such situations and rescue the refs that got lost. Even
without such a recovery process though, the refs that the other person
thought they pushed will be preserved in their refs/namespaces/mine, so
a pull followed by a push will generally resolve the situation.

Note that the use of refs/namespaces/mine in the bundle is not really
desirable, and it might be worth making a local clone of the repo in
order to set up the refs that will be put in the bundle. Which seems to
be the only way to avoid needing that. But it does need to maintain
the refs/namespaces/mine/ in the git repo in order to remember what refs
have been pushed to the remote before, in order to include them in the
next bundle pushed. A name that includes the remote uuid will be needed
in the final implementation.

Anyway, this shell script seems to fully work, including incremental
pushing, force pushing, and pushes that delete refs.

Sponsored-by: Brett Eisenberg on Patreon
2024-04-25 16:55:19 -04:00
aurtzy
6cc89d71d3 Added a comment 2024-04-25 17:35:49 +00:00
mih
9c78ab198e Q on the cheapest test for an initialized annex 2024-04-25 15:15:24 +00:00
ErrGe
cafa9af811 2024-04-22 15:37:04 +00:00
ErrGe
67d92c3aee 2024-04-22 15:36:26 +00:00
ErrGe
649909cc94 2024-04-22 15:35:18 +00:00
Gergely Risko
9e88c93866 Delete bug, as I have patch for it 2024-04-22 17:31:17 +02:00
Joey Hess
c410b2bb73
annex.maxextensions configuration
Controls how many filename extensions to preserve.

Sponsored-by: the NIH-funded NICEMAN (ReproNim TR&D3) project
2024-04-18 14:23:38 -04:00
Joey Hess
b700c48b15
comment 2024-04-18 13:50:19 -04:00
Joey Hess
a1fd72b91a
update to focus on why this is still open 2024-04-18 12:40:53 -04:00
Joey Hess
7701bca2f6
Merge branch 'master' of ssh://git-annex.branchable.com 2024-04-18 10:05:37 -04:00
Joey Hess
ba9f207d4e
fix option desc pasted from pull 2024-04-18 10:05:11 -04:00
ErrGe
d6aa9606e2 Added a comment: but I'm talking about --help, isn't that in the source code? 2024-04-18 13:07:40 +00:00
tiko
97dd6e61c1 2024-04-18 09:58:20 +00:00
nobodyinperson
141c9d2331 Added a comment: Everyone can fix typos in the docs 2024-04-18 05:21:42 +00:00
ErrGe
9c0c7a7a1d 2024-04-18 01:19:19 +00:00
ErrGe
e44513cfe7 Added a comment: hook idea implementation is cool, but usage is not so simple for the enduser 2024-04-18 01:17:02 +00:00
Joey Hess
aa9db2694a
update 2024-04-17 16:19:20 -04:00
Joey Hess
d55e3f5fe2
Merge branch 'master' of ssh://git-annex.branchable.com 2024-04-17 15:27:09 -04:00
Joey Hess
d372553540
rclone special remote
Added rclone special remote, which can be used without needing to install
the git-annex-remote-rclone program. This needs a new version of rclone,
which supports "rclone gitannex".

This is implemented as a variant of an external special remote, that
runs "rclone gitannex" instead of the usual git-annex-remote- command.
Parameterized Remote.External to support that.

Sponsored-by: Luke T. Shumaker on Patreon
2024-04-17 15:20:37 -04:00
Joey Hess
5c542c0382
update 2024-04-17 13:11:17 -04:00
yarikoptic
6d651fa10c bug about inception with unlocked files 2024-04-17 13:58:17 +00:00
yarikoptic
6bcb2f7f02 original possible todo on extension 2024-04-17 13:30:23 +00:00
mih
66222e9354 Added a comment: Need for more than HEAD/URL? 2024-04-15 05:00:58 +00:00
m.risse@77eac2c22d673d5f10305c0bade738ad74055f92
eaece30f90 Added a comment: prior art 2024-04-13 20:30:56 +00:00
Erin
fb4dd44106 2024-04-13 19:31:01 +00:00
Erin
35e07abccf 2024-04-13 19:27:00 +00:00
nobodyinperson
22091cb659 Added a comment: Happens on nix on MacOS as well 2024-04-13 15:51:54 +00:00
m.risse@77eac2c22d673d5f10305c0bade738ad74055f92
30b4de2185 2024-04-11 15:15:59 +00:00
mih
08be93a5cb Thoughts on support special remotes that compute keys instead of downloading 2024-04-11 12:26:40 +00:00
Joey Hess
4bb5b7c519
comment 2024-04-10 13:00:16 -04:00
Joey Hess
38b1e8a36e
todo 2024-04-10 12:46:27 -04:00
unqueued
45a3c8738c Added a comment 2024-04-10 12:46:53 +00:00
unqueued
11a2789753 2024-04-10 12:30:27 +00:00
unqueued
cb3129ecd1 Added a comment 2024-04-10 12:26:49 +00:00
unqueued
2d76ce387e 2024-04-10 12:17:34 +00:00
nobodyinperson
9b94c4c729 Add link to Yann's distribits talk 2024-04-09 20:34:51 +00:00
Joey Hess
00593523c6
Merge branch 'master' of ssh://git-annex.branchable.com 2024-04-09 12:59:01 -04:00
Joey Hess
2c73845d90
multiple -m second try
Test suite passes this time. When committing the adjusted branch, use
the old method to make a message that old git-annex can consume. Also
made the code accept the new message, so that eventually
commitTreeExactMessage can be removed.

Sponsored-by: Kevin Mueller on Patreon
2024-04-09 12:56:47 -04:00
mdekstrand
08d9152f87 Added a comment: Update after transferring more files 2024-04-09 14:45:07 +00:00
nobodyinperson
e3a58a2710 Added a comment: or use numcopies for safety 2024-04-09 10:48:10 +00:00
nobodyinperson
f020a804a2 Added a comment: when someone names files like keys, they probably want trouble 🙃 2024-04-09 10:43:16 +00:00
Joey Hess
69546f73ca
comment 2024-04-08 16:57:53 -04:00
mdekstrand
bc937b11b9 repot MacOS disk usage bug 2024-04-08 20:30:14 +00:00
lukasz.opiola@8b366725db99c2a5e0e638d1a5d57d457d0bdad4
5cb2186cd5 2024-04-08 13:56:32 +00:00
lukasz.opiola@8b366725db99c2a5e0e638d1a5d57d457d0bdad4
58180abd6b 2024-04-08 13:55:19 +00:00
lukasz.opiola@8b366725db99c2a5e0e638d1a5d57d457d0bdad4
a1616be8d6 2024-04-08 13:53:48 +00:00
Joey Hess
cefba1c4dc
Merge branch 'master' of ssh://git-annex.branchable.com 2024-04-08 09:16:34 -04:00
Joey Hess
967f887b95
update 2024-04-08 09:16:27 -04:00
grawity@dec5f8ddda45c421809e4687d9950f9ed2a03e46
3dfe165a05 2024-04-08 09:52:49 +00:00
Joey Hess
6401a1eed5
Merge branch 'master' of ssh://git-annex.branchable.com 2024-04-06 19:52:26 -04:00
Joey Hess
5060185a7b
project we started at Distribits 2024-04-06 19:52:07 -04:00
nobodyinperson
bae7076e43 Added a comment: more use cases for configurable default preferred content 2024-04-06 15:12:50 +00:00
Joey Hess
f900c56ca3
parameterize manifest on UUID
and expand slightly
2024-04-06 08:34:01 -04:00
m.risse@77eac2c22d673d5f10305c0bade738ad74055f92
26549ec343 Added a comment 2024-04-06 10:05:04 +00:00
m.risse@77eac2c22d673d5f10305c0bade738ad74055f92
554b73bb39 2024-04-06 09:59:37 +00:00
Joey Hess
9b116870a6
added docs for git-remote-annex special remote contents
Designed with the help of Timothy Sanders and Michael Hanke
at Distribits 2024
2024-04-06 05:28:49 -04:00
jasonc
dbd2f0e7bf Added a comment: Possible simplified scenario 2024-04-03 16:48:04 +00:00
nobodyinperson
0ed64f5bd0 Add link to English re-recording of Yann's git-annex workshop kickoff talk @Tübix2023 2024-04-03 11:09:08 +00:00
Joey Hess
974455ea33
Merge branch 'master' of ssh://git-annex.branchable.com 2024-04-02 17:36:42 -04:00
Joey Hess
e216bd5f10
mention reversion 2024-04-02 17:33:20 -04:00
Joey Hess
a8dd85ea5a
Revert "multiple -m"
This reverts commit cee12f6a2f.

This commit broke git-annex init run in a repo that was cloned from a
repo with an adjusted branch checked out.

The problem is that findAdjustingCommit was not able to identify the
commit that created the adjusted branch. It seems that there is an extra
"\n" at the end of the commit message that it does not expect.

Since backwards compatability needs to be maintained, cannot just make
findAdjustingCommit accept it with the "\n". Will have to instead
have one commitTree variant that uses the old method, and use it for
adjusted branch committing.
2024-04-02 17:29:07 -04:00
psxvoid
633a1b01a9 Added a comment: support for bulk write/read/test remote 2024-04-02 06:41:25 +00:00
oadams
8d858fdce2 Added a comment 2024-04-02 03:56:50 +00:00
d@403a635aa8eaa8bfa8613acb6a375d9e06ed7001
2b0df3a76d Added a comment 2024-03-27 22:11:47 +00:00
Joey Hess
96bbe9fafc
fixes 2024-03-27 16:00:18 -04:00
Joey Hess
7462d7c2d1
Merge branch 'master' of ssh://git-annex.branchable.com 2024-03-27 15:58:45 -04:00
Joey Hess
cee12f6a2f
multiple -m
sync, assist, import: Allow -m option to be specified multiple times, to
provide additional paragraphs for the commit message.

The option parser didn't allow multiple -m before, so there is no risk of
behavior change breaking something that was for some reason using multiple
-m already.

Pass through to git commands, so that the method used to assemble the
paragrahs is whatever git does. Which might conceivably change in the
future.

Note that git commit-tree has supported -m since git 1.7.7. commitTree
was probably not using it since it predates that version. Since the
configure script prevents building git-annex with git older than 2.1,
there is no risk that it's not supported now.

Sponsored-by: Nicholas Golder-Manning on Patreon
2024-03-27 15:58:27 -04:00
d@403a635aa8eaa8bfa8613acb6a375d9e06ed7001
b886aefe69 Added a comment 2024-03-27 13:26:34 +00:00
Joey Hess
e32a5166a0
Merge branch 'master' of ssh://git-annex.branchable.com 2024-03-26 18:19:29 -04:00
Joey Hess
8d35ea976c
todo 2024-03-26 18:19:23 -04:00
yarikoptic
6b837d17c2 Added a comment 2024-03-26 19:13:15 +00:00
Joey Hess
fc04e6fa58
comment 2024-03-26 13:48:57 -04:00
Joey Hess
962da7bcf9
update for new rclone gitannex command 2024-03-26 13:48:43 -04:00
d@403a635aa8eaa8bfa8613acb6a375d9e06ed7001
4a6d17c8f9 Added a comment 2024-03-26 14:07:19 +00:00
Joey Hess
9f0295495d
Merge branch 'master' of ssh://git-annex.branchable.com 2024-03-25 14:53:02 -04:00
Joey Hess
331f9dd764
link to commit 2024-03-25 14:51:36 -04:00
Joey Hess
f04d9574d6
fix transfer lock file for Download to not include uuid
While redundant concurrent transfers were already prevented in most
cases, it failed to prevent the case where two different repositories were
sending the same content to the same repository. By removing the uuid
from the transfer lock file for Download transfers, one repository
sending content will block the other one from also sending the same
content.

In order to interoperate with old git-annex, the old lock file is still
locked, as well as locking the new one. That added a lot of extra code
and work, and the plan is to eventually stop locking the old lock file,
at some point in time when an old git-annex process is unlikely to be
running at the same time.

Note that in the case of 2 repositories both doing eg
`git-annex copy foo --to origin`
the output is not that great:

copy b (to origin...)
  transfer already in progress, or unable to take transfer lock
git-annex: transfer already in progress, or unable to take transfer lock
97%   966.81 MiB      534 GiB/s 0sp2pstdio: 1 failed

  Lost connection (fd:14: hPutBuf: resource vanished (Broken pipe))

  Transfer failed

Perhaps that output could be cleaned up? Anyway, it's a lot better than letting
the redundant transfer happen and then failing with an obscure error about
a temp file, which is what it did before. And it seems users don't often
try to do this, since nobody ever reported this bug to me before.
(The "97%" there is actually how far along the *other* transfer is.)

Sponsored-by: Joshua Antonishen on Patreon
2024-03-25 14:47:46 -04:00
nobodyinperson
f937658edf Add news of git-annex merch from hellotux.com 2024-03-25 06:27:48 +00:00
nobodyinperson
7c7b9f5da9 Add link to hellotux.com git-annex shirts 2024-03-25 06:18:36 +00:00
Joey Hess
1ace305159
bug 2024-03-24 15:05:49 -04:00
Joey Hess
3d55a7ac02
comment 2024-03-22 11:07:00 -04:00
Joey Hess
0c6eb2f1c9
comment 2024-03-22 11:00:51 -04:00
poelzi
b8fe213e5a 2024-03-20 21:22:36 +00:00
Joey Hess
332b0e778c
policy on AI generated content 2024-03-18 16:57:54 -04:00
Joey Hess
1ce7dedf40
Merge branch 'master' of ssh://git-annex.branchable.com 2024-03-15 16:15:23 -04:00
Joey Hess
f001ae7c09
update 2024-03-15 10:21:21 -04:00
oadams
11b609763e Added a comment: Need for git-annex-remote-rclone 2024-03-14 01:03:46 +00:00
Joey Hess
7d407516c4
update 2024-03-13 11:21:05 -04:00
Joey Hess
e7bd6b8e6e
update 2024-03-13 11:19:04 -04:00
Joey Hess
ff05c00924
link 2024-03-13 11:06:59 -04:00
Joey Hess
406b5c6c10
fix spelling 2024-03-13 11:05:41 -04:00
Joey Hess
7044232696
todo 2024-03-13 11:04:06 -04:00
Joey Hess
e6fb0cdaad
update 2024-03-13 10:32:03 -04:00
Joey Hess
3877be35bd
update 2024-03-13 10:29:48 -04:00
Joey Hess
1dd4109bc8
Merge branch 'master' of ssh://git-annex.branchable.com 2024-03-13 10:19:17 -04:00
Joey Hess
259061c444
todo 2024-03-13 10:19:10 -04:00
Joey Hess
eaf451c129
thoughts 2024-03-12 16:41:25 -04:00
plattfot@2283a4f9dca7a5a94ba91f0c65c1fb52bb25e811
484483a699 2024-03-12 19:01:46 +00:00
Joey Hess
087e099e6a
Merge branch 'master' of ssh://git-annex.branchable.com 2024-03-11 10:00:48 -04:00
Joey Hess
e29918aea1
comment 2024-03-11 10:00:45 -04:00
Joey Hess
eb2cd944d9
update 2024-03-08 14:32:29 -04:00
Joey Hess
ad966e5e7b
update 2024-03-08 13:43:31 -04:00
ewen
0b4eb2620b Added a comment: TLS v1.2 EMS (Extended Master/Main Secret) 2024-03-07 03:01:20 +00:00
ewen
24083a5694 2024-03-07 02:33:52 +00:00
bbigras
c456f141be Added a comment 2024-03-06 17:03:51 +00:00
imlew
b21e8522bd Added a comment: Still experimental? 2024-03-06 12:26:56 +00:00
Joey Hess
016d1bee88
add reregisterurl command
What this can currently be used for is only to change an url from being
used by a special remote to being used by the web remote.

This could have been a --move-from option to registerurl. But, that would
have complicated its option and --batch processing, and also would have
complicated unregisterurl, which is implemented on top of
Command.Registerurl. So, a separate command was actually less complicated
to implement.

The generic description of the command is because I want to make this
command a catch-all for other url updating kind of things, if there are
ever any more. Also because it was hard to come up with a good name for the
specific action. I considered `git-annex moveurl`, but that seems to
indicate data is perhaps actually being moved, and seems to sit at the same
level as addurl and rmurl, and this command is at the plumbing
level of registerurl and unregisterurl.

Sponsored-by: Dartmouth College's DANDI project
2024-03-05 15:06:14 -04:00
Joey Hess
1bf02029f9
small problem 2024-03-05 13:45:31 -04:00
Joey Hess
7ac84edd9c
comment 2024-03-05 13:29:42 -04:00
Joey Hess
977e0cd2fc
Merge branch 'master' of ssh://git-annex.branchable.com 2024-03-05 13:17:37 -04:00
Joey Hess
3874b7364f
add todo for tracking free space in repos via git-annex branch
For balanced preferred content perhaps, or just for git-annex info
display.

Sponsored-by: unqueued on Patreon
2024-03-05 13:16:42 -04:00
Joey Hess
3ff6eec9bc
update 2024-03-05 13:16:06 -04:00
TTTTAAAx
03febd4245 Added a comment 2024-03-05 05:21:59 +00:00
Joey Hess
b1ba39f22b
response 2024-03-04 17:17:53 -04:00
Joey Hess
26e8a73967
comment 2024-03-04 17:16:53 -04:00
Joey Hess
5a82a5cfe8
Merge branch 'master' of ssh://git-annex.branchable.com 2024-03-04 17:07:26 -04:00
Joey Hess
6292d772ad
thoughts 2024-03-04 17:04:59 -04:00
d@403a635aa8eaa8bfa8613acb6a375d9e06ed7001
56016f6cf2 2024-03-04 17:36:22 +00:00
bbigras
80b27b86bd 2024-03-04 17:03:29 +00:00
Atemu
c575cc38a8 Added a comment 2024-03-02 08:32:40 +00:00
Joey Hess
fcc2c51c85
clarification 2024-03-01 17:03:40 -04:00
Joey Hess
9e3ebc0c59
add potential list 2024-03-01 16:54:43 -04:00
Joey Hess
a6a7b8320a
Merge branch 'master' of ssh://git-annex.branchable.com 2024-03-01 16:53:13 -04:00
Joey Hess
e7652b0997
implement URL to VURL migration
This needs the content to be present in order to hash it. But it's not
possible for a module used by Backend.URL to call inAnnex because that
would entail a dependency loop. So instead, rely on the fact that
Command.Migrate calls inAnnex before performing a migration.

But, Command.ExamineKey calls fastMigrate and the key may or may not
exist, and it's not wanting to actually perform a migration in any case.
To handle that, had to add an additional value to fastMigrate to
indicate whether the content is inAnnex.

Factored generateEquivilantKey out of Remote.Web.

Note that migrateFromURLToVURL hardcodes use of the SHA256E backend.
It would have been difficult not to, given all the dependency loop
issues. But --backend and annex.backend are used to tell git-annex
migrate to use VURL in any case, so there's no config knob that
the user could expect to configure that.

Sponsored-by: Brock Spratlen on Patreon
2024-03-01 16:42:02 -04:00
Joey Hess
2b5ba03c01
fix typo in example 2024-03-01 15:44:46 -04:00
Joey Hess
cb50cdcc58
todo 2024-03-01 15:14:45 -04:00
Joey Hess
2bb46d046c
comment 2024-03-01 15:07:03 -04:00
Joey Hess
def94fbff6
update 2024-03-01 13:48:51 -04:00
Joey Hess
1b0de3021a
avoid double checksum when downloading VURL from web for 1st time
Sponsored-by: Jack Hill on Patreon
2024-03-01 13:44:40 -04:00
Joey Hess
4046f17ca0
incremental verification for VURL
Sponsored-by: Brett Eisenberg on Patreon
2024-03-01 13:33:29 -04:00
yarikoptic
283e071bcb has potential in DANDI project 2024-02-29 23:31:05 +00:00
Joey Hess
62e4c9d3b8
add future todo 2024-02-29 17:52:58 -04:00
Joey Hess
c72df19784
verifyKeyContent for VURL
VURL is now fully working, though needs more testing.

Still need to implement verifyKeyContentIncrementally but it works
without it.

Sponsored-by: Luke T. Shumaker on Patreon
2024-02-29 17:44:21 -04:00
Joey Hess
cc17ac423b
implement isCryptographicallySecureKey for VURL
Considerable difficulty to work around an import cycle. Had to move the
list of backends (except for VURL) to Backend.Variety to VURL could use
it.

Sponsored-by: Kevin Mueller on Patreon
2024-02-29 17:26:35 -04:00
Joey Hess
55bf01b788
add equivilant key log for VURL keys
When downloading a VURL from the web, make sure that the equivilant key
log is populated.

Unfortunately, this does not hash the content while it's being
downloaded from the web. There is not an interface in Backend currently
for incrementally hash generation, only for incremental verification of an
existing hash. So this might add a noticiable delay, and it has to show
a "(checksum...") message. This could stand to be improved.

But, that separate hashing step only has to happen on the first download
of new content from the web. Once the hash is known, the VURL key can have
its hash verified incrementally while downloading except when the
content in the web has changed. (Doesn't happen yet because
verifyKeyContentIncrementally is not implemented yet for VURL keys.)

Note that the equivilant key log file is formatted as a presence log.
This adds a tiny bit of overhead (eg "1 ") per line over just listing the
urls. The reason I chose to use that format is it seems possible that
there will need to be a way to remove an equivilant key at some point in
the future. I don't know why that would be necessary, but it seemed wise
to allow for the possibility.

Downloads of VURL keys from other special remotes that claim urls,
like bittorrent for example, does not popilate the equivilant key log.
So for now, no checksum verification will be done for those.

Sponsored-by: Nicholas Golder-Manning on Patreon
2024-02-29 16:01:49 -04:00
Joey Hess
0f7143d226
support VURL backend
Not yet implemented is recording hashes on download from web and
verifying hashes.

addurl --verifiable option added with -V short option because I
expect a lot of people will want to use this.

It seems likely that --verifiable will become the default eventually,
and possibly rather soon. While old git-annex versions don't support
VURL, that doesn't prevent using them with keys that use VURL. Of
course, they won't verify the content on transfer, and fsck will warn
that it doesn't know about VURL. So there's not much problem with
starting to use VURL even when interoperating with old versions.

Sponsored-by: Joshua Antonishen on Patreon
2024-02-29 13:48:51 -04:00
Joey Hess
8f40e0269b
comment 2024-02-27 13:36:07 -04:00
Joey Hess
90b7c2d93c
fix link 2024-02-27 13:20:24 -04:00
Joey Hess
cf1411fabe
add news item for git-annex 10.20240227 2024-02-27 13:02:23 -04:00
Joey Hess
df7230deac
comment and todo 2024-02-27 12:44:34 -04:00
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec
affeccdb65 2024-02-27 02:23:34 +00:00
Joey Hess
ad8e32c09d
comment 2024-02-26 15:40:37 -04:00
tchen_annex
a7d38febb3 Added a comment: ignore, upgrading to v10.20231227 solved this issue 2024-02-25 17:34:31 +00:00
rmtheis@e3b72add4375d3e9c1b088a2136a3d3822a0d4e8
3bc79d7ac1 2024-02-25 14:24:50 +00:00
rmtheis@e3b72add4375d3e9c1b088a2136a3d3822a0d4e8
ec0c60b976 2024-02-25 14:21:41 +00:00
tchen_annex
a62a897f4b Added a comment: this also fails with encryption=none 2024-02-25 01:08:43 +00:00
tchen_annex
f4ff4ff1ad 2024-02-25 00:55:21 +00:00
Joey Hess
bf2abf3b09
comment 2024-02-22 12:54:16 -04:00
Joey Hess
f7be26d4e3
close 2024-02-22 12:50:12 -04:00
Joey Hess
2b3740e7b4
comment 2024-02-22 12:45:57 -04:00
Joey Hess
891a0076a6
move misplaced bug or todo to a better place 2024-02-22 11:21:39 -04:00
Joey Hess
e041d4b9b5
Merge branch 'master' of ssh://git-annex.branchable.com 2024-02-22 11:19:02 -04:00
Yann Büchau
460406d409
Add logo version with '> git annex' text below 2024-02-22 11:17:08 -04:00
TTTTAAAx
a6355c1b34 Added a comment: Datalad cannot detect submodule path changed on disk 2024-02-22 08:34:47 +00:00
TTTTAAAx
47d3dc70e3 http://git-annex.branchable.com/submodules/#comment-2f017a0f1a13329f4f738568b3eb82ae 2024-02-22 08:28:05 +00:00
lell
6b5730a7a3 Added a comment 2024-02-22 07:49:59 +00:00
lell
d599e1de05 Added a comment: Using fsck is an option? 2024-02-22 07:47:37 +00:00
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec
1716ae7416 Added a comment: Colocating git-annex and git-lfs 2024-02-22 02:55:26 +00:00
matrss
89f30fd213 Added a comment: Multi-line string in WHEREIS-SUCCESS? 2024-02-21 12:29:14 +00:00
tomdhunt
28413f0853 2024-02-20 20:51:03 +00:00
anarcat
729097ea30 expand on what i feel a tweak could help 2024-02-19 14:21:36 +00:00
anarcat
f182ea517a 2024-02-19 04:07:06 +00:00
nobodyinperson
efc461ff51 Add annextimelog project 2024-02-17 07:40:07 +00:00
yarikoptic
581e8b0661 add openneuro project 2024-02-16 18:39:01 +00:00
Joey Hess
1dd51d37c5
comment 2024-02-16 14:12:06 -04:00
jstritch
372228dfc4 Added a comment 2024-02-16 17:48:55 +00:00
jstritch
d8e426bcd7 removed 2024-02-16 17:26:44 +00:00
lell
d6f92d2e96 Fix typo 2024-02-16 09:25:50 +00:00
lell
9aa99a87a3 2024-02-16 09:25:03 +00:00
yarikoptic
f223051789 Added a comment: a script to hide history 2024-02-15 22:05:12 +00:00
Joey Hess
a55be6ed0e
update thanks and separate out 2023 name list 2024-02-15 13:24:32 -04:00
nobodyinperson
65839cfbac Suggest cooperating with hellotux.com for git-annex-branded shirts 2024-02-13 19:36:11 +00:00
Joey Hess
3475b09c3e
pre-commit: Avoid committing the git-annex branch
Except when a commit is made in a view, which changes metadata.

Make the assistant commit the git-annex branch after git commit of working
tree changes.

This allows using the annex.commitmessage-command in the assistant to
generate a commit message for the git-annex branch that relies on state
gathered during the commit of the working tree. Eg, it might reuse the
commit message.

Note that, when not using the assistant, a git-annex add still commits
the git-annex branch, so such a annex.commitmessage-command set up would
not work then. But if someone is using the assistant and wants
programmatic control over commit messages, this is useful. Someone not
using the assistant can get the same result by using annex.alwayscommit=false
during the git-annex add, and git-annex merge after they git commit.

pre-commit was never really intended to commit the git-annex branch
(except after recording changed metadata), but the assistant did sort of
rely on it. It does later commit the git-annex branch before pushing to
remotes, but I didn't want to risk building up lots of uncommitted changes
to it if that didn't happen frequently.

Sponsored-by: the NIH-funded NICEMAN (ReproNim TR&D3) project
2024-02-12 14:42:11 -04:00
Joey Hess
68e99513f0
added annex.commitmessage-command config
Sponsored-by: the NIH-funded NICEMAN (ReproNim TR&D3) project
2024-02-12 14:35:22 -04:00
Joey Hess
66919bf6ec
comment 2024-02-12 13:04:56 -04:00
yarikoptic
2832714af1 Added a comment 2024-02-11 18:54:45 +00:00
yarikoptic
6c7d7ae719 removed 2024-02-11 18:54:10 +00:00
yarikoptic
9e07eeaef3 Added a comment 2024-02-11 18:50:18 +00:00
Joey Hess
990b7bc3ef
top 2024-02-10 12:50:00 -04:00
Joey Hess
41cad8d9aa
improved approach 2024-02-10 12:24:06 -04:00
Joey Hess
6871ec36a7
remove comment that doesn't actually work 2024-02-10 12:05:19 -04:00
Joey Hess
dd0e45c86e
update 2024-02-10 11:24:32 -04:00
Joey Hess
fef7711dd3
comment 2024-02-10 11:19:47 -04:00
Joey Hess
8c4b94bb04
Merge branch 'master' of ssh://git-annex.branchable.com 2024-02-10 10:48:52 -04:00
Joey Hess
6c5aaa2b0f
design document for verified relaxed urls
Sponsored-by: Graham Spencer on Patreon
2024-02-10 10:48:20 -04:00
Joey Hess
aba87a6e92
close as distributed migration meets this use case 2024-02-10 10:24:58 -04:00
psxvoid
a8acc7a11c Added a comment: Update: workaround with branches 2024-02-10 10:53:56 +00:00
psxvoid
873c6c48ef Added a comment: This behavior should be the default one 2024-02-10 08:11:30 +00:00
yarikoptic
e99813cb67 Added a comment 2024-02-09 21:58:56 +00:00
Joey Hess
5e4d92efd5
comment 2024-02-09 17:04:04 -04:00
Joey Hess
eed66c0164
comment 2024-02-09 17:00:36 -04:00
Joey Hess
b68a319dab
Merge branch 'master' of ssh://git-annex.branchable.com 2024-02-09 14:19:55 -04:00
Joey Hess
bca66acfd8
comment 2024-02-09 14:09:49 -04:00
yarikoptic
dee690587c initial question on grafting the history when we have sensitive data 2024-02-09 17:54:01 +00:00
yarikoptic
2a4d7d894b Added a comment 2024-02-09 13:50:21 +00:00
yarikoptic
517914c0f6 Added a comment 2024-02-08 22:08:41 +00:00
Joey Hess
c3b29fcc17
update 2024-02-08 10:25:52 -04:00
Joey Hess
c4943ae277
close 2024-02-07 16:24:39 -04:00
Joey Hess
644317e86f
Merge branch 'master' of ssh://git-annex.branchable.com 2024-02-07 16:21:31 -04:00
Joey Hess
21123ba368
assistant, undo: When committing, let the usual git commit hooks run
Was doing a Git.Branch.commit for historical reasons to do with direct
mode, which no longer apply.

Note that the preCommitAnnexHook is no longer called in commitStaged
because git-annex installs a pre-commit hook that runs the pre-commit-annex
hook. And git commit will run the pre-commit hook.

Sponsored-by: the NIH-funded NICEMAN (ReproNim TR&D3) project
2024-02-07 16:15:35 -04:00
yarikoptic
3a0cbb8515 Added a comment 2024-02-07 18:47:19 +00:00
jstritch
d8df420b18 Added a comment 2024-02-07 15:52:18 +00:00
jstritch
08db730a17 Added a comment 2024-02-06 19:54:40 +00:00
jstritch
949f068fb7 Added a comment 2024-02-06 18:27:33 +00:00
jstritch
e0488d74ff Added a comment 2024-02-06 16:10:56 +00:00
zoran.bosnjak@683708e9d46ca9d9fa8957bd513e6648cbcbf421
8f00cca06e Added a comment: centralized repository workflow 2024-02-06 12:33:20 +00:00
jasonb@ab4484d9961a46440958fa1a528e0fc435599057
42558c3c8c 2024-02-05 20:40:01 +00:00
Joey Hess
9c9f7fe2cf
wording 2024-02-05 15:50:41 -04:00
Joey Hess
48fe8ba23c
forgot to add this comment earlier 2024-02-05 15:49:32 -04:00
Joey Hess
792106abc3
improve special remote docs
Sponsored-by: Dartmouth College's DANDI project
2024-02-05 15:48:15 -04:00
Joey Hess
083c471ee9
really close 2024-02-05 15:20:40 -04:00
Joey Hess
6b38d0c427
addurl, importfeed: Added --raw-except option
--raw-except=web allows using yt-dlp but not any other special remotes.

Currently this option can only be used once, trying to use it repeatedly
will make option parsing fail. Perhaps it ought to support being used more
than once, but it seemed like an unlikely use case to need that.

Note that getParsed is called repeatedly when the option is used with
several urls. While implementing DeferredParseClass would avoid that
innefficiency, it didn't seem worth the added boilerplate since
getParsed only calls byNameWithUUID which does minimal work.

Sponsored-by: Dartmouth College's DANDI project
2024-02-05 15:16:25 -04:00
Joey Hess
c0c85a7de4
comment and close 2024-02-05 14:11:47 -04:00
Joey Hess
d7419d6e65
comment 2024-02-05 14:06:03 -04:00
Joey Hess
e9ffa95fab
comment 2024-02-05 13:48:29 -04:00
Joey Hess
649363f3e8
comment 2024-02-05 13:29:10 -04:00
felix@996ab1030f55d480e424a17116e03a48bd984549
8f33c0a3af Added a comment: Same issue after kernel oops 2024-02-05 14:58:33 +00:00
cokoryu@4ae909755ee8e71bb5870a54f9be316b11c1cf0a
6177049c22 2024-02-04 10:56:30 +00:00
cokoryu@4ae909755ee8e71bb5870a54f9be316b11c1cf0a
d6ede848af 2024-02-04 10:54:17 +00:00
cokoryu@4ae909755ee8e71bb5870a54f9be316b11c1cf0a
f93030d653 2024-02-04 10:51:11 +00:00
cokoryu@4ae909755ee8e71bb5870a54f9be316b11c1cf0a
4f36641ac3 update for rename of forum/assistant.mdwn to forum/__96__git_annex_assistant__96___command_replace_all_files_with_pointer_file..mdwn 2024-02-04 10:50:28 +00:00
cokoryu@4ae909755ee8e71bb5870a54f9be316b11c1cf0a
e13331d497 update for rename of forum/assistant.mdwn to forum/__96__git_annex_assistant__96___command_replace_all_files_with_pointer_file..mdwn 2024-02-04 10:50:26 +00:00
cokoryu@4ae909755ee8e71bb5870a54f9be316b11c1cf0a
aaf328f8a4 rename forum/assistant.mdwn to forum/__96__git_annex_assistant__96___command_replace_all_files_with_pointer_file..mdwn 2024-02-04 10:50:24 +00:00
cokoryu@4ae909755ee8e71bb5870a54f9be316b11c1cf0a
19dcba63dc 2024-02-04 10:48:01 +00:00
jstritch
593186d461 2024-02-03 18:48:36 +00:00
jstritch
2e626ac659 2024-02-03 18:46:58 +00:00
yarikoptic
8a546d1b31 Added a comment 2024-02-03 01:17:39 +00:00
Joey Hess
0c64cd30c2
compare urls irrespective of downloader
importfeed --force: Avoid creating duplicates of existing already
downloaded files when yt-dlp or a special remote was used.
2024-02-02 15:50:56 -04:00
Joey Hess
f1296e260e
Merge branch 'master' of ssh://git-annex.branchable.com 2024-02-02 15:26:27 -04:00
Joey Hess
b5c6c3b290
comment 2024-02-02 15:25:27 -04:00
yarikoptic
809bd149eb Added a comment 2024-02-02 19:08:38 +00:00
Joey Hess
ccfa7300f7
oddly groundhog's day thematic response 2024-02-02 14:43:19 -04:00
Joey Hess
fc32632774
followup 2024-02-02 14:32:12 -04:00
yarikoptic
5621922e08 the plea to respect prepare-commit-msg hook 2024-02-02 17:07:52 +00:00
yarikoptic
f36ba992ea todo for support of pushinsteadof 2024-02-02 16:27:20 +00:00
jstritch
05b43b0dfd Added a comment 2024-02-01 20:49:12 +00:00
jstritch
ee31d57f0b 2024-02-01 17:40:27 +00:00
windfish@91c7bac51a452080189a071094cb6f914fe3435b
211486472b Added a comment: combine worm with partial hash 2024-02-01 11:53:54 +00:00
jstritch
8f4cf44d91 Added a comment 2024-01-31 22:12:47 +00:00
yarikoptic
614d438217 question about migrating URLs between remotes 2024-01-31 20:40:44 +00:00
yarikoptic
0fd17ceeb5 Initial desire for addurl --raw-except 2024-01-31 20:35:03 +00:00
yarikoptic
93f9996595 Added a comment 2024-01-31 19:23:23 +00:00
yarikoptic
b775de5ee1 question about importfeed. 2024-01-31 19:19:31 +00:00
Joey Hess
e0266a8d80
update docs for --scrape 2024-01-30 16:12:33 -04:00
Joey Hess
3b22e61007
followup and close 2024-01-30 15:51:33 -04:00
Joey Hess
98c4a39dd2
Merge branch 'master' of ssh://git-annex.branchable.com 2024-01-30 15:41:28 -04:00
Joey Hess
90db97d9a2
importfeed: Added --scrape option
Which uses yt-dlp to screen scrape the equivilant of an RSS feed.

Note that youtubedlscraped is a speed optimisation. Since yt-dlp found
the urls, we know it can download them. That avoids calling
youtubeDlSupported on each url, which makes --fast a lot faster.

Almost all the same metadata fields and file formatting fields are
populated, when yt-dlp is able to get the data. Note that yt-dlp has some
additional useful metadata that could be exposed. But, much of it is
specific to particular websites, and it would be hard to document on the
git-annex importfeed man page.

Sponsored-by: unqueued on Patreon
2024-01-30 15:37:29 -04:00
jstritch
4b3e38792c 2024-01-30 16:41:57 +00:00
yarikoptic
0621711c6f ask for better documentation. 2024-01-30 16:20:45 +00:00
yarikoptic
58b57ab999 error out if yt-dlp sees that video is/was there but not available 2024-01-29 22:03:47 +00:00
Joey Hess
b7f02e4f89
add news item for git-annex 10.20240129 2024-01-29 14:12:20 -04:00
Joey Hess
5540f42e21
comment 2024-01-25 14:11:20 -04:00
Joey Hess
8e9ee31621
webapp: Added --port option, and annex.port config
The getSocket comment that mentioned using ":port"
in the hostname seems to have been incorrect or be out of date.
After all, the bug report came when the user first tried doing that,
and it didn't work.

Sponsored-by: the NIH-funded NICEMAN (ReproNim TR&D3) project
2024-01-25 14:08:36 -04:00
Joey Hess
d54f2ccae1
close 2024-01-25 13:28:23 -04:00
Joey Hess
3a20208ce1
confirm this todo 2024-01-25 13:25:15 -04:00
Joey Hess
2a56476ca5
close 2024-01-25 13:16:25 -04:00
Joey Hess
1120ac8272
update 2024-01-25 13:15:13 -04:00
Joey Hess
7aee4ca7c1
nack 2024-01-25 13:10:45 -04:00
Joey Hess
8646183e38
nack 2024-01-25 13:05:52 -04:00
Joey Hess
991dfcb9b8
nack 2024-01-25 13:04:35 -04:00
Joey Hess
3109447120
close 2024-01-25 12:58:16 -04:00
Joey Hess
b9e147d282
Added --expected-present file matching option 2024-01-25 12:56:41 -04:00
Joey Hess
1d17e4ee16
comment 2024-01-25 11:53:57 -04:00
Joey Hess
72d2dbde5e
comment 2024-01-23 12:55:44 -04:00
Joey Hess
f8b73e0286
fix example that combined encryption=shared with keyid= 2024-01-19 20:41:55 -04:00
Joey Hess
1f8996614e
close since bug submittor is happy with new option 2024-01-19 15:31:13 -04:00
Joey Hess
e7c38191e7
Merge branch 'master' of ssh://git-annex.branchable.com 2024-01-19 15:29:59 -04:00
Joey Hess
20567e605a
add directional stalldetection and bwlimit configs
Sponsored-by: Dartmouth College's DANDI project
2024-01-19 15:27:53 -04:00
Joey Hess
c02df79248
use watchFileSize in Remote.External.retrieveKeyFile
external: Monitor file size when getting content from external special
remotes and use that to update the progress meter, in case the external
special remote program does not report progress.

This relies on 703a70cafa to prevent ever
running the meter backwards.

Sponsored-by: Dartmouth College's DANDI project
2024-01-19 14:34:30 -04:00
jstritch
4276cb2015 Added a comment 2024-01-19 17:44:39 +00:00
Joey Hess
856c28508d
Merge branch 'master' of ssh://git-annex.branchable.com 2024-01-19 13:01:05 -04:00
Joey Hess
df35f70801
tweak stall detection scaling
Refactored to allow offline experimentation, and ended up changing the
allowedvariation (aka fudge factor) to 3. 10 seems too high, and 1.5 too low.

Scale earlier, so even if the first chunk takes less than the configured
time period, allowance is made that later chunks might transfer slower.
Decided to use the same allowedvariation to decide when to start
scaling.

Smoothed the scaling out.

Some examples:

ghci> upscale (BwRate 10 (Duration 60)) 25
BwRate 13 (Duration {durationSeconds = 75})
-- A small scaling upwards after 1/3rd the time. Not noticable.
ghci> upscale (BwRate 10 (Duration 60)) 60
BwRate 30 (Duration {durationSeconds = 180})
-- At the configured time, 3x scaling.
ghci> upscale (BwRate 10 (Duration 60)) 120
BwRate 60 (Duration {durationSeconds = 360})
-- A typical upscaling, here a 1 minute duration became 6 minutes
-- due to the first chunk taking 2 minutes to transfer.
ghci> upscale (BwRate 10 (Duration 60)) 600
BwRate 300 (Duration {durationSeconds = 1800})
-- Here the first chunk took 10 minutes to transfer, so it will
-- take 30 minutes to detect a stall.

Sponsored-by: Dartmouth College's DANDI project
2024-01-19 12:58:41 -04:00
imlew
0270f4d8ed Added a comment 2024-01-18 23:09:21 +00:00
yarikoptic
3e047f05cf Added a comment 2024-01-18 21:32:30 +00:00
Joey Hess
e61af28acf
comment 2024-01-18 17:18:19 -04:00
Joey Hess
3ef766c444
comment 2024-01-18 17:16:18 -04:00
Joey Hess
0721fe3463
Merge branch 'master' of ssh://git-annex.branchable.com 2024-01-18 17:13:05 -04:00
Joey Hess
c2634e7df2
automatically adjust stall detection period
Improve annex.stalldetection to handle remotes that update progress less
frequently than the configured time period.

In particular, this makes remotes that don't report progress but are
chunked work when transferring a single chunk takes longer than the
specified time period.

Any remotes that just have very low update granulatity would also be
handled by this.

The change to Remote.Helper.Chunked avoids an extra progress update when
resuming an interrupted upload. In that case, the code saw first Nothing
and then Just the already transferred number of bytes, which defeated this
new heuristic. This change will mean that, when resuming an interrupted
upload to a chunked remote that does not do its own progress reporting, the
progress display does not start out displaying the amount sent so far,
until after the first chunk is sent. This behavior change does not seem
like a major problem.

About the scalefudgefactor, it seems reasonable to expect subsequent chunks
to take no more than 1.5 times as long as the first chunk to transfer.
Could set it to 1, but then any chunk taking a little longer would be
treated as a stall. 2 also seems a likely value. Even 10 might be fine?

Sponsored-by: Dartmouth College's DANDI project
2024-01-18 17:12:10 -04:00
yarikoptic
4fe3e59525 Added a comment 2024-01-18 19:00:51 +00:00
Joey Hess
8f655f7953
improve annex.stalldetection documentation 2024-01-18 14:38:16 -04:00
imlew
cd986d613b 2024-01-18 18:25:48 +00:00
Joey Hess
931920c426
comment 2024-01-18 13:14:17 -04:00
Joey Hess
3ca1e036ed
open todo 2024-01-18 13:11:28 -04:00
Joey Hess
ae4177ec4e
comment 2024-01-18 13:01:04 -04:00
Joey Hess
52d4f36b2b
document that --listen specifies an IP address
Avoid users getting confused and thinking this allows specifying the
port.

Sponsored-by: the NIH-funded NICEMAN (ReproNim TR&D3) project
2024-01-18 12:58:00 -04:00
Joey Hess
adb8b320e3
cleanup 2024-01-18 12:42:26 -04:00
Joey Hess
e765d3e24c
import: --message/-m option 2024-01-18 12:41:44 -04:00
Joey Hess
162c772703
comment 2024-01-18 12:16:48 -04:00
Joey Hess
05026e2053
not a bug 2024-01-18 12:11:10 -04:00
Joey Hess
ccc64bc8ff
fixed 2024-01-18 11:56:03 -04:00
Joey Hess
517904b770
Merge branch 'master' of ssh://git-annex.branchable.com 2024-01-18 11:53:20 -04:00
imlew
38e79ba1d7 2024-01-17 14:32:12 +00:00
nobodyinperson
7cf0d88fa1 Mention annextimelog 2024-01-16 23:54:27 +00:00
jkniiv
92bb192c3a Added a comment 2024-01-16 23:23:27 +00:00
jkniiv
b9339d9f5d Added a comment: I can confirm 2024-01-16 22:28:22 +00:00
Joey Hess
285073712a
close 2024-01-16 14:38:49 -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
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
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
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
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
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
bcbad66cf3
comment 2024-01-02 14:08:01 -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
jgsuess@732b8c62c50d8595d7b1d58eea11e5019c2308b1
a874ffae45 Added a comment: wrong parameter used - repository is not a subcommand 2023-12-31 09:41:13 +00:00
jgsuess@732b8c62c50d8595d7b1d58eea11e5019c2308b1
121d68bed3 2023-12-31 09:35:16 +00:00
Lukey
1a3124c000 Added a comment 2023-12-30 11:35:22 +00:00
Lukey
6419936626 2023-12-30 10:51:29 +00:00
Lukey
b4dd62235a 2023-12-30 10:49:32 +00:00
Atemu
86d3e8d31a Added a comment 2023-12-29 17:06:37 +00:00
Joey Hess
a4a5ec6366
info: Added "annex sizes of repositories" table to the overall display
Thanks to previous work in 11cc9f1933,
this is almost entirely free, it only needs to do some additional map
lookups and math.

The strictness annotations keep the memory use from blowing up.

Sponsored-by: unqueued on Patreon
2023-12-29 12:09:30 -04:00
Joey Hess
e7a550a25b
plan 2023-12-29 10:48:12 -04:00
Joey Hess
49b50dd466
todo 2023-12-29 10:36:11 -04:00
psxvoid
92640e0801 Added a comment: Works: Try annex.queuesize and --not --in 2023-12-28 05:33:13 +00:00
Joey Hess
45f5271c7c
add news item for git-annex 10.20231227 2023-12-27 19:28:01 -04:00
nobodyinperson
bdcc2fc93e removed 2023-12-27 07:51:54 +00:00
nobodyinperson
90d967ce05 removed 2023-12-27 07:51:34 +00:00
nobodyinperson
ba85d3e165 Added a comment: Try annex.queuesize and --not --in 2023-12-27 07:51:00 +00:00
nobodyinperson
59b62e13f9 Added a comment: Try anex.queuesize and --not --in 2023-12-27 07:50:49 +00:00
nobodyinperson
10237a7c67 Added a comment: Try anex.queuesize and --not --in 2023-12-27 07:50:38 +00:00
psxvoid
a9a96d3a44 Added a comment: The issue with slow connection and huge repo - no batches 2023-12-27 06:08:59 +00:00
Joey Hess
8a3beabf35
use RawFilePath for opening sqlite databases
Fix a crash opening sqlite databases when run in a non-unicode locale,
with a remote that uses a non-unicode filepath. In that situation
converting to Text fails.

The fix needs git-annex to be built with persistent-sqlite 2.13.3.
Building against older versions still works, but that version is used when
building with stack.

Database.RawFilePath is a lot of code copied from persistent-sqlite and
lightly modified, since only 1 function in persistent-sqlite was made to
support RawFilePath. This is a bit of a pain, and I hope that
persistent-sqlite will eventually switch to using OsPath, allowing this
module to be removed from git-annex.

Sponsored-by: k0ld on Patreon
2023-12-26 18:31:52 -04:00
Joey Hess
6d789c9c81
sync, push: Avoid trying to send individual files to special remotes configured with importtree=yes exporttree=no
That will always fail. It already skipped doing this when exporttree=yes.
2023-12-26 15:56:58 -04:00
Atemu
f58d629b95 Added a comment 2023-12-25 13:37:58 +00:00
Atemu
2fe31d81d3 Added a comment 2023-12-25 13:03:50 +00:00
Atemu
98cfd88eaa Added a comment 2023-12-25 12:21:58 +00:00
Joey Hess
3b888369d3
comment 2023-12-20 15:56:36 -04:00
Joey Hess
d7ca716759
response 2023-12-20 13:12:56 -04:00
jkniiv
6c0259018a close bug as notabug due to user error 2023-12-19 23:12:21 +00:00
jkniiv
191dde2857 Added a comment: my report was actually a User Failure on my part 2023-12-19 23:02:16 +00:00
unqueued
09acfef0b6 Added a comment 2023-12-19 18:50:08 +00:00
lemondata
19edfc69a7 2023-12-19 00:17:00 +00:00
Joey Hess
9a67ed0f10
importtree: support preferred content expressions needing keys
When importing from a special remote, support preferred content expressions
that use terms that match on keys (eg "present", "copies=1"). Such terms
are ignored when importing, since the key is not known yet.

When "standard" or "groupwanted" is used, the terms in those
expressions also get pruned accordingly.

This does allow setting preferred content to "not (copies=1)" to make a
special remote into a "source" type of repository. Importing from it will
import all files. Then exporting to it will drop all files from it.

In the case of setting preferred content to "present", it's pruned on
import, so everything gets imported from it. Then on export, it's applied,
and everything in it is left on it, and no new content is exported to it.

Since the old behavior on these preferred content expressions was for
importtree to error out, there's no backwards compatability to worry about.
Except that sync/pull/etc will now import where before it errored out.
2023-12-18 16:27:59 -04:00
Joey Hess
0e161a7404
comment 2023-12-18 13:56:08 -04:00
Joey Hess
93e0810ad5
comment 2023-12-18 13:49:53 -04:00
Joey Hess
f79685f05e
fix a typo 2023-12-18 13:40:23 -04:00
Atemu
4dbbc45b4d Added a comment 2023-12-18 12:08:08 +00:00
nobodyinperson
526545bf48 Added a comment: numcopies is no the target 2023-12-17 19:04:41 +00:00
Atemu
43262855e2 2023-12-17 16:28:19 +00:00
oadams
7c108335eb Added a comment 2023-12-16 21:37:22 +00:00
aaa
b09c85bf1a Added a comment: Key permissions 2023-12-12 22:29:24 +00:00
jkniiv
986b9caa80 Added a comment 2023-12-12 19:25:17 +00:00
imlew
488ffce640 Added a comment 2023-12-12 13:36:21 +00:00
imlew
261bd2af55 Added a comment 2023-12-12 13:32:17 +00:00
nobodyinperson
7aebfd6068 Added a comment 2023-12-12 12:44:38 +00:00
imlew
bee99dc1a4 Added a comment 2023-12-12 11:56:06 +00:00
Joey Hess
86dbe9a825
migrate: support adding size back to URL keys
migrate: Support adding size to URL keys that were added with --relaxed, by
running eg: git-annex migrate --backend=URL foo

Since url keys cannot be generated, that used to fail. Make it notice that
the backend is not changed, and just get the size of the content.

Sponsored-by: Brock Spratlen on Patreon
2023-12-08 16:22:14 -04:00
Joey Hess
cb9bb2027c
update for distributed migration 2023-12-08 14:39:38 -04:00
Joey Hess
60d00fdd33
Merge branch 'master' of ssh://git-annex.branchable.com 2023-12-08 14:26:26 -04:00
Joey Hess
362a2808a5
split out todo for special remotes and close the main todo 2023-12-08 14:26:08 -04:00
Joey Hess
257f01729c
distributed migration for pull and sync --content
pull, sync: When operating on content, automatically hard link objects
that have been migrated.

Added annex.syncmigrations config that can be set to false to prevent
pull and sync from migrating object content.

I think that true is a good default for this config, because it avoids
users having to re-download migrated content or learning about migration.
But, some users will surely not like it, whether because it does take some
time (especially for the first git-annex branch scan when there is a long
history), or because they want to deal with it manually, or because their
filesystem doesn't support hard links and they don't want it to copy
objects.

Sponsored-by: k0ld on Patreon
2023-12-08 14:18:18 -04:00
Joey Hess
4ed71b34de
migrate --apply
And avoid migrate --update/--aply migrating when the new key was already
present in the repository, and got dropped. Luckily, the location log
allows distinguishing from the new key never having been present!

That is mostly useful for --apply because otherwise dropped files would
keep coming back until the old objects were reaped as unused. But it
seemed to make sense to also do it for --update. for consistency in edge
cases if nothing else. One case where --update can use it is when one
branch got migrated earlier, and we dropped the file, and now another
branch has migrated the same file.

Sponsored-by: Jack Hill on Patreon
2023-12-08 13:23:46 -04:00
jkniiv
9189c41dde report on the 'Production' build flag not producing a binary that passes the test suite 2023-12-08 16:38:12 +00:00
Joey Hess
62ce56c4ea
display filenames in migrate --update
Have to go to a lot of bother to find them, but I think it's worth it
for usability.

Sponsored-by: Luke T. Shumaker on Patreon
2023-12-07 18:00:09 -04:00
kolam
bae20e09cb Added a comment 2023-12-07 20:16:29 +00:00