Commit graph

2441 commits

Author SHA1 Message Date
yarikoptic
273a9053cd Added a comment 2018-10-03 18:03:56 +00:00
yarikoptic
807884f3d1 Added a comment 2018-10-03 17:55:04 +00:00
Ilya_Shlyakhter
441a018e3a suggested config flag to use all available cores 2018-10-03 17:50:08 +00:00
Joey Hess
50b885ffd6
close, implemented already 2018-10-03 13:42:56 -04:00
yarikoptic
fe8cbc447b Added a comment 2018-10-03 17:39:48 +00:00
Joey Hess
4ea33ecadd
close, probably git annex inprogress was it 2018-10-03 13:26:49 -04:00
Joey Hess
a62c94e811
retitle 2018-10-03 13:25:00 -04:00
Joey Hess
233a45994b
retitle 2018-10-03 13:22:52 -04:00
Joey Hess
8ac762414c
close, fixed long ago 2018-10-03 13:15:36 -04:00
Joey Hess
acbb21f89b
close 2018-10-03 13:12:12 -04:00
Joey Hess
0fe258b6e1
close 2018-10-03 13:10:00 -04:00
Joey Hess
7d1d233ba9
close 2018-10-03 13:08:08 -04:00
Joey Hess
3693d11d7d
close obsolete request 2018-10-03 12:55:20 -04:00
Joey Hess
746db2e276
close old todo and add freenet special remote to list 2018-10-03 12:54:34 -04:00
Joey Hess
ebde4bd94b
close, fixed by p2p for ssh 2018-10-03 12:52:01 -04:00
Joey Hess
590f67461a
close, git annex inprogress does this 2018-10-03 12:48:09 -04:00
Joey Hess
c007d53978
followup 2018-10-03 12:40:27 -04:00
Joey Hess
a8c133b20e
Merge branch 'master' of ssh://git-annex.branchable.com 2018-10-03 12:36:29 -04:00
Joey Hess
43dc8ed703
followup 2018-10-03 12:36:11 -04:00
Joey Hess
303d10cee6
Improve display when git config download from a http remote fails.
The error message displayed used to only come from curl/wget and perhaps
was clearer than the one displayed now that http-client is used. In any
case, it does make sense to hide it because git-annex prints its own
warning message.

This commit was sponsored by Jake Vosloo on Patreon.
2018-10-03 12:31:09 -04:00
Joey Hess
9aeffde4cb
followup 2018-10-03 12:29:21 -04:00
Ilya_Shlyakhter
e32b54f490 Added a comment 2018-10-02 17:38:11 +00:00
Joey Hess
2797bf851a
thoughts 2018-10-02 10:16:57 -04:00
Joey Hess
95aafbfdc2
Merge branch 'master' of ssh://git-annex.branchable.com 2018-10-01 16:17:55 -04:00
Joey Hess
cd7a31069a
thought 2018-10-01 16:15:42 -04:00
Joey Hess
2a5e60d9fe
status update
(cherry picked from commit 480bc61fcf)
2018-10-01 16:11:53 -04:00
yarikoptic
366f7f81ef Added a comment 2018-10-01 16:29:19 +00:00
Joey Hess
47707608b1
followup 2018-10-01 12:21:34 -04:00
Joey Hess
a7309549ad
response 2018-10-01 11:59:05 -04:00
yarikoptic
53c8e3e0f8 initial report on download failed msg 2018-09-28 16:57:59 +00:00
yarikoptic
43d777f0ab initial idea on --progress for git calls 2018-09-28 16:14:57 +00:00
Joey Hess
5798786205
Merge branch 'master' of ssh://git-annex.branchable.com 2018-09-28 10:49:28 -04:00
yarikoptic
c487d46a36 initial recommendation about config for mode on crippled systems 2018-09-27 20:00:01 +00:00
Joey Hess
9adee3f2fb
sync: Warn when a remote's export is not updated to the current tree because export tracking is not configured.
Only display the warning when the current branch has a tree that is not
the same as the tree in the export.

Note that it doesn't check to see if the current tree is
in incompleteExportedTreeish; it might be worth checking that and reminding
the user about an incomplete export, but when export tracking is not
configured, they are probably not in the right clone of the repository to
resolve the incomplete export.

This commit was sponsored by Ethan Aubin.
2018-09-27 15:41:18 -04:00
Ilya_Shlyakhter
f35ba87ea6 Added a comment 2018-09-27 11:09:04 +00:00
CandyAngel
0b6123bbec Added a comment 2018-09-27 07:39:58 +00:00
Ilya_Shlyakhter
acfc49ae6e fixed suggested encoding 2018-09-26 18:11:35 +00:00
Ilya_Shlyakhter
b15747978d added todo re: shorter keys through better encoding 2018-09-26 16:58:53 +00:00
Ilya_Shlyakhter
97ef9e1c4a added todo re: creating option to add user-specified string to key 2018-09-26 03:02:23 +00:00
Ilya_Shlyakhter
3e84a055ea Added a comment 2018-09-26 00:51:30 +00:00
Ilya_Shlyakhter
a51c819868 removed 2018-09-26 00:15:23 +00:00
Ilya_Shlyakhter
7440560361 Added a comment 2018-09-26 00:15:04 +00:00
Ilya_Shlyakhter
0bb0bb3c39 Added a comment 2018-09-26 00:14:53 +00:00
Joey Hess
5ce9080d41
forgot to add this comment 2018-09-25 16:51:54 -04:00
Joey Hess
2ebf4c3ec2
close another report of same bug 2018-09-25 15:36:20 -04:00
Joey Hess
bc31b93c77
remote.name.annex-security-allow-unverified-downloads
Added remote.name.annex-security-allow-unverified-downloads, a per-remote
setting for annex.security.allow-unverified-downloads.

This commit was sponsored by Brock Spratlen on Patreon.
2018-09-25 15:34:47 -04:00
Joey Hess
d95f682d87
todo 2018-09-24 15:46:49 -04:00
Ilya_Shlyakhter
e28ae667a4 Added a comment 2018-09-24 18:50:46 +00:00
Joey Hess
4ecba916a1
annex.maxextensionlength
Added annex.maxextensionlength for use cases where extensions longer than 4
characters are needed.

