Commit graph

44723 commits

Author SHA1 Message Date
TTTTAAAx
f332234c84 2024-05-22 06:27:30 +00:00
nobodyinperson
1a2bd28a52 Added a comment 2024-05-22 05:02:49 +00:00
datamanager
4b64964072 Added a comment 2024-05-21 23:32:34 +00:00
datamanager
01a085c27d Added a comment 2024-05-21 23:27:17 +00:00
datamanager
d5ab807b55 Added a comment: sourcehut plays nicely 2024-05-21 22:39:28 +00:00
datamanager
5a5a4452f8 Scrub my identifying information! 2024-05-21 22:36:22 +00:00
Joey Hess
5fb307f1c5
comment 2024-05-21 17:47:55 -04:00
Joey Hess
aff6c12949
muh2 2024-05-21 17:43:09 -04:00
Joey Hess
6fe63e4615
muh 2024-05-21 17:42:16 -04:00
Joey Hess
6c085cea9f
Merge branch 'master' of ssh://git-annex.branchable.com 2024-05-21 17:32:54 -04:00
Joey Hess
938e714a11
bleh 2024-05-21 17:32:49 -04:00
Joey Hess
10a60183e1
guard pushEmpty 2024-05-21 12:12:44 -04:00
Joey Hess
0041012498
guard pushEmpty 2024-05-21 12:09:45 -04:00
Joey Hess
969da25d66
simplify 2024-05-21 12:08:34 -04:00
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
be535caffc
fix deleting old keys in empty push 2024-05-21 11:53:03 -04:00
Joey Hess
7f768aef77
remove debug 2024-05-21 11:46:14 -04:00
Joey Hess
dc083bf8c8
fix storing outManifest 2024-05-21 11:44:47 -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
5f4ad2a5de
refactor 2024-05-21 09:51:19 -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
57b303148b
remove outdated note 2024-05-20 14:00:29 -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
Joey Hess
4ce70533e9
don't delete manifest from remote on pushEmpty
I missed this in commit 3f848564ac,
the absence of a manifest prevents fetching.
2024-05-20 13:01:13 -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
adb564a48e
avoid using dropEnd
That needs bytestring-0.11.1.0 and several builds don't have that.
2024-05-16 09:52:34 -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
434a88c368
Merge branch 'git-remote-annex' 2024-05-15 17:57:50 -04:00
Joey Hess
768cdee461
testremote: Really fsck downloaded objects
8844372c23 exposted a bug in testremote, it
was passing the serialized key, not the object file, to be checksummed.
2024-05-15 17:57:27 -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