Commit graph

29160 commits

Author SHA1 Message Date
Joey Hess
53fd1564b1
improve synopsis 2020-12-17 12:51:49 -04:00
Joey Hess
7c7486a45f
response 2020-12-17 12:47:07 -04:00
Joey Hess
c52550a6a8
Merge branch 'master' of ssh://git-annex.branchable.com 2020-12-17 12:45:07 -04:00
Joey Hess
00352ebe37
man page improvement 2020-12-17 12:17:58 -04:00
kyle
54dc20fb74 Added a comment 2020-12-17 16:06:44 +00:00
dscheffy@c203b7661ec8c1ebd53e52627c84536c5f0c9026
3f95fa2a3a Added a comment: How do I man annex config options? 2020-12-17 10:39:40 +00:00
dscheffy@c203b7661ec8c1ebd53e52627c84536c5f0c9026
a2d5fd0aa6 2020-12-16 18:53:21 +00:00
dscheffy@c203b7661ec8c1ebd53e52627c84536c5f0c9026
05ee618d11 Added a comment: Duplicate content creates frustrating cycles 2020-12-16 17:10:52 +00:00
jwodder
cf43362cae Add post metadata 2020-12-16 16:03:55 +00:00
jwodder
ad180cedc7 2020-12-16 16:03:04 +00:00
Joey Hess
2abda21123
update 2020-12-15 16:35:06 -04:00
Joey Hess
117d270bb4
comment 2020-12-15 16:34:16 -04:00
Joey Hess
f29d49d478
check Remote.hasKeyCheap again
In cd1676d604, it stopped using that to avoid surprising behavior
when the location log and remote content were out of sync.
But, it seems that may have changed some behavior users relied on as
well, and also Remote.hasKeyCheap should be faster than checking then
location log.

So, try Remote.hasKeyCheap first, and only if it does not have the key,
fall back to checking the location log. If the location log still thinks
it's present, go ahead and try to get it, so the user will see a failure
rather than silently skipping a file what whereis says is on the remote.

This does make slightly slower the case where the remote does not have
the key, and location log and Remote.hasKeyCheap agree, since it now
checks both. But only 1 stat slower.
2020-12-15 14:44:00 -04:00
Joey Hess
c2a5f3c44f
followup 2020-12-15 14:05:54 -04:00
Joey Hess
3d49e16a10
comment 2020-12-15 13:21:15 -04:00
Joey Hess
4c1461932f
comment 2020-12-15 13:17:31 -04:00
Joey Hess
4488bbd540
response 2020-12-15 13:03:06 -04:00
Joey Hess
5ae0e07ad0
Merge branch 'master' of ssh://git-annex.branchable.com 2020-12-15 12:40:07 -04:00
Joey Hess
6b13574827
Windows: include= and exclude= containing '/' will also match filenames that are written using '\'
And vice-versa, but it's better to use '/' for portability.

Notably, standardPreferredContent contains "archive/*" and that might not
match if the filename ends up coming in with the slashes the other way
around.
2020-12-15 12:39:34 -04:00
yarikoptic
07b8dc4a8b Added a comment 2020-12-15 16:18:39 +00:00
Joey Hess
e914cb0777
Merge branch 'master' of ssh://git-annex.branchable.com 2020-12-15 12:12:29 -04:00
Joey Hess
6c890d62f6
initremote: Prevent enabling encryption with exporttree=yes/importtree=yes
I do think this was a reversion, but I have not tracked back to what
version. While involving the remote config, it's not the same class of
problems that I kept having to chase down for a while after the remote
config parser reworking.
2020-12-15 12:08:08 -04:00
Joey Hess
74c1e0660b
propagate git-annex -c on to transferrer child process
git -c was already propagated via environment, but need this for
consistency.