This commit was sponsored by Henrik Riomar on Patreon.
2018-09-24 12:10:18 -04:00
Joey Hess
0f9eafc157
comment 2018-09-24 11:50:40 -04:00
Joey Hess
8873cf0789
Merge branch 'master' of ssh://git-annex.branchable.com 2018-09-22 11:29:29 -04:00
Joey Hess
09ce2cf012
new ghc fixes windows filename length issue 2018-09-22 11:28:59 -04:00
Ilya_Shlyakhter
1cc0de995c added a todo suggestion about supporting longer file extensions and full filenames in symlink targets 2018-09-21 00:36:08 +00:00
Ilya_Shlyakhter
ea51ac3f59 better exceptions to annex.security.allow-unverified-downloads 2018-09-19 15:49:57 +00:00
yarikoptic
4528bbab43 initial idea on s3 2018-09-19 13:17:41 +00:00
spwhitton
c98e383ffd intentional->unintentional 2018-09-18 22:13:09 +00:00
spwhitton
c517b3132d report bug 2018-09-18 22:12:47 +00:00
https://christian.amsuess.com/chrysn
8f0d61ed9f Added a comment: symlinks into git-annex 2018-09-18 19:15:11 +00:00
Ilya_Shlyakhter
295be65c3e Added a comment 2018-09-18 18:48:06 +00:00
Ilya_Shlyakhter
1f1d1a6c6e Added a comment 2018-09-18 18:41:02 +00:00
Joey Hess
cd3f231d21
retitle 2018-09-12 14:21:39 -04:00
Joey Hess
e01903efc5
response 2018-09-11 13:13:27 -04:00
https://me.yahoo.com/a/iOGTltEpmOTQ.xZ99NFP5c7Zdcc-#6a7ba
cf2cc6f7fc Added a comment 2018-09-07 18:04:51 +00:00
https://me.yahoo.com/a/iOGTltEpmOTQ.xZ99NFP5c7Zdcc-#6a7ba
1f0ab538fc 2018-09-07 17:01:04 +00:00
Joey Hess
19e91d5ee3
Merge branch 'master' of ssh://git-annex.branchable.com 2018-09-06 14:37:42 -04:00
Joey Hess
b7daf2685f
support public versioned S3 access
Makes git annex whereis display the versionId urls.

And, when a s3 remote is enabled without creds, git-annex will use the
versionId urls to access its contents.

This commit was sponsored by Fernando Jimenez on Patreon.
2018-09-06 14:31:41 -04:00
Joey Hess
0630ef166b
thought 2018-09-06 13:21:46 -04:00
Joey Hess
256669a85d
close as I don't want to do this 2018-09-06 13:16:13 -04:00
Joey Hess
1c86ba8ee8
close, these seem done already 2018-09-06 13:15:21 -04:00
Joey Hess
50fb6a86f9
thoughts 2018-09-06 13:09:18 -04:00
anarcat
694f612fba Added a comment: added as a special remote 2018-09-06 00:58:52 +00:00
Joey Hess
0a7c5a9982
dropdead per-remote metadata
Had to refactor pure code into separate modules so it is accessible
inside Annex.Branch.Transitions.

This commit was sponsored by Peter on Patreon.
2018-09-05 13:52:46 -04:00
Joey Hess
f1e5dfb7c7
close 2018-09-05 12:21:52 -04:00
Joey Hess
8eb944ea11
close todo, open todo 2018-08-31 14:01:24 -04:00
Joey Hess
308f49e9ae
update 2018-08-31 13:56:32 -04:00
Joey Hess
b3d42283ad
use per-remote metadata storage for S3 version ID
Since the same key can be stored in a versioned S3 bucket multiple times
with different version IDs, this allows tracking them all. Not currently
needed, but if we ever want to drop from a versioned S3 bucket, we'll
need to know them all.

This commit was supported by the NSF-funded DataLad project.
2018-08-31 13:27:29 -04:00
Joey Hess
5c99f6247e
per-remote metadata storage
Actually very straightforward reuse of the metadata log file code.
Although I had to add a todo item as git-annex forget won't clean up
dead remote's metadata yet.

This would be worth adding to the external special remote interface
sometime. Have not opened a todo though, guess I'll wait until something
needs it.

This commit was supported by the NSF-funded DataLad project.
2018-08-31 12:23:22 -04:00
Joey Hess
9d78a4387f
update 2018-08-31 12:23:04 -04:00
Joey Hess
3a5d0402ba
update 2018-08-30 15:49:21 -04:00
Joey Hess
19dcff2b71
use S3 version ID for retrieval
Have to store the S3 object along with the version ID, so retrieval can
use the same object.

This commit was supported by the NSF-funded DataLad project.
2018-08-30 15:37:08 -04:00
Joey Hess
794e9a7a44
store S3 version IDs
Only done when versioning=yes is configured. It could always do it when
S3 sends back a version id, but there may be buckets that have
versioning enabled by accident, so it seemed better to honor the
configuration.

S3's docs say version IDs are "randomly generated", so presumably
storing the same content twice gets two different ones not the same one.
So I considered storing a list of version IDs for a key. That would
allow removing the key completely. But.. The way Logs.RemoteState works,
when there are multiple writers, the last writer wins. So storing a list
would need a different log format that merges, which seemed overkill to support
removing a key from an append-only remote.

Note that Logs.RemoteState for S3 is now dedicated to version IDs.
If something else needs to be stored, a new log will be needed to do it.

This commit was supported by the NSF-funded DataLad project.
2018-08-30 14:30:56 -04:00
Joey Hess
0ff5a41311
S3 versioning=yes config
Not yet used.

This commit was supported by the NSF-funded DataLad project.
2018-08-30 13:45:28 -04:00
Joey Hess
358178fbfb
don't untrust appendonly exports
Make exporttree=yes remotes that are appendonly not be untrusted, and not force
verification of content, since the usual concerns about losing data when an
export is updated by someone else don't apply.

Note that all the remote operations on keys are left as usual for
appendonly export remotes, except for storing content.

This commit was supported by the NSF-funded DataLad project.
2018-08-30 11:48:04 -04:00
Joey Hess
8b39db20b5
export appendonly support
Make `git annex export` check appendonly when removing a file from an
export, and not update the location log, since the remote still contains
the content.

