Commit graph

43058 commits

Author SHA1 Message Date
hurlebouc
35083c490a Added a comment 2023-02-01 12:26:05 +00:00
markus.l2ll@17cbf3ea36ca05f481e573fd58be50dce9bf8ef9
6aab372119 Added a comment: same error, same fix 2023-02-01 06:44:22 +00:00
jpds
048e77a04c Added a comment 2023-01-31 22:28:16 +00:00
Joey Hess
bc6e606014
analysis 2023-01-31 15:58:21 -04:00
Joey Hess
3f5d8e2211
correct obsolete comment 2023-01-31 14:42:26 -04:00
Joey Hess
afd3cf4433
comment 2023-01-31 13:29:57 -04:00
Joey Hess
2e6a01dd4a
Merge branch 'master' of ssh://git-annex.branchable.com 2023-01-29 11:32:00 -04:00
Joey Hess
a524819ca1
ignore git-annex-build-deps files from dpkg-genbuilddeps
The autobuilders run that in the git-annex tree, and the command
does not clean up after itself.
2023-01-29 11:29:51 -04:00
hurlebouc
582dd16e63 2023-01-29 06:54:07 +00:00
Joey Hess
afc8608ef2
Merge branch 'master' of ssh://git-annex.branchable.com 2023-01-28 14:26:14 -04:00
Joey Hess
d079fb0578
work around ldd crash on arm64 autobuilder
This does mean it has to run ldd once per executable, which is actually
quite a number of times, so will be a bit slower.

Sponsored-by: Luke Shumaker on Patreon
2023-01-28 14:26:01 -04:00
jpds
dd923afc56 Added a comment 2023-01-28 00:00:13 +00:00
mih
363412f691 Added a comment: file:/// must be forced to file:// on windows 2023-01-27 09:19:10 +00:00
Joey Hess
a00513754b
support old libgcc1 name
Used in Debian jessie, which the i386ancient autobuilder uses.
2023-01-26 15:37:21 -04:00
Joey Hess
5df95a5879
add upper bounds on base version
hackage now rejects packages without this
2023-01-26 15:33:52 -04:00
Joey Hess
e726800dda
add upper bounds on Cabal version
hackage now rejects packages without this. My bet is any version of
cabal is going to work, I'm using the public API. Annoying.
2023-01-26 15:31:29 -04:00
Joey Hess
da74f05a1e
add news item for git-annex 10.20230126 2023-01-26 15:27:44 -04:00
Joey Hess
65167463aa
releasing package git-annex version 10.20230126 2023-01-26 15:27:32 -04:00
Joey Hess
8552b4e1a0
new linux autobuilder 2023-01-26 15:25:54 -04:00
Joey Hess
e5b6b7b5e3
Merge branch 'master' of ssh://git-annex.branchable.com 2023-01-26 14:54:02 -04:00
Joey Hess
8e054291a5
remove libghc-pcre-light-dev build dep
Unused build dep.

Also updated some other deps based on debian's fork of this file.
2023-01-26 14:53:19 -04:00
aca
ac824ff96b Added a comment: thanks 2023-01-25 14:01:08 +00:00
nobodyinperson
d8d5564e69 Added a comment: Thank you!! 2023-01-24 21:15:50 +00:00
Joey Hess
3a08c80dd8
improve wording 2023-01-24 14:11:32 -04:00
Joey Hess
b7c9d907e5
Merge branch 'master' of ssh://git-annex.branchable.com 2023-01-24 14:08:40 -04:00
Joey Hess
152be2948b
use transfer stages for copy --from
See commit e04a931439 for an explanation
of why move uses transfer stages for --from, but command stages for
--to. At the point of that commit, copy was actually already using
command stages for everything, so the commit was incorrect about
improving copy --to.