Also, notice it does not use gitAnnexChildProcess to run the
transferrer. So nothing is done about avoid it taking the
pid lock. It's possible that the caller is already doing something that
took the pid lock, and if so, the transferrer will certianly fail,
since it needs to take the pid lock too. This may prevent combining
annex.stalldetection with annex.pidlock, but I have not verified it's
really a problem. If it was, it seems git-annex would have to take
the pid lock when starting a transferrer, and hold it until shutdown,
or would need to take pid lock when starting to use a transferrer,
and hold it until done with a transfer and then drop it. The latter
would require starting the transferrer with pid locking disabled for the
child process, so assumes that the transferrer does not do anyting that
needs locking when not running a transfer.
2020-12-15 11:36:25 -04:00
bb02f2c1-f8f2-4781-8655-e819a0d08f20@d25da75868bc96920418ffd199264ca9d07e0de2
5699513089 Editing files in tag / view branch 2020-12-15 07:26:18 +00:00
jkniiv
8bfc2bbe0a Added a comment: yay, it's working now! :) 2020-12-15 04:46:38 +00:00
Joey Hess
8b248d84fb
comment 2020-12-14 17:43:48 -04:00
Joey Hess
9244874304
Merge branch 'master' of ssh://git-annex.branchable.com 2020-12-14 17:42:25 -04:00
Joey Hess
01527b21d8
add key to FileInfo
MatchingKey is not the thing to use when matching on actual worktreee
files.

Fix reversion in 8.20201116 that made include= and exclude= in
preferred/required content expressions match a path relative to the current
directory, rather than the path from the top of the repository.
2020-12-14 17:42:02 -04:00
yarikoptic
65ab8a2163 Added a comment 2020-12-14 20:59:06 +00:00
Joey Hess
fac5ccb2e2
add USE_SYSTEM_LIBS=1 for osxapp build 2020-12-14 15:34:27 -04:00
Joey Hess
9da06e1f75
Merge branch 'master' of ssh://git-annex.branchable.com 2020-12-14 14:59:03 -04:00
Joey Hess
75acf5f440
improve some edge cases around partial initialization
* Guard against running in a repo where annex.uuid is set but
  annex.version is set, or vice-versa.
* Avoid autoinit when a repo does not have annex.version or annex.uuid
  set, but has a git-annex objects directory, suggesting it was used
  by git-annex before.
2020-12-14 13:17:43 -04:00
yarikoptic
ef55021fe1 Added a comment 2020-12-14 14:07:47 +00:00
jkniiv
ec1202871d 2020-12-14 05:07:20 +00:00
Joey Hess
9aaab02e44
add 2020-12-13 18:50:35 -04:00
adina.wagner@2a4cac6443aada2bd2a329b8a33f4a7b87cc8eff
5a4aa4ae0c Added a comment 2020-12-12 20:32:05 +00:00
muks@6bded6d879d80c43cdf4893fabb785876eea0a7b
0e8cf6a1e9 Added a comment 2020-12-12 10:35:07 +00:00
Joey Hess
5c7392b942
Merge branch 'master' of ssh://git-annex.branchable.com 2020-12-11 18:31:09 -04:00
Joey Hess
3e608dfc13
mention annex.stalldetection and don't recommend too infrequent progress updates 2020-12-11 18:26:24 -04:00
kyle
c3e0856b45 Added a comment 2020-12-11 20:56:04 +00:00
Joey Hess
3c76a31b15
response and related todo 2020-12-11 16:21:16 -04:00
Joey Hess
e6692b66f1
remove
I need to think about this some more, not clear if it's a todo
item specific to stalldetection at all. Remotes with this behavior
also show no progress when run with -J. And some other remotes don't
update any progress meters at all, eg adb is that way and so are hook
remotes and of course external remotes don't have to send progress info.
2020-12-11 15:49:39 -04:00
Joey Hess
fadf47557f
note 2020-12-11 15:48:03 -04:00
Joey Hess
90eadbce49
close 2020-12-11 15:45:55 -04:00
Joey Hess
d3f78da0ed
propagate signals to the transferrer process group
Done on unix, could not implement it on windows quite.

The signal library gets part of the way needed for windows.
But I had to open https://github.com/pmlodawski/signal/issues/1 because
it lacks raiseSignal.