This commit was supported by the NSF-funded DataLad project.
2018-08-30 11:18:20 -04:00
Joey Hess
dad627fa9e
remove false starts, simplify 2018-08-29 14:12:18 -04:00
Joey Hess
5b78952f78
misunderstood some code; simplify 2018-08-29 14:09:18 -04:00
Joey Hess
e216c18318
new much improved plan 2018-08-29 13:59:52 -04:00
Joey Hess
3874c5c88d
further thoughts 2018-08-29 10:56:02 -04:00
Joey Hess
b1280eb252
new todo (requested by yoh) 2018-08-28 12:14:06 -04:00
Joey Hess
6adc0d2b3f
bug triage 2018-08-27 15:10:05 -04:00
Joey Hess
2c9f21e987
todo 2018-08-26 20:59:20 -04:00
anarcat
af727108b0 update status to mention tor 2018-08-24 21:35:11 +00:00
anarcat
bfab1da5a7 mention that dat thing 2018-08-24 21:30:20 +00:00
Joey Hess
98fd7ec6c9
recover from race between git mv+commit and git-annex get
Last of the known v6 races.

This also makes git add of a pointer file populate it when its content
is present in the annex. Which makes sense to do, I think.

This commit was supported by the NSF-funded DataLad project.
2018-08-22 16:01:50 -04:00
Joey Hess
50fa17aee6
v6: recover from race between git mv and git-annex get/drop
Update pointer file next time reconcileStaged is run to recover from the
race.

Note that restagePointerFile causes git to run the clean filter,
and that will run reconcileStaged. So, normally by the time the git
annex get/drop command finishes, the race has already been dealt with.
It may be that, in some case, that won't happen and the race will be
dealt with at a later point. git-annex could run reconcileStaged at
shutdown if that becomes a problem.

This does not handle the situation where the git mv is committed before
git-annex gets a chance to run again. git commit does run the clean
filter, and that happens to re-inject the content if it was supposed to
be dropped but is still populated. But, the case where the file was
supposed to be gotten but is not populated is not handled yet.

This commit was supported by the NSF-funded DataLad project.
2018-08-22 15:56:43 -04:00
Joey Hess
e9b2674281
plan 2018-08-22 13:58:32 -04:00
Joey Hess
38a934cf07
correction 2018-08-22 13:34:15 -04:00
Joey Hess
18ecf41917
avoid running reconcileStaged when the index has not changed
This commit was supported by the NSF-funded DataLad project.
2018-08-22 13:04:12 -04:00
Joey Hess
5e56d9b620
v6: Update associated files database when git has staged changes to pointer files
This commit was supported by the NSF-funded DataLad project.
2018-08-21 17:02:20 -04:00
Joey Hess
b8cd5fde17
idea 2018-08-20 16:13:46 -04:00
Joey Hess
54d49eeac8
avoid update-index race
This commit was supported by the NSF-funded DataLad project.
2018-08-17 16:03:40 -04:00
Joey Hess
ec91b6e4b2
plan to fix race 2018-08-17 11:18:53 -04:00
Joey Hess
5799d325f0
update todo categories 2018-08-16 16:36:47 -04:00
Joey Hess
82a239675f
narrow the race where a file gets modified before update-index
Check just before running update-index if the worktree file's content is
still the same, don't update it when it's been modified. This narrows
the race window a lot, from possibly minutes or hours, to seconds or
less.

(Use replaceFile so that the worktree update happens atomically,
allowing the InodeCache of the new worktree file to itself be gathered
w/o any other race.)

This doesn't eliminate the race; it can still occur in the window before
update-index runs. When annex.queue is large, a lot of files will be
statted by the checks, and so the window may still be large enough to be a
problem.

When only a few files are being processed, the window is as small as it
is in the race where a modification gets overwritten by git-annex when
it updates the worktree. Or maybe as small as whatever race git
checkout/pull/merge may have when the worktree gets modified during it.
Still, I've kept a todo about this race.

This commit was supported by the NSF-funded DataLad project.
2018-08-16 15:56:43 -04:00
Joey Hess
82cfcfc838
better index file refresh method
Use git update-index --refresh, since it's a little bit more
efficient and the user can be told to run it if a locked index prevents
git-annex from running it.

This also fixes the problem where an annexed file was deleted in the index
and a get of another file that uses the same key caused the index update to
add back the deleted file. update-index will not add back the deleted file.

Documented in tips/unlocked_files.mdwn the gotcha that the index update
may conflict with other operations. I can't see any way to possibly avoid
that conflict.

One new todo about a race that causes a modification to be accidentially
staged.

Note that the assistant only flushes the git command queue when it
commits a modification. I have not tested the assistant with v6 unlocked
files, but assume most users of the assistant won't care if the index
shows a file as modified for a while.

This commit was supported by the NSF-funded DataLad project.
2018-08-16 14:16:24 -04:00
Joey Hess
4c5a9965c1
remove invalid todo item
I tested it, and it's ok. I think I was adding it under a filename that
produced a different key.
2018-08-15 13:34:48 -04:00
Joey Hess
48e9e12961
finally fixed v6 get/drop git status
After updating the worktree for an add/drop, update git's index, so git
status will not show the files as modified.

What actually happens is that the index update removes the inode
information from the index. The next git status (or similar) run
then has to do some work. It runs the clean filter.

So, this depends on the clean filter being reasonably fast and on git
not leaking memory when running it. Both problems were fixed in
a96972015d, but only for git 2.5. Anyone
using an older git will see very expensive git status after an add/drop.

This uses the same git update-index queue as other parts of git-annex, so
the actual index update is fairly efficient. Of course, updating the index
does still have some overhead. The annex.queuesize config will control how
often the index gets updated when working on a lot of files.

This is an imperfect workaround... Added several todos about new
problems this workaround causes. Still, this seems a lot better than the
old behavior.

This commit was supported by the NSF-funded DataLad project.
2018-08-14 16:23:58 -04:00
Joey Hess
66a4483dfa
response 2018-08-14 11:02:55 -04:00
Joey Hess
d8a8f2df70
full plan 2018-08-13 17:51:02 -04:00
Joey Hess
86df0d6e1b
even better idea 2018-08-13 17:43:16 -04:00
Joey Hess
df5823cea0
update 2018-08-13 17:29:33 -04:00
Joey Hess
bc7d431a6a
status 2018-08-13 16:37:23 -04:00
Joey Hess
147a793f4b
one way to use this 2018-08-09 18:22:21 -04:00
Joey Hess
a96972015d
massive v6 add speed/memory improvement
v6 add: Take advantage of improved SIGPIPE handler in git 2.5 to speed up
the clean filter by not reading the file content from the pipe. This also
avoids git buffering the whole file content in memory.