But, the same reasoning about --from applies to copy as to move; when
verification is not done incrementally, download and verification are
the main two stages. The cleanup stage for copy is even less work than
for move (it doesn't drop from the remote).

Sponsored-by: Dartmouth College's DANDI project
2023-01-24 14:07:49 -04:00
Joey Hess
579d9b60c1
improve concurrency of move/copy --from --to
Use separate stages for download and upload. In the common case where
it downloads the file from one remote and then uploads to the other,
those are by far the most expensive operations, and there's a decent
chance the two remotes bottleneck on different resources.

Suppose it's being run with -J2 and a bunch of 10 mb files. Two threads
will be started both downloading from the src remote. They will probably
finish at the same time. Then two threads will be started uploading to
the dst remote. They will probably take the same time as well. Before
this change, it would alternate back and forth, bottlenecking on src and dst.
With this change, as soon as the two threads start uploading to dst, two
more threads are able to start, downloading from src. So bandwidth to
both remotes is saturated more often.

Other commands that use transferStages only send in one direction at a
time. So the worker threads for the other direction will sit idle, and
there will be no change in their behavior.

Sponsored-by: Dartmouth College's DANDI project
2023-01-24 13:59:39 -04:00
jpds
50af8467e3 Added a comment 2023-01-24 15:55:36 +00:00
nobodyinperson
4edae1430a Added a comment 2023-01-23 22:55:11 +00:00
nobodyinperson
c2c405d45a Added a comment 2023-01-23 22:38:28 +00:00
Joey Hess
57987ed2cd
update 2023-01-23 18:08:55 -04:00
Joey Hess
62f8a26dd9
Merge branch 'fromto' 2023-01-23 18:01:57 -04:00
Joey Hess
2a9999f5f1
Merge branch 'master' of ssh://git-annex.branchable.com 2023-01-23 18:01:12 -04:00
Joey Hess
1ee72de32e
done 2023-01-23 17:57:15 -04:00
Joey Hess
77266e46dd
fix behavior of copy --from --to
Sponsored-by: Dartmouth College's DANDI project
2023-01-23 17:55:16 -04:00
Joey Hess
3585481470
Merge branch 'master' into fromto 2023-01-23 17:44:44 -04:00
Joey Hess
acc3f6211f
finishing up move --from --to
Lock the local content for drop after getting it from src, to prevent another
process from using the local content as a copy and dropping it from src,
which would prevent dropping the local content after sending it to dest.

Support resuming an interrupted move that downloaded the content from
src, leaving the local content populated. In this case, the location log
has not been updated to say the content is present locally, so we can
assume that it's resuming and go ahead and drop the local content after
sending it to dest.

Note that if a `git-annex get` is being ran at the same time as a
`git-annex move --from --to`, it may get a file just before the move
processes it. So the location log has not been updated yet, and the move
thinks it's resuming. Resulting in local copy being dropped after it's
sent to the dest. This race is something we'll just have to live with,
it seems.

I also gave up on the idea of checking if the location log had been updated
by a `git-annex get` that is ran at the same time. That wouldn't work, because
the location log is precached in the seek stage, so reading it again after
sending the content to dest would not notice changes made to it, unless the cache
were invalidated, which would slow it down a lot. That idea anyway was subject
to races where it would not detect the concurrent `git-annex get`.

So concurrent `git-annex get` will have results that may be surprising.
To make that less surprising, updated the documentation of this feature to
be explicit that it downloads content to the local repository
temporarily.

Sponsored-by: Dartmouth College's DANDI project
2023-01-23 17:43:48 -04:00
Joey Hess
f5f799f17e
fully working move --from --to (not release quality)
When the destination already has a copy, it behaves the same as
drop --from really, but display it as a move and implement it
reusing the factored out code from fromPerform.

(Note that willDropMakeItWorse never returns DropAllowed in that
situation, because it's told that dest has a copy. So numcopies is
always checked.)

And when only the source and not the local repo or destination have a
copy, do the full copy from source to local, then copy from local to
dest, then drop from local, then drop from source dance.

This is complicated by fromPerform being hardcoded to assume there is a
local copy, but the local copy has already been dropped. That's why
it uses cleanupfromsrc RemoveNever to avoid the code that makes that
assumption, and finishes with a call to dropfromsrc.

And, since the location log has not yet been updated, checking numcopies
was not working, until I added UnVerifiedRemote dest to the list of
things to check.

This is not yet quite mergeable though. There are two things in the
comment above fromToPerform that are not implemented yet: Checking the
location log before dropping the local copy, and locking the temporary
local copy for drop.

Sponsored-by: Dartmouth College's DANDI project
2023-01-23 16:12:33 -04:00
Joey Hess
1abd457e98
push location log updating up to callers of download
Prep for move --to --from, which needs to download from a src repo
without updating the location log for the local repo, before sending the
content on to the dest repo.

Note that caller of download' already update the log themselves.
See previous commit a422a056f2
that pushed it up to download from getViaTmpFrom.

(Also removed in passing a debug print + readline that I accidentially
committed last week on this branch.)

Sponsored-by: Dartmouth College's DANDI project
2023-01-23 13:47:41 -04:00
Joey Hess
8c349b8802
implement move --from --to when there is a local copy already
This is rather trivial, since it does not need to temporarily get the
local copy.

Added fromPerform' to handle the situation where the local copy
is dropped by another process during the copy to the dest. This avoids
ever re-downloading the local copy before dropping from the src.

Sponsored-by: Dartmouth College's DANDI project
2023-01-23 13:17:35 -04:00
Joey Hess
05b2ae30f0
update 2023-01-23 12:45:01 -04:00
meribold
aad9581d11 Fix typo in heading that seems to result in git-annex-drop not showing up in man -k output 2023-01-22 15:25:35 +00:00
Joey Hess
45c338204f
Merge branch 'master' of ssh://git-annex.branchable.com 2023-01-20 11:23:24 -04:00
Joey Hess
5645017a03
comment 2023-01-20 11:23:04 -04:00
Joey Hess
6f95f821cb
remove --fast from man page
git-annex move does not actually behave any differently with --fast than
without it. (git-annex copy does)

(cherry picked from commit f74904ee2c)
2023-01-20 11:11:31 -04:00
Joey Hess
a46c385aec
move/copy: started implementing --from src --to dest
This is not in a usable state, but I have a possible plan for how to do
it.

Sponsored-by: Dartmouth College's DANDI project
2023-01-20 11:10:38 -04:00
nobodyinperson
f14346bf07 2023-01-20 10:29:33 +00:00
jpds
73cc3fcd12 Added a comment 2023-01-19 16:28:19 +00:00
jpds
dce215e11a Added a comment 2023-01-19 15:09:01 +00:00
jpds
c071ea267d Added a comment 2023-01-18 22:57:58 +00:00