Also, I don't know what the equivilant of getProcessGroupIDOf is on
windows. And System.Process does not provide a way to send any signal to
a process group except for SIGINT.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
2020-12-11 15:32:00 -04:00
Joey Hess
79c765b727
meant to close this earlier 2020-12-11 14:25:54 -04:00
Joey Hess
e1cf8bd35c
Merge branch 'master' of ssh://git-annex.branchable.com 2020-12-11 12:53:14 -04:00
Joey Hess
095cdc7e83
extend transferrer protocol to send progress bar total size updates
New protocol is not back-compat with old one, but it's never been
released so that's ok.
2020-12-11 12:42:28 -04:00
Joey Hess
263fd1d459
ugh 2020-12-11 11:51:46 -04:00
Joey Hess
a422a056f2
make getViaTmpFrom no longer update location log
All callers adjusted to update it themselves.

In Command.ReKey, and Command.SetKey, the cleanup action already did,
so it was updating the log twice before.

This fixes a bug when annex.stalldetection is set, as now
Command.Transferrer can skip updating the location log, and let it be
updated by the calling process.
2020-12-11 11:50:13 -04:00
kyle
e0780877d7 Added a comment 2020-12-11 15:29:26 +00:00
Joey Hess
a6ed23b82f
todo 2020-12-11 11:09:19 -04:00
muks@6bded6d879d80c43cdf4893fabb785876eea0a7b
16f2fcd778 Added a comment 2020-12-11 02:18:30 +00:00
muks@6bded6d879d80c43cdf4893fabb785876eea0a7b
cf4a669d86 2020-12-11 01:56:38 +00:00
yarikoptic
e0965b831c Added a comment 2020-12-10 21:55:20 +00:00
Joey Hess
108c7d96dd
comment 2020-12-10 17:52:26 -04:00
Joey Hess
8c0ff6b8cd
Merge branch 'master' of ssh://git-annex.branchable.com 2020-12-10 17:47:22 -04:00
Joey Hess
d3c11eac5d
2 bugs involving new stalldetection feature 2020-12-10 17:46:58 -04:00
yarikoptic
c2071567ca Initial report on export -J6 to S3 failing due to "transfer already in progress" 2020-12-10 21:16:56 +00:00
Joey Hess
38e0e2e471
bug 2020-12-10 13:09:57 -04:00
anarcat
6b3880b539 2020-12-10 15:53:37 +00:00
Joey Hess
714e665c92
reorg 2020-12-10 11:25:02 -04:00
Joey Hess
1a361dca37
devblog 2020-12-09 16:20:57 -04:00
Joey Hess
677003a6df
rename helper
More consistent name with TransferrerPool
2020-12-09 13:24:24 -04:00
Joey Hess
3fa2bc2eed
rename back, there were links to this 2020-12-09 13:14:54 -04:00
Joey Hess
a8cdcf528e
fix build failure by avoiding refutable pattern match 2020-12-09 12:43:38 -04:00
Joey Hess
4bce767ca6
Merge branch 'master' of ssh://git-annex.branchable.com 2020-12-09 12:35:17 -04:00
Joey Hess
05c0543e8e
move new interface to git-annex transfer
This is to avoid breakage when upgrading or downgrading git-annex with a
process running that uses the interface. It's better to keep the
compatability code for a few years than worry about such breakage.

This commit was sponsored by Brett Eisenberg on Patreon.
2020-12-09 12:33:56 -04:00
jwodder
30defd434e Correct author 2020-12-09 14:11:07 +00:00
jwodder
6c0bd08b9d 2020-12-09 14:09:47 +00:00
Joey Hess
b9c1aa9258
reword 2020-12-08 15:55:00 -04:00
Joey Hess
592e0ada16
update 2020-12-08 15:46:09 -04:00
Joey Hess
d81bf4e018
Merge branch 'message-serialization' 2020-12-08 15:23:43 -04:00
Joey Hess
41f2c308ff
stall detection is working
New config annex.stalldetection, remote.name.annex-stalldetection, which
can be used to deal with remotes that stall during transfers, or are
sometimes too slow to want to use.