When built with an older git, still consumes stdin. If built with a newer
git and used with an older one, it breaks, but that's acceptable --
checking the git version every time would make repeated smudge runs slow.

This commit was supported by the NSF-funded DataLad project.
2018-08-09 18:17:46 -04:00
Joey Hess
38ddd6072d
addurl: Include filename in --json-progress output when known. 2018-08-06 12:53:44 -04:00
Joey Hess
5c5259db7c
followup 2018-08-06 11:56:55 -04:00
Joey Hess
634aefebd4
comment 2018-08-06 11:54:03 -04:00
Joey Hess
df72b2584a
already implmeneted 2018-08-06 11:29:22 -04:00
yarikoptic
c3f366448a initial expression of the desire 2018-08-04 03:20:48 +00:00
Joey Hess
ae11394efa
added annex.commitmessage
Added annex.commitmessage config that can specify a commit message for the
git-annex branch instead of the usual "update".

This commit was supported by the NSF-funded DataLad project.
2018-08-02 14:06:06 -04:00
Joey Hess
50620efe85
thought 2018-08-02 13:47:50 -04:00
Joey Hess
18aa931a44
followup 2018-08-02 13:43:44 -04:00
Joey Hess
35dbf231d8
response 2018-08-02 13:31:22 -04:00
Joey Hess
2884637cab
S3: Support credential-less download from remotes configured with public=yes exporttree=yes.
This commit was supported by the NSF-funded DataLad project.
2018-07-31 16:32:43 -04:00
Joey Hess
903b10e2b2
add todo 2018-07-31 13:05:04 -04:00
yarikoptic
a206f933fe Added a comment 2018-07-31 14:27:17 +00:00
yarikoptic
c70e757f2b Added a comment: size 2018-07-31 14:19:16 +00:00
RonnyPfannschmidt
5b711ac4f1 Added a comment 2018-07-29 21:41:56 +00:00
RonnyPfannschmidt
ef64e71f76 2018-07-29 20:29:23 +00:00
CandyAngel
6bf0c3ee14 2018-07-18 17:06:19 +00:00
Joey Hess
cc2cb46857
unused --from: Allow specifiying a repository by uuid or description.
This commit was sponsored by Jake Vosloo on Patreon.
2018-07-11 16:01:35 -04:00
uli@8484a70fbfd489faef5f72c230d340b01e2676ca
32df7fca23 2018-07-11 14:07:24 +00:00
Joey Hess
66cb41b0b3
thought 2018-07-09 14:38:34 -04:00
Joey Hess
13c853bda1
dealing with race conditions in import tree design
I seem to be down to a race no worse than one in git, which seems good
enough.

This commit was sponsored by Trenton Cronholm on Patreon.
2018-07-09 14:05:34 -04:00
anarcat
a93a8f254e Added a comment 2018-07-06 16:48:29 +00:00
Joey Hess
87507722cb
comment 2018-07-06 12:38:41 -04:00
anarcat
801154149a Added a comment: some docs 2018-07-06 01:44:08 +00:00
anarcat
445cc79fc8 Added a comment: apologies 2018-07-05 15:56:27 +00:00
Joey Hess
49cc94f61f
add docs about p2p --pair being broken in old versions 2018-07-05 11:52:52 -04:00
Joey Hess
749d5115fe
response 2018-07-04 12:24:09 -04:00
anarcat
5b2bbaaa18 Added a comment: some further considerations 2018-07-04 02:17:50 +00:00
Joey Hess
8a201c5cc4
close 2018-07-03 12:29:57 -04:00
Joey Hess
a63bbd868b
make addurl of media url fail when youtube-dl is disabled
addurl: When security configuration prevents downloads with youtube-dl,
still check if the url is one that it supports, and fail downloading it,
instead of downloading the raw web page.
2018-06-28 13:01:18 -04:00
Joey Hess
b091dac130
note for later 2018-06-26 12:10:09 -04:00
Joey Hess
3160cadba3 git-annex version 6.20180626
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEKKUAw1IH6rcvbA8l2xLbD/BfjzgFAlstCaQACgkQ2xLbD/Bf
 jzh5nxAAn7D9soTI0ex6AVDDo2CjOyTTDVrIcl2h5XizfuUD3ev5P0TR3BZmzpAb
 MI6uaZ8kxqZ/eGAsBTyH9PsV7QVYIdht9t89ytP4xWyTQiOgjyJeA6PnJl4zVK9z
 Y8Of3mlylaz+97+sndljpsvy/KHENrHI7HHd+qxAu7wKysJxG6fJB7CjremkjaCI
 zAwg3mIy72ZKyuR/8hL9puJN9fdfw1ulkzQR+he007e/HkurPCwgRAOYW/Aa2tpY
 Oigdb9a6/0nl/VnOS8ZyHrSPRrhLH9c4IBmsdC1Xt5NDVmID/sWgD9uPF9dsHSMF
 OM25QdSlJ5cSNg+/XCpmmhC9MjgKkuVNpZ/fWBaHFs6KYgGhtZcAayQdz5AmMS2N
 HTPWB1IxZiV5TQHQpLbdH/q3RfNtRq1G1tc24zpd/zdhzijeTM6D8n4No6LXNq8X
 7U0qcrp9TdLOpBCTf6Jrg/7qFaXddHoEW1e3KrsOmB0hlYHuNxfY4bs0+ROeXGOT
 00koezcbF8kEI0ekoDvJjtVqaUq+608YjJZ5v7dE0vbtTj0KGbl5EHwC9atUluCX
 MHyTDY89uq68g4HIDytL001ZLvE3EUGJc4jh3+OMDzuZSKB5uwJIIky+qIaQu34K
 QJrZuyAIY0sVFV6LUX9nwqTW6Nnx/bB+kZ6k0+gx+Lpf7pUpE+o=
 =kex4
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEKKUAw1IH6rcvbA8l2xLbD/BfjzgFAlsxnX4ACgkQ2xLbD/Bf
 jzjK1xAAnJ58ZxLyTYlCZRcKiR81UHS/Mk6+SDAjRIRbT0SsY+6gSP55XKjrcuOb
 Jatp+6cNNSgk2lBpn37mq+rYIqboFh9moDRK7JSh1mDHCVtIwdARGblFRfuwaWPi
 xHnu+Pj43+SP7OF+8qP8/kDM+js3iMS+0gvBBz8pQN/yJDROXii6u0eONOd7vbER
 iRY9QpJdj5lp3hjaWfXt5iJC0re0eOAY4eUSHPsFIASysShnn33dFPOZ2hbhRKjR
 unQHUVIUE+ehmW3w9qIqn+9v2kca7laGK11cvzYRpmu/9rrvpf+RF1h42S8822dP
 CKHvxDkBGbyqTA+F9/6zpU1i9/ARgHFDpScRcdq7ZJi9FbWabKDklHCsgxwrkdXb
 +FXgb7N5Sa4+eVDNUf4rxldtLPX53nrtZ3IqrGiCWApCvbysNyP5kE0nix02l9z2
 xzY2vlpicx7TOMoO9mZesSFNgRzuFAbbya/zDJrz+xfgSRYXRYg58yTpmhpTFvSI
 h3Fw6+MYvehvRdAweLtoQt2p/UV2MAWrTpNzFoqgf2OCQOiH97ACDHn8Yki9rnQi
 NuMsqv9WOYQs4SaygDZMKemgAxftf3uaXiBW0RzHHwwWnDjHhqsEioOvOhNNyZbz
 U3OjKrH1JZlkNHlIBQD4BsWGLlIct66ZTU3k2OxPEp+mpEG/Xi4=
 =p+cW
 -----END PGP SIGNATURE-----

