Commit graph

34247 commits

Author SHA1 Message Date
Joey Hess
14c79373c4
update 2024-05-21 12:05:44 -04:00
Joey Hess
be8de26b68
Merge branch 'master' of ssh://git-annex.branchable.com 2024-05-21 11:53:34 -04:00
Joey Hess
b3d7ae51f0
fix edge case where git-annex branch does not have config for enabled special remote
One way this could happen is cloning an empty special remote.
A later fetch would then fail.
2024-05-21 11:27:49 -04:00
Joey Hess
3e7324bbcb
only delete bundles on pushEmpty
This avoids some apparently otherwise unsolveable problems involving
races that resulted in the manifest listing bundles that were deleted.

Removed the annex-max-git-bundles config because it can't actually
result in deleting old bundles. It would still be possible to have a
config that controls how often to do a full push, which would avoid
needing to download too many bundles on clone, as well as needing to
checkpresent too many bundles in verifyManifest. But it would need a
different name and description.
2024-05-21 11:13:27 -04:00
Joey Hess
f544946b09
update 2024-05-21 10:20:30 -04:00
Joey Hess
f191f52343
force pushing also does a full push 2024-05-21 10:10:49 -04:00
Joey Hess
b042dfeb0e
emptying pushes only delete 2024-05-21 09:52:35 -04:00
Joey Hess
5d40759470
formalize problem description 2024-05-21 09:35:46 -04:00
nobodyinperson
1ab1ea0bcc Added a comment 2024-05-21 13:25:54 +00:00
datamanager
2135514bc7 Added a comment: Not git's fault, but probably your forge's 2024-05-21 13:12:23 +00:00
nobodyinperson
04aa259cfa Added a comment: Probably not git annex related, but a new git 'feature' 2024-05-21 10:49:58 +00:00
nobodyinperson
f0923985aa Added a comment: Seeing this for the first time today as well 2024-05-21 10:41:08 +00:00
datamanager
d94ce5319b A correction, and small update 2024-05-21 01:16:50 +00:00
datamanager
6280fac98b Initial thread posting 2024-05-21 01:16:02 +00:00
Joey Hess
644ed44ec1
Merge branch 'master' of ssh://git-annex.branchable.com 2024-05-20 15:52:44 -04:00
Joey Hess
3a38520aac
avoid interrupted push leaving remote without a manifest
Added a backup manifest key, which is used if the main manifest key is
not present. When uploading a new Manifest, it makes sure that it never
drops one key except when the other key is present.

It's entirely possible for the two manifest keys to get out of sync, due
to races. The main one wins when it's present, it is possible for the
main one being dropped to expose the backup one, which has a different
push recorded.
2024-05-20 15:41:09 -04:00
Joey Hess
594ca2fd3a
update 2024-05-20 14:52:06 -04:00
Joey Hess
34a6db4f15
improve recovery from interrupted push
On push, first try to drop all outManifest keys listed in the current
manifest file, which resumes from an interrupted push that didn't
get a chance to delete those keys.

The new manifest gets its outManifest populated with the keys that were
in the old manifest, plus any of the keys that were unable to be
dropped.

Note that it would be possible for uploadManifest to skip dropping old
keys at all. The old keys would get dropped on the next push. But it
seems better to delete stuff immediately rather than waiting. And the
extra work is limited to push and typically is small.

A remote where dropKey always fails will result in an outManifest that
grows longer and longer. It would be possible to check if the remote
has appendonly = True and avoid populating the outManifest. Of course,
an appendonly remote will grow with every git push anyway. And currently
only Remote.GitLFS sets that, which can't be used as a git-remote-annex
remote anyway.
2024-05-20 13:49:45 -04:00
btester4
cdcf558170 2024-05-20 07:47:09 +00:00
nobodyinperson
034d1a80ba Added a comment: Importing specific directories from sdcard and internal storage 2024-05-19 08:08:46 +00:00
yarikoptic
cb952e762d Added a comment 2024-05-16 22:22:50 +00:00
yarikoptic
3337236bd9 initial report about multiple UUIDs and names for the same remote 2024-05-16 22:17:49 +00:00
Joey Hess
7c7136b6b9
devblog 2024-05-16 13:23:36 -04:00
Joey Hess
ce60211881
add incremental vs full push race to todo
with plan to deal with it
2024-05-16 09:37:28 -04:00
Joey Hess
468de43d66
Merge branch 'master' into git-remote-annex 2024-05-15 17:49:12 -04:00
Joey Hess
b1b6e35d4c
reorg todo 2024-05-15 17:41:55 -04:00
Joey Hess
adcebbae47
clean up git-remote-annex git-annex branch handling
Implemented alternateJournal, which git-remote-annex
uses to avoid any writes to the git-annex branch while setting up
a special remote from an annex:: url.

That prevents the remote.log from being overwritten with the special
remote configuration from the url, which might not be 100% the same as
the existing special remote configuration.

And it prevents an overwrite deleting of other stuff that was
already in the remote.log.

Also, when the branch was created by git-remote-annex, only delete it
at the end if nothing else has been written to it by another command.
This fixes the race condition described in
797f27ab05, where git-remote-annex
set up the branch and git-annex init and other commands were
run at the same time and their writes to the branch were lost.
2024-05-15 17:33:38 -04:00
Joey Hess
d24d8870c5
todo 2024-05-15 14:33:13 -04:00
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