This commit was sponsored by Luke Shumaker on Patreon.
2020-12-08 15:22:18 -04:00
Joey Hess
09ed9f7d1f
reminder for later 2020-12-08 15:20:05 -04:00
Joey Hess
c4d489f7d4
add todo
Not going to do this yet, so remember for later.
2020-12-08 15:17:35 -04:00
Joey Hess
9c4ec1140e
Merge branch 'master' of ssh://git-annex.branchable.com 2020-12-07 16:56:41 -04:00
Joey Hess
2cb3f3a99d
annex.stalldetection docs
Not implemented yet.

This commit was sponsored by Svenne Krap on Patreon.
2020-12-07 16:55:24 -04:00
Joey Hess
d616881057
devblog 2020-12-07 16:54:57 -04:00
yarikoptic
d5bfa9bdf9 added datalad project tag 2020-12-07 18:23:28 +00:00
jwodder
7db3832e37 2020-12-07 17:36:34 +00:00
Joey Hess
a0e1650a15
Merge branch 'master' into message-serialization 2020-12-07 13:33:14 -04:00
Lukey
a1b2271713 Added a comment 2020-12-05 13:07:31 +00:00
Joey Hess
74a5a604bf
reword 2020-12-04 23:52:33 -04:00
Joey Hess
c61a024f59
correction 2020-12-04 23:49:23 -04:00
Joey Hess
0c15d90076
typo 2020-12-04 23:44:49 -04:00
Joey Hess
9e85c95ebe
clarify 2020-12-04 23:43:14 -04:00
Joey Hess
dcca24dc95
simplify 2020-12-04 23:41:44 -04:00
Joey Hess
55c5df5162
Merge branch 'master' of ssh://git-annex.branchable.com 2020-12-04 23:38:42 -04:00
Joey Hess
c9fbf00b96
update 2020-12-04 23:36:52 -04:00
eric.w@eee65cd362d995ced72640c7cfae388ae93a4234
73e8b79cce 2020-12-05 00:43:43 +00:00
eric.w@eee65cd362d995ced72640c7cfae388ae93a4234
7e58bc8e70 2020-12-05 00:42:42 +00:00
kyle
d1ffd246bf bug: alwayscommit=false on windows 2020-12-04 21:05:25 +00:00
Joey Hess
efbc77f505
reword 2020-12-04 15:46:46 -04:00
Joey Hess
fa082f1f4f
fix link 2020-12-04 15:45:37 -04:00
Joey Hess
5fc60b8bd9
devblog 2020-12-04 15:43:03 -04:00
Joey Hess
2878ab4566
Merge branch 'master' of ssh://git-annex.branchable.com 2020-12-04 15:01:12 -04:00
Joey Hess
27f221cd7e
update 2020-12-04 15:00:49 -04:00
Joey Hess
438d5be1f7
support prompt in message serialization
That seems to be the last thing needed for message serialization.
Although it's only used in the assistant currently, so hard to tell if I
forgot something.

At this point, it should be possible to start using transferkeys
when performing transfers, which will allow killing a transferkeys
process if a transfer times out or stalls. But that's for another day.

This commit was sponsored by Ethan Aubin.
2020-12-04 14:54:09 -04:00
Joey Hess
581792bcf0
Merge branch 'master' into message-serialization 2020-12-04 13:55:49 -04:00
Joey Hess
4d9f416949
idea 2020-12-04 00:00:40 -04:00
Joey Hess
bf76ae2c90
mention new branch 2020-12-03 16:29:22 -04:00
Joey Hess
cad147cbbf
new protocol for transferkeys, with message serialization
Necessarily threw out the old protocol, so if an old git-annex assistant
is running, and starts a transferkeys from the new git-annex, it would
fail. But, that seems unlikely; the assistant starts up transferkeys
processes and then keeps them running. Still, may need to test that
scenario.

The new protocol is simple read/show and looks like this:

TransferRequest Download (Right "origin") (Key {keyName = "f8f8766a836fb6120abf4d5328ce8761404e437529e997aaa0363bdd4fecd7bb", keyVariety = SHA2Key (HashSize 256) (HasExt True), keySize = Just 30, keyMtime = Nothing, keyChunkSize = Nothing, keyChunkNum = Nothing}) (AssociatedFile (Just "foo"))
TransferOutput (ProgressMeter (Just 30) (MeterState {meterBytesProcessed = BytesProcessed 0, meterTimeStamp = 1.6070268727892535e9}) (MeterState {meterBytesProcessed = BytesProcessed 30, meterTimeStamp = 1.6070268728043e9}))
TransferOutput (OutputMessage "(checksum...) ")
TransferResult True

Granted, this is not optimally fast, but it seems good enough, and is
probably nearly as fast as the old protocol anyhow.

emitSerializedOutput for ProgressMeter is not yet implemented. It needs
to somehow start or update a progress meter. There may need to be a new
message that allocates a progress meter, and then have ProgressMeter
update it.

This commit was sponsored by Ethan Aubin
2020-12-03 16:21:20 -04:00
rshalaev@3e2130a1e3cb0aaff7dd80aba7548ad9be0ea2d4
c82048ba79 Added a comment: Windows 10 NTFS hardlinks not working 2020-12-03 11:43:08 +00:00
Lukey
b0320b1108 Added a comment 2020-12-03 07:38:31 +00:00
rshalaev@3e2130a1e3cb0aaff7dd80aba7548ad9be0ea2d4
894d7c07aa removed 2020-12-03 01:44:01 +00:00
rshalaev@3e2130a1e3cb0aaff7dd80aba7548ad9be0ea2d4
08c6ffa117 Added a comment 2020-12-03 01:43:20 +00:00
rshalaev@3e2130a1e3cb0aaff7dd80aba7548ad9be0ea2d4
c9b33c553d Added a comment 2020-12-03 01:43:00 +00:00
Joey Hess
1858b65d88
design work 2020-12-02 14:31:24 -04:00
falsifian
cf649b5753 Added a comment 2020-12-02 16:52:10 +00:00
basak
439e3f8e24 Added a comment 2020-12-02 02:12:59 +00:00
https://launchpad.net/~barthelemy
6360c0f53c Added a comment 2020-12-01 21:55:31 +00:00
Joey Hess
0540e987b3
improve p2p protocol handling of requested object not available
Avoid spurious "verification of content failed" message when downloading
content from a ssh or tor remote fails due to the remote no longer having a
copy of the content.

The P2P protocol already handled this case by sending DATA 0, followed by
VALID. But VALID was not really right, because the data is not the
requested data. So, send DATA 0, followed by INVALID. Old versions of
git-annex handle INVALID the same as VALID in this case. Now new versions
avoid displaying an incorrect message.

It would be better for the P2P protocol to have a different way to indicate
this, like perhaps sending INVALID without DATA. But that would be a
breaking change and need a new protocol verison. Since INVALID already is
part of the protocol and already needs to be handled, using it for this
special case too seems ok, and avoids the complication of another protocol
version.

This commit was sponsored by Jochen Bartl on Patreon.
2020-12-01 16:05:55 -04:00
Joey Hess
92136284b1
avoid hGetMetered 0 closing the handle
This is an edge case, which happened to be triggered by the P2P protocol
seeing DATA 0. When reading 0 bytes, getting an empty string does
not mean the handle has reached EOF.

I verified there was in fact a bug, where get of an empty file followed
by another file would get the empty file and then fail
with "handle is closed". This fixes it.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
2020-12-01 15:39:22 -04:00
Joey Hess
41bb873319
comment 2020-12-01 12:59:10 -04:00
falsifian
a9ade9e6f8 2020-11-30 20:35:21 +00:00
dzhu
17ce86e2d3 Added a comment 2020-11-30 19:10:54 +00:00
Joey Hess
3416997174
remove digression 2020-11-30 13:31:02 -04:00
Joey Hess
ee86972f66
thought 2020-11-30 13:27:45 -04:00
Joey Hess
e843334a40
comment 2020-11-30 13:13:56 -04:00
Joey Hess
7776677a5f
Fix hang on shutdown of external special remote using ASYNC protocol extension.
Reversion introduced in version 8.20201007, one release after the 1st
release with the extension.