Merge tag '6.20180626' - previously embargoed security release
2018-06-25 21:56:43 -04:00
Joey Hess
28720c795f
limit url downloads to whitelisted schemes
Security fix! Allowing any schemes, particularly file: and
possibly others like scp: allowed file exfiltration by anyone who had
write access to the git repository, since they could add an annexed file
using such an url, or using an url that redirected to such an url,
and wait for the victim to get it into their repository and send them a copy.

* Added annex.security.allowed-url-schemes setting, which defaults
  to only allowing http and https URLs. Note especially that file:/
  is no longer enabled by default.

* Removed annex.web-download-command, since its interface does not allow
  supporting annex.security.allowed-url-schemes across redirects.
  If you used this setting, you may want to instead use annex.web-options
  to pass options to curl.

With annex.web-download-command removed, nearly all url accesses in
git-annex are made via Utility.Url via http-client or curl. http-client
only supports http and https, so no problem there.
(Disabling one and not the other is not implemented.)

Used curl --proto to limit the allowed url schemes.

Note that this will cause git annex fsck --from web to mark files using
a disallowed url scheme as not being present in the web. That seems
acceptable; fsck --from web also does that when a web server is not available.

youtube-dl already disabled file: itself (probably for similar
reasons). The scheme check was also added to youtube-dl urls for
completeness, although that check won't catch any redirects it might
follow. But youtube-dl goes off and does its own thing with other
protocols anyway, so that's fine.

Special remotes that support other domain-specific url schemes are not
affected by this change. In the bittorrent remote, aria2c can still
download magnet: links. The download of the .torrent file is
otherwise now limited by annex.security.allowed-url-schemes.

This does not address any external special remotes that might download
an url themselves. Current thinking is all external special remotes will
need to be audited for this problem, although many of them will use
http libraries that only support http and not curl's menagarie.

The related problem of accessing private localhost and LAN urls is not
addressed by this commit.

This commit was sponsored by Brett Eisenberg on Patreon.
2018-06-16 11:57:50 -04:00
andrew@2e5aa03dfdc624af77a5957dd345d28430342a9c
785cb276f0 posted issue 2018-06-15 22:23:58 +00:00
Joey Hess
e592635fe6
improve wording 2018-06-14 17:14:13 -04:00
Joey Hess
690bb303f9
more thoughts 2018-06-14 14:00:49 -04:00
Joey Hess
3f80aaea3d
some open questions 2018-06-14 13:42:25 -04:00
Joey Hess
466d3fbaab
more thoughts 2018-06-14 13:30:34 -04:00
Joey Hess
8b734da876
thoughts 2018-06-14 12:32:18 -04:00
Joey Hess
0f566ed242
removal of the rest of remoteGitConfig
In keyUrls, the GitConfig is used only by annexLocations
to support configured Differences. Since such configurations affect all
clones of a repository, the local repo's GitConfig must have the same
information as the remote's GitConfig would have. So, used getGitConfig
to get the local GitConfig, which is cached and so available cheaply.

That actually fixed a bug noone had ever noticed: keyUrls is
used for remotes accessed over http. The full git config of such a
remote is normally not available, so the remoteGitConfig that keyUrls
used would not have the necessary information in it.

In copyFromRemoteCheap', it uses gitAnnexLocation,
which does need the GitConfig of the remote repo itself in order to
check if it's crippled, supports symlinks, etc. So, made the
State include that GitConfig, cached. The use of gitAnnexLocation is
within a (not $ Git.repoIsUrl repo) guard, so it's local, and so
its git config will always be read and available.

(Note that gitAnnexLocation in turn calls annexLocations, so the
Differences config it uses in this case comes from the remote repo's
GitConfig and not from the local repo's GitConfig. As explained above
this is ok since they must have the same value.)

Not very happy with this mess of different GitConfigs not type-safe and
some read only sometimes etc. Very hairy. Think I got it this change
right. Test suite passes..

This commit was sponsored by Ethan Aubin.
2018-06-05 14:48:37 -04:00
Joey Hess
a5f598a6aa
remove use of remoteGitConfig
Unfortunately one more use remains..

This should be just as fast as the other method. The remote's Git.Repo
has already had its config read, so Annex.new's call to Git.Config.read
is a noop.

Thid commit was sponsored by andrea rota.
2018-06-05 13:15:04 -04:00
Joey Hess
fc5888300f
fix annex-checkuuid
Fixed annex-checkuuid implementation, so that remotes configured that way
can be used. This was 100% broken from the first commit of it, oops.

