Commit graph

2414 commits

Author SHA1 Message Date
Ilya_Shlyakhter
e86cf08981 Added a comment 2018-10-09 15:34:00 +00:00
Ilya_Shlyakhter
3c94f83cbf Added a comment 2018-10-08 21:48:27 +00:00
Joey Hess
61b7101949
response 2018-10-08 12:23:49 -04:00
Joey Hess
f391885373
followup 2018-10-08 12:21:58 -04:00
Joey Hess
611c60089d
response 2018-10-08 12:13:23 -04:00
Joey Hess
9ada622067
Merge branch 'master' of ssh://git-annex.branchable.com 2018-10-08 12:01:03 -04:00
anarcat
964e3f52a6 notes 2018-10-07 18:16:13 +00:00
Joey Hess
e7ff1c6762
Merge branch 'master' of ssh://git-annex.branchable.com 2018-10-06 19:53:06 -04:00
yarikoptic
cb91466057 Added a comment 2018-10-05 21:41:45 +00:00
Ilya_Shlyakhter
6a1cebe88a Added a comment 2018-10-05 21:31:33 +00:00
yarikoptic
ac1122618d Added a comment 2018-10-05 20:20:42 +00:00
Ilya_Shlyakhter
bab8370447 Added a comment 2018-10-05 19:56:24 +00:00
Ilya_Shlyakhter
b749b9b25c Added a comment 2018-10-05 18:24:18 +00:00
Joey Hess
5df65af933
followup 2018-10-05 11:33:34 -04:00
Joey Hess
79aa57d37e
response 2018-10-04 14:45:06 -04:00
Joey Hess
108e63007d
response 2018-10-04 13:01:28 -04:00
Joey Hess
6ba3dea566
annex.jobs
Added annex.jobs setting, which is like using the -J option.

Of course, -J overrides annex.jobs.

This commit was sponsored by Trenton Cronholm on Patreon.
2018-10-04 12:47:27 -04:00
Joey Hess
585e6b39aa
comment 2018-10-04 12:45:48 -04:00
Ilya_Shlyakhter
b0b69f1819 suggestion - dockerized external special remotes 2018-10-04 01:23:53 +00:00
Ilya_Shlyakhter
0783f0afcf Added a comment 2018-10-04 01:11:11 +00:00
Joey Hess
9d0e274b07
Merge branch 'master' of ssh://git-annex.branchable.com 2018-10-03 14:04:39 -04:00
Joey Hess
aa69796121
simplify 2018-10-03 14:04:19 -04:00
Joey Hess
acc1dc37b0
followup 2018-10-03 14:04:14 -04:00
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