Surprisingly, hClose can hang if another thread is reading from the
handle. This is because it uses takeMVar.

The use of cancel here does mean that, if receiveMessageAddonProcess
or Remote.External.AsyncExtension.receiveloop allocated some resource in
a non-async-exception safe way, they might not get a chance to clean it up.
They do not appear to, and anyway, this only happens when git-annex is
shutting down, so any recource that did leak would not be a problem.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
2020-11-30 13:04:02 -04:00
Joey Hess
1dc802a445
comment 2020-11-30 12:44:40 -04:00
Joey Hess
267bdaaac1
close 2020-11-30 12:28:20 -04:00
kyle
8d7b14e2f3 Added a comment 2020-11-30 15:18:58 +00:00
Lukey
7081811757 Added a comment 2020-11-30 07:36:41 +00:00
filipg@7e6a4a5ad3a393bcea174bf8fd6664deffc76c25
390411a835 Added a comment 2020-11-30 07:20:35 +00:00
dzhu
3be9dc6e1d fix typo (CONFIGSEND -> CONFIGEND) 2020-11-30 00:11:16 +00:00
Lukey
878dc46acd Added a comment 2020-11-29 20:57:25 +00:00
filipg@7e6a4a5ad3a393bcea174bf8fd6664deffc76c25
9804a0d0a6 2020-11-29 20:13:14 +00:00
Lukey
36b4a253e7 2020-11-29 19:06:37 +00:00
Lukey
7e86da7701 2020-11-29 19:04:34 +00:00
Lukey
e206f36361 Added a comment 2020-11-29 15:37:21 +00:00
dzhu
4383ab5a80 2020-11-29 02:36:23 +00:00
tcurdt@9d3ccb47a593bf70ac547ddae8fa634048b87ddf
a68c62b7a6 Added a comment 2020-11-28 16:49:47 +00:00
Lukey
547f087467 Added a comment 2020-11-27 18:46:04 +00:00
Joey Hess
c325338df2
add news item for git-annex 8.20201127 2020-11-27 12:57:31 -04:00
tcurdt@9d3ccb47a593bf70ac547ddae8fa634048b87ddf
a314537cd1 2020-11-27 14:13:00 +00:00
Ilya_Shlyakhter
41f9926b79 fix typo in git-annex command to create public S3 remote 2020-11-25 20:31:23 +00:00
Joey Hess
79135e4a92
close 2020-11-25 06:25:58 -04:00
jkniiv
145c343b4a 2020-11-25 09:19:03 +00:00
jkniiv
c623288288 2020-11-25 07:38:17 +00:00
gueux
87e6f09ce3 Added a comment 2020-11-24 21:07:37 +00:00
Joey Hess
84377c9b75
Merge branch 'master' of ssh://git-annex.branchable.com 2020-11-24 15:00:39 -04:00
Joey Hess
a80bf89e8d
comment and moreinfo needed 2020-11-24 15:00:06 -04:00
Lukey
ef204849e0 Added a comment 2020-11-24 18:35:16 +00:00
Joey Hess
49584ead91
close 2020-11-24 14:33:52 -04:00
Joey Hess
f844abd223
close 2020-11-24 14:32:34 -04:00
Joey Hess
e59cec1755
Merge branch 'master' of ssh://git-annex.branchable.com 2020-11-24 12:31:33 -04:00
Joey Hess
88cef18fac
upgrade: Support an edge case upgrading a v5 direct mode repo where nothing had ever been committed to the head branch
This commit was sponsored by Jack Hill on Patreon.
2020-11-24 12:31:17 -04:00
jkniiv
ad4689e790 Added a comment: I concur, in fact git annex init doesn't work at all 2020-11-24 16:28:25 +00:00