This commit was sponsored by Øyvind Andersen Holm.
2018-06-04 16:52:22 -04:00
RonnyPfannschmidt
c197077e89 Added a comment: the remote im working on 2018-06-04 07:51:57 +00:00
Joey Hess
0c803eee71
list all (non-archived) done bugs, not only most recent 10 2018-05-31 11:48:53 -04:00
Joey Hess
2c8da1432f
comment 2018-05-29 13:01:24 -04:00
unqueued
5300386c2b Added a comment 2018-05-28 14:55:34 +00:00
https://christian.amsuess.com/chrysn
6620c1704a Added a comment: append-only and gitolite 2018-05-28 11:47:14 +00:00
Joey Hess
940444994e
idea 2018-05-25 16:13:13 -04:00
Joey Hess
85f9360d9b
GIT_ANNEX_SHELL_APPENDONLY
Makes it allow writes, but not deletion of annexed content. Note that
securing pushes to the git repository is left up to the user.

This commit was sponsored by Jack Hill on Patreon.
2018-05-25 13:17:56 -04:00
Joey Hess
15129bac9b
2018 update 2018-05-23 15:44:29 -04:00
Joey Hess
41cf6f3d17
followup 2018-05-22 15:57:59 -04:00
yarikoptic
834d3dfff0 just rewording the desire of the master to have a discussion 2018-05-22 17:26:12 +00:00
sorsasampo@35b3d76c4c73ffc3f2c89e965c47a3f6a2721228
38caaee8fc 2018-05-20 03:45:06 +00:00
CandyAngel
4156c13221 Added a comment 2018-05-17 20:15:14 +00:00
anarcat
8f226fb7bd cross-ref with append-only 2018-05-17 18:15:14 +00:00
anarcat
990bb3085e another untrusted client idea 2018-05-17 18:14:17 +00:00
anarcat
e753c7de4f update: git repo now available. the previous paste expired, sorry about that. 2018-05-17 18:06:40 +00:00
anarcat
fce32e6cd4 /dev/random is not necessary in git-annex 2018-05-17 17:38:41 +00:00
Joey Hess
d135705b32
close 2018-05-15 12:03:43 -04:00
Joey Hess
60780a8605
close since anarcat thinks inprogress is good enough 2018-05-15 12:01:30 -04:00
Joey Hess
fbfb2b85ec
close 2018-05-15 12:00:50 -04:00
Joey Hess
c0ffd02ac5
close almost all old Android app bug reports
The old git-annex Android app is now deprecated in favor of running
git-annex in termux. I suspect all or nearly all of these no longer apply.

This commit was sponsored by Jochen Bartl on Patreon.
2018-05-08 15:00:46 -04:00
Joey Hess
d1961e4498
back out incorrect IO interleaving change
Fix regression in last release that crashes when using --all or running
git-annex in a bare repository. May have also affected git-annex unused and
git-annex info.

Reversed the order of the (++) in Annex.Branch.files so --all will stream
lazily still when there are not a bunch of uncommitted journal files.
Added a todo to maybe improve this later.

This commit was sponsored by Trenton Cronholm on Patreon.
2018-05-08 13:54:42 -04:00
Joey Hess
393fc79d58
comment 2018-04-30 16:12:33 -04:00
anarcat
488e127e97 this is basically what inprogress does, except it doesn't depend on xdg-open. at least basic functionality to do what i want is there, thanks! 2018-04-29 12:32:43 +00:00
yarikoptic
5c977d0cf6 initial whining about no support for ~/.netrc 2018-04-28 01:20:42 +00:00
Joey Hess
f5df6244f3
deal with getMounts crashing on android 2018-04-25 17:42:27 -04:00
Joey Hess
f22a8c3485
update 2018-04-25 16:58:12 -04:00
Joey Hess
9807e5bead
fix webapp opening in termux
Open real url not html shim since android and file:// urls is a nasty
kettle of fish.

This commit was sponsored by John Pellman on Patreon.
2018-04-25 14:38:42 -04:00
Joey Hess
b0df331b4a
adjust webapp paths when run in termux on Android
And display the special case Android UI
2018-04-25 14:17:52 -04:00
Joey Hess
118ed8f92b
runshell: hacks for termux; add tip
Added some tweaks to make git-annex work in termux on Android. The regular
arm standalone tarball now works in termux.

I guess the test for "$base/bin/git" is not really necessary, since it
tests for git-annex. Since that gets deleted on android, removed that test.

These are pretty hackish hacks, especially adding it to PATH. The goal is
to make it work well enough out of the box on Android.

This commit was sponsored by Eric Drechsel on Patreon.
2018-04-25 13:48:37 -04:00
Joey Hess
3753c07204
update 2018-04-25 11:19:59 -04:00
Joey Hess
5a01ebe036
update 2018-04-24 21:28:08 -04:00
Joey Hess
43b4e80bf5
update 2018-04-24 21:22:20 -04:00
Joey Hess
ec7262bb87
notes 2018-04-24 19:53:24 -04:00
Joey Hess
6b68813988
OMG 2018-04-24 19:04:07 -04:00
Joey Hess
c34152777b
Use http-conduit for url downloads by default, annex.web-options enables curl
* For url downloads, git-annex now defaults to using a http library,
  rather than wget or curl. But, if annex.web-options is set, it will
  use curl. To use the .netrc file, run:
    git config annex.web-options --netrc
* git-annex no longer uses wget (and wget is no longer shipped with
  git-annex builds).

Note that curl is always run in silent mode, since the new API for
download has a MeterUpdate and doesn't make way for curl progress
output. It might be worth writing a parser for curl's progress output
to update the meter when using it, but I didn't bother with this edge
case for now.

This commit was supported by the NSF-funded DataLad project.
2018-04-06 17:36:20 -04:00
Joey Hess
0f6775f1ff
refactor sinkResponseFile and add downloadC
Remote.S3 and Remote.Helper.Http both had similar code to sink a
http-conduit Response to a file; refactor out sinkResponseFile.

downloadC downloads an url to a file using http-conduit, and supports
resuming. Falls back to curl to handle urls that http-conduit does not
support. This is not used yet, but the goal is to replace download with
it.

git-annex.cabal: conduit-extra was not actually used for a long time,
remove the dep. conduit moves into the main dependency list, but since
http-conduit was already in there, and it depends on conduit, that's not
really adding a new build dep.

This commit was supported by the NSF-funded DataLad project.
2018-04-06 16:07:08 -04:00
Joey Hess
9b98d3f630
better HTTP connection reuse
Enable HTTP connection reuse across multiple files, when git-annex
uses http-conduit. Before, a new Manager was created each time
Utility.Url used it. Now, a single Manager gets created the first time,
so connections are reused.

Doesn't help when external programs are used for url download,
but does speed up addurl --fast, fsck --from web, etc.

Testing fsck --fast --from web with 3 files, over high-latency
satellite internet, it sped up from 19.37s to 14.96s.

This commit was supported by the NSF-funded DataLad project.
2018-04-04 15:39:40 -04:00
Joey Hess
0783352fae
todo 2018-04-04 14:32:32 -04:00
Joey Hess
ae75eb06bc
exporttree support for adb special remote
This commit was sponsored by Michael Magin.
2018-03-27 16:28:41 -04:00
Joey Hess
2927618d35
Added adb special remote which allows exporting files to Android devices.
git annex testremote passes.

exportree not implemented yet, although the documentation talks about it,
since it will be the main way this remote will be used.

The adb push/pull progress is displayed for now; it would be better
to consume it and use it to update the git-annex progress bar.

This commit was sponsored by andrea rota.
2018-03-27 14:54:41 -04:00
Joey Hess
abffea5fcb
update 2018-03-21 09:19:06 -04:00
Joey Hess
1cf705d416
idea 2018-03-21 03:19:47 -04:00
Joey Hess
0ae2662f71
ideas 2018-03-21 02:25:53 -04:00
vrs+annex@ea5fa24dbb279be61a8e50adb638bf8366300717
ae462950a9 Added a comment: related bugs 2018-03-17 19:06:46 +00:00
Joey Hess
050ada746f
Added backends for the BLAKE2 family of hashes.
There are a lot of different variants and sizes, I suppose we might as well
export all the common ones.

Bump dep to cryptonite to 0.16, earlier versions lacked BLAKE2 support.
Even android has 0.16 or newer.

On Debian, Blake2bp_512 is buggy, so I have omitted it for now.
http://bugs.debian.org/892855

This commit was sponsored by andrea rota.
2018-03-13 16:23:42 -04:00
Joey Hess
0ceb6da0fa
Merge branch 'master' of ssh://git-annex.branchable.com 2018-03-13 15:08:28 -04:00
Joey Hess
4015c5679a
force verification when resuming download
When resuming a download and not using a rolling checksummer like rsync,
the partial file we start with might contain garbage, in the case where a
file changed as it was being downloaded. So, disabling verification on
resumes risked a bad object being put into the annex.

Even downloads with rsync are currently affected. It didn't seem worth the
added complexity to special case those to prevent verification, especially
since git-annex is using rsync less often now.

This commit was sponsored by Brock Spratlen on Patreon.
2018-03-13 14:50:49 -04:00
Joey Hess
31e1adc005
deal with unlocked files
P2P protocol version 1 adds VALID|INVALID after DATA; INVALID means the
file was detected to change content while it was being sent and so we
may not have received the valid content of the file.

Added new MustVerify constructor for Verification, which forces
verification even when annex.verify=false etc. This is used when INVALID
and in protocol version 0.

As well as changing git-annex-shell p2psdio, this makes git-annex tor
remotes always force verification, since they don't yet use protocol
version 1. Previously, annex.verify=false could skip verification when
using tor remotes, and let bad data into the repository.

This commit was sponsored by Jack Hill on Patreon.
2018-03-13 14:27:14 -04:00
https://openid.stackexchange.com/user/3ee5cf54-f022-4a71-8666-3c2b5ee231dd
7ea75e1132 Added a comment: How expensive is verification anyway? 2018-03-13 17:58:19 +00:00
Joey Hess
9930b1f140
a plan 2018-03-13 12:17:24 -04:00
Joey Hess
abe8346dca
response 2018-03-12 17:49:06 -04:00
Joey Hess
ad13b56c86
Merge branch 'master' of ssh://git-annex.branchable.com 2018-03-12 17:33:37 -04:00
Joey Hess
59e7f3cbb2
done for the day 2018-03-12 17:32:57 -04:00
Joey Hess
24f35f6acc
remove todo about assistant and network change
When the assistant detects a network change, it
stops using old git-annex transferkeys processes.
So, no problem that old git-annex-shell p2pstdio
connections are cached; they won't be reused after
network change.
2018-03-12 17:24:40 -04:00
Joey Hess
b654597c2f
urk, this is hard 2018-03-12 17:24:18 -04:00
Joey Hess
c3df5d1f10
avoid double-connect to unreachable ssh remote
When git-annex-shell p2pstdio fails with 255, it's because the ssh
server is not reachable. Avoid running the fallback action in this case,
since it would just try a second time to connect, and presumably fail.

Note that the closed P2PSshConnection will not be stored in the pool,
so the next request tries again to connect. This is just the right
behavior; when the remote becomes reachable again, the same git-annex
process will start using it.

This commit was sponsored by Ole-Morten Duesund on Patreon.
2018-03-12 16:50:21 -04:00
Joey Hess
e36ceb7448
open todo for p2p protocol flag days 2018-03-12 16:28:54 -04:00
davicastro
56bab023b9 Added a comment: What are the drawbacks of repo v6? 2018-03-12 19:00:36 +00:00
Joey Hess
c81768d425
version the P2P protocol
Unfortunately ReceiveMessage didn't handle unknown messages the way it
was documented to; client sending VERSION would cause the server to
return an ERROR and hang up. Fixed that, but old releases of git-annex
use the P2P protocol for tor and will still have that behavior.

So, version is not negotiated for Remote.P2P connections, only for
Remote.Git connections, which will support VERSION from their first
release. There will need to be a later flag day to change Remote.P2P;
left a commented out line that is the only thing that will need to be
changed then.

Version 1 of the P2P protocol is not implemented yet, but updated
the docs for the DATA change that will be allowed by that version.

This commit was sponsored by Jeff Goeke-Smith on Patreon.
2018-03-12 14:36:35 -04:00
Joey Hess
f74c970c7e
updates 2018-03-09 13:55:25 -04:00
Joey Hess
08814327ff
use P2P protocol for checkpresent, retrieve, and store
Note that, due to not using rsync to transfer files to ssh remotes
any longer, permissions and other file metadata of annexed files
will no longer be preserved when copying them to ssh remotes.
Other remotes never supported preserving that information, so
this is not considered a regression. Added NEWS item about this.

Another significant side effect of this is that, even when rsync is run to
retrieve a file, its progress display will no longer be shown, and
instead the native git-annex progress display will appear. It would be
possible to use the rsync process display when rsync is used (old
git-annex-shell and also retrieval from a local repository), but it
would have complicated the code unncessarily, and been inconsistent
behavior.

(I'd been thinking for a while about eliminating the rsync progress
display, since it's got some annoying verbosities, including display of
the key and the "(xfr#1, to-chk=0/1)" bit and was already somewhat
inconsistent.)

retrieveKeyFileCheap still uses rsync, since that ensures that it gets
the actual file content from the remote. Using the P2P protocol would
use the local content, as long as the local and remote size are the
same.

This commit was sponsored by John Pellman on Patreon.
2018-03-09 13:25:16 -04:00
Joey Hess
26febb4e58
benchmarks 2018-03-09 12:57:23 -04:00
Joey Hess
6a59bc4845
use P2P protocol for drop
Not yet used for everything else, but this is enough to
verify that it works, and do some benchmarking.

Some bugfixes included, which got it working. Also fallback to old
actions has been verified to work correctly.

Benchmarked dropping one thousand files from a ssh remote on localhost.
Using the old git-annex	40.867 seconds.
With the P2P protocol	9.905 seconds!

This commit was sponsored by Jochen Bartl on Patreon.
2018-03-08 16:56:17 -04:00
Joey Hess
0a294900b5
Merge branch 'master' of ssh://git-annex.branchable.com 2018-03-07 15:41:33 -04:00
Joey Hess
6ddfa9807b
implemented git-annex-shell p2pstdio
Not yet used by git-annex, but this will allow faster transfers etc than
using individual ssh connections and rsync.

Not called git-annex-shell p2p, because git-annex p2p does something
else and I don't want two subcommands with the same name between the two
for sanity reasons.

This commit was sponsored by Øyvind Andersen Holm.
2018-03-07 15:38:01 -04:00
yarikoptic
6023d82a43 Added a comment 2018-03-06 20:33:44 +00:00
Joey Hess
9b8f6c9cb9
followup 2018-03-06 14:51:27 -04:00
Joey Hess
f42baedd4c
designing new git-annex-shell multi
This commit was supported by the NSF-funded DataLad project.
2018-03-06 14:48:44 -04:00
Joey Hess
bf98afb91a
comment 2018-03-06 13:38:55 -04:00
Joey Hess
a4bd508643
todo 2018-02-28 16:52:13 -04:00
Joey Hess
bed6773346
Support exporttree=yes for rsync special remotes.
Renaming is not supported; it might be possible to use --fuzzy to get rsync
to notice the file is being renamed, but that is a bit ..fuzzy.

On the other hand, interrupted transfers of an exported file are resumed,
since rsync is great at that. Had to adjust the exporttree docs, which
said interrupted transfers would restart.

Note that remove no longer makes the empty directory dummy, instead
sending the top-level empty directory. This works just as well and I
noticed the dummy was unncessary when refactoring it into removeGeneric.
Verified that behavior of remove is not changed, and git annex
testremote does pass.

This commit was sponsored by Brock Spratlen on Patreon.
2018-02-28 13:36:20 -04:00
roger.herikstad@ca3b99b0263344ccfd8ec134a12261be25ef3504
7a4fe7e80c Added a comment: Not working with rsync? 2018-02-28 02:41:38 +00:00
Joey Hess
8104f2f758
done 2018-02-20 13:00:51 -04:00
Joey Hess
572754c925
update 2018-02-19 15:54:56 -04:00
yarikoptic
fb2c7d180a Added a comment 2018-02-16 18:42:28 +00:00
Joey Hess
b0633931d6
comment 2018-02-16 14:05:26 -04:00
Joey Hess
56711c310c
update 2018-02-16 13:56:05 -04:00
Joey Hess
846208b265
comment 2018-02-16 13:47:10 -04:00
Joey Hess
1758982760
comment 2018-02-16 13:28:13 -04:00
yarikoptic
36375ca060 Added a comment 2018-02-08 18:06:55 +00:00
Joey Hess
5109d406c0
comment 2018-02-08 13:31:36 -04:00
Joey Hess
68321be178
comment 2018-02-08 13:12:39 -04:00
yarikoptic
8cd0f8b28e 2018-02-06 22:35:41 +00:00
yarikoptic
638032f3aa Added a comment 2018-02-06 20:15:35 +00:00
Joey Hess
7d9f0e0fbe
Added INFO to external special remote protocol.
It's left up to the special remote to detect when git-annex is new enough
to support the message; an old git-annex will blow up.

This commit was supported by the NSF-funded DataLad project.
2018-02-06 13:03:55 -04:00
Joey Hess
5c8150c6eb
Merge branch 'master' of ssh://git-annex.branchable.com 2018-02-05 13:25:11 -04:00
Joey Hess
4cd300547d
followup 2018-02-05 13:24:44 -04:00
yarikoptic
0578ed2aaa initial report 2018-02-05 15:53:06 +00:00
lhunath@3b4ff15f4600f3276d1776a490b734fca0f5c245
60fc538790 Added a comment: Simultaneous transfers 2018-02-02 17:37:27 +00:00
yarikoptic
f3d5d80efb Added a comment: any chance to avoid necessity to config the hook(s)? 2018-02-01 18:54:18 +00:00
Joey Hess
e84d9219c4
add todo 2018-02-01 13:52:15 -04:00
yarikoptic
1ca00e61e6 initial whishlist 2018-01-25 03:44:53 +00:00
mbekkema97@66b135681014f005a3a14c4011d148fcb6655f81
4c6edbc8e6 Added a comment 2018-01-19 03:46:29 +00:00
Joey Hess
4eb70965a7
response 2018-01-15 13:31:21 -04:00
Joey Hess
97d84da875
response 2018-01-15 13:26:25 -04:00