Commit graph

22840 commits

Author SHA1 Message Date
Joey Hess
18ba1be26f
design for next steps on exports 2017-09-16 16:41:04 -04:00
Joey Hess
fa73387345
add example, including use of branch:subdir to export only a subdir 2017-09-16 16:40:20 -04:00
Joey Hess
7960870e48
add link to git-annex-remote-gvfs for smb / sftp 2017-09-16 13:57:37 -04:00
gleachkr@7c488e398809299a1100b93f8884de43dee83674
5ec74f1cdb Added a comment: Thanks! 2017-09-16 16:46:48 +00:00
Joey Hess
dbe8c42fdc
update 2017-09-16 12:09:11 -04:00
Joey Hess
b7dafb4f66
response for gleachkr 2017-09-16 12:07:12 -04:00
gleachkr@7c488e398809299a1100b93f8884de43dee83674
63dfd6cde2 Added a comment 2017-09-16 16:02:41 +00:00
Joey Hess
260d1061cd
followup for gleachkr 2017-09-16 11:26:00 -04:00
gleachkr@7c488e398809299a1100b93f8884de43dee83674
97eacf3a7a Added a comment: More data points 2017-09-16 01:16:59 +00:00
Joey Hess
af82b2229c
devblog 2017-09-15 15:54:20 -04:00
Joey Hess
1223960294
empty directory removal working 2017-09-15 15:24:45 -04:00
Joey Hess
3435a47245
Merge branch 'master' of ssh://git-annex.branchable.com 2017-09-15 13:20:09 -04:00
Joey Hess
9f4ffe65e9
implement removeExportDirectory
Not yet called by Command.Export.

WebDAV needs this to clean up empty collections. Also, example.sh turned
out to not be cleaning up directories when removing content
from them, so it made sense for it to use this.

Remote.Directory did not need it, and since its cleanup method for empty
directories is more efficient than what Command.Export will need to do
to find empty directories, it uses Nothing so that extra work can be
avoided.

This commit was sponsored by Thom May on Patreon.
2017-09-15 13:18:21 -04:00
Joey Hess
78a67f29f8
forwarded from irc 2017-09-15 13:13:43 -04:00
Joey Hess
5fe803e14e
update 2017-09-15 12:22:11 -04:00
tomasz
dd2c97d8ef 2017-09-15 14:33:31 +00:00
benjamin.poldrack@d09ccff6d42dd20277610b59867cf7462927b8e3
849a5d4771 Added a comment: @joey: Sorry ... 2017-09-14 12:00:13 +00:00
Joey Hess
268a0cc664
update 2017-09-13 15:52:19 -04:00
Joey Hess
86fe31c767
Merge branch 'master' of ssh://git-annex.branchable.com 2017-09-13 15:36:17 -04:00
Joey Hess
bf48ba4ef7
work around box.com webdav rename bug
Apparently box.com renaming is just buggy. I tried a couple of fixes:

* In case the http Manager was opening multiple connections and reaching
  different backend servers, I tried limiting the number of connections
  to 1. Didn't help.
* To make sure it was not a http connection reuse problem, I tried
  rewriting how exportAction works, so that the same http connection
  is clearly open. Didn't help.

So, disable renaming of exports for box.com. It would be good to test it
with some other webdav server.

This commit was sponsored by John Peloquin on Patreon.
2017-09-13 15:26:56 -04:00
yarikoptic
afac1c46bc Added a comment 2017-09-13 17:58:54 +00:00
Joey Hess
fd062dafc5
comment 2017-09-13 12:34:45 -04:00
yarikoptic
0e4504cd2f Added a comment 2017-09-13 14:32:57 +00:00
yarikoptic
896e516941 crossed away comment on hash levels 2017-09-13 14:27:19 +00:00
yarikoptic
15ebb707fc initial finding about incorrect permissions ignored by fsck 2017-09-13 14:25:16 +00:00
Joey Hess
f8fd66d3f8
fix compaction of export.log
It was not getting old lines removed, because the tree graft confused
the updater, so it union merged from the previous git-annex branch,
which still contained the old lines. Fixed by carefully using setIndexSha.

This commit was supported by the NSF-funded DataLad project.
2017-09-12 18:30:36 -04:00
Joey Hess
0fadb620d3
devblog 2017-09-12 18:30:07 -04:00
Joey Hess
c8ed941a26
change export.log format to support multiple export remotes
This breaks backwards compatibility, but only with unreleased versions of
git-annex, which I think is acceptable.

This commit was supported by the NSF-funded DataLad project.
2017-09-12 17:45:52 -04:00
Joey Hess
63ba764923
bug 2017-09-12 17:00:15 -04:00
Joey Hess
9c3622882b
export: cache connections for S3 and webdav 2017-09-12 16:59:04 -04:00
Joey Hess
7ad8e8b889
more box.com strangeness 2017-09-12 15:45:43 -04:00
Joey Hess
7f8892f2d2
document box.com rename problem 2017-09-12 15:16:17 -04:00
Joey Hess
4d3a464e83
export to webdav
This basically works, but there's a bug when renaming a file that leaves
a .git-annex-temp-content-key file in the webdav store, that never gets
cleaned up.

Also, exporting files with spaces to box.com seems to fail; perhaps it
does not support it?

This commit was supported by the NSF-funded DataLad project.
2017-09-12 14:10:09 -04:00
Joey Hess
1332e6cec0
stop warning about removals from IA
In a test, I uploaded a pdf, and several files were derived from it.
After removing the pdf, the derived files went away after approximatly
half an hour. This window does not seem worth warning about every time.
Documented it in the tip.
2017-09-12 12:47:43 -04:00
Joey Hess
267f47c473
S3: Allow removing files from IA, but warn about derived versions potentially still existing there.
Removal works, only derives are a potential issue, so allow removing
with a warning. This way, unexporting a file works, and behavior is
consistent with IA remotes whether or not exporttree=yes.

Also tested exporting filenames containing unicode, spaces, underscores.
All worked, despite the IA's faq saying it doesn't.

This commit was sponsored by Trenton Cronholm on Patreon.
2017-09-12 12:35:58 -04:00
https://christian.amsuess.com/chrysn
7f0e2a4685 Added a comment: Issue also affects Samsung devices, git unaffected 2017-09-11 18:07:51 +00:00
NathanCollins
1ccba439e6 Added a comment: The initremote command appears to hang due to low entropy 2017-09-10 02:32:26 +00:00
ilovezfs
5cda73c529 2017-09-09 17:57:34 +00:00
Joey Hess
425a3a10b0
close 2017-09-09 13:08:42 -04:00
ilovezfs
aa608ab831 2017-09-09 16:30:28 +00:00
yarikoptic
b4e40c5477 very minor typo 2017-09-08 21:23:49 +00:00
Joey Hess
2bb96e9c32
very delayed response now that feature is added 2017-09-08 16:47:42 -04:00
Joey Hess
0228714406
consistency 2017-09-08 16:41:50 -04:00
Joey Hess
e6f2af3b63
devblog 2017-09-08 16:29:18 -04:00
Joey Hess
9c78bbb6b0
Merge branch 'master' of ssh://git-annex.branchable.com 2017-09-08 16:28:46 -04:00
Joey Hess
650d0955a0
S3 export finalization
Fixed ACL issue, and updated some documentation.
2017-09-08 16:28:28 -04:00
Joey Hess
44cd5ae313
S3 export (untested)
It opens a http connection per file exported, but then so does git
annex copy --to s3.

Decided not to munge exported filenames for IA. Too large a chance of
the munging having confusing results. Instead, export of files not
supported by IA, eg with spaces in their name, will fail.

This commit was supported by the NSF-funded DataLad project.
2017-09-08 15:46:24 -04:00
Joey Hess
a1b195d84c
External special remote protocol extended to support export.
Also updated example.sh to support export.

This commit was supported by the NSF-funded DataLad project.
2017-09-08 14:24:05 -04:00
karel-de-macil
72c4968014 Added a comment 2017-09-08 08:31:36 +00:00
Joey Hess
3b885d7914
devblog 2017-09-07 16:42:24 -04:00
Joey Hess
34ad1c15e8
mention git-annex export 2017-09-07 16:17:46 -04:00
Joey Hess
165725b9df
update 2017-09-07 16:07:28 -04:00
Joey Hess
a55b2045ad
correction 2017-09-07 16:00:03 -04:00
Joey Hess
a50d061570
comment 2017-09-07 15:55:07 -04:00
Joey Hess
9379f4174e
Merge branch 'master' of ssh://git-annex.branchable.com 2017-09-07 15:54:04 -04:00
Joey Hess
2823c6bd06
Merge branch 'export' 2017-09-07 15:53:34 -04:00
Joey Hess
a48b52c056
avoid renaming to temp files before deleting
Only rename when actually ncessary.

The diff gets buffered in memory. Probably git has to buffer a diff in
memory when generating it as well, so this memory usage should not be a
problem, even when the diff is very large. I hope.

This commit was supported by the NSF-funded DataLad project.
2017-09-07 14:32:47 -04:00
Joey Hess
16eb2f976c
prevent exporttree=yes on remotes that don't support exports
Don't allow "exporttree=yes" to be set when the special remote
does not support exports. That would be confusing since the user would
set up a special remote for exports, but `git annex export` to it would
later fail.

This commit was supported by the NSF-funded DataLad project.
2017-09-07 13:48:44 -04:00
Joey Hess
45d30820ac
document new stuff for external special remotes
Got rid of RENAMEEXPORT-UNSUPPORTED, no reason not to use
RENAMEEXPORT-FAILURE for that.

This commit was supported by the NSF-funded DataLad project.
2017-09-07 12:59:35 -04:00
Horus
b7dbee0607 2017-09-07 09:38:29 +00:00
Horus
1260756563 Added a comment 2017-09-07 09:30:53 +00:00
anthony@ad39673d230d75cbfd19d2757d754030049c7673
bb72640042 Added a comment 2017-09-06 22:01:57 +00:00
Joey Hess
084fbee8c8
devblog 2017-09-06 17:22:22 -04:00
Joey Hess
6ab14710fc
fix consistency bug reading from export database
The export database has writes made to it and then expects to read back
the same data immediately. But, the way that Database.Handle does
writes, in order to support multiple writers, makes that not work, due
to caching issues. This resulted in export re-uploading files it had
already successfully renamed into place.

Fixed by allowing databases to be opened in MultiWriter or SingleWriter
mode. The export database only needs to support a single writer; it does
not make sense for multiple exports to run at the same time to the same
special remote.

All other databases still use MultiWriter mode. And by inspection,
nothing else in git-annex seems to be relying on being able to
immediately query for changes that were just written to the database.

This commit was supported by the NSF-funded DataLad project.
2017-09-06 17:19:07 -04:00
Joey Hess
35cd329bd8
Merge branch 'master' into export 2017-09-06 15:49:30 -04:00
Joey Hess
3ccf661d7c
todo 2017-09-06 15:46:35 -04:00
Joey Hess
cae3704a44
export file renaming
This is seriously super hairy. It has to handle interrupted exports,
which may be resumed with the same or a different tree. It also has to
recover from export conflicts, which could cause the wrong content
to be renamed to a file.

I think this works, or is close to working. See the update to the design
for how it works.

This is definitely not optimal, in that it does more renames than are
necessary. It would probably be worth finding the keys that are really
renamed and only renaming those. But let's get the "simple" approach to
work first..

This commit was supported by the NSF-funded DataLad project.
2017-09-06 15:44:10 -04:00
Joey Hess
0fa948b402
record incomplete exports in export.log
Not yet used, but essential for resuming cleanly.

Note that, in normmal operation, only one commit is made to export.log
during an export; the incomplete version only gets to the journal and
is then overwritten.

This commit was supported by the NSF-funded DataLad project.
2017-09-06 13:45:03 -04:00
Joey Hess
1ec3a9eb05
thoughts on handling renames efficiently
This gets complicated, but I think this design will work!

This commit was supported by the NSF-funded DataLad project.
2017-09-06 13:04:09 -04:00
Joey Hess
8918b7ab09
Merge branch 'master' of ssh://git-annex.branchable.com 2017-09-06 12:26:18 -04:00
Edward Betts
c1b9f718bc
move line break to fix broken link 2017-09-06 11:25:06 -04:00
Joey Hess
fd8392b669
update 2017-09-06 11:23:04 -04:00
karel-de-macil
9a2e687b0d 2017-09-06 09:20:26 +00:00
yarikoptic
3e7d0e0de7 Added datalad "super-dataset". 2017-09-05 17:00:38 +00:00
EskildHustvedt
8755f320f5 removed 2017-09-05 09:17:44 +00:00
EskildHustvedt
70ecf52888 Added a comment: Partial exports 2017-09-05 09:16:59 +00:00
EskildHustvedt
5e15956225 Added a comment: Partial exports 2017-09-05 09:16:26 +00:00
eacousineau
b8b7a9a902 2017-09-05 01:22:19 +00:00
Joey Hess
c7af16eb3a
Merge branch 'master' of ssh://git-annex.branchable.com 2017-09-04 17:03:20 -04:00
Joey Hess
fa4defc9d7
devblog 2017-09-04 17:02:30 -04:00
Joey Hess
662f2a5ee7
git annex get from exports
Straightforward enough, except for the needed belt-and-suspenders sanity
checks to avoid foot shooting due to exports not being key/value stores.

* Even when annex.verify=false, always verify from exports.
* Only get files from exports that use a backend that supports
  checksum verification.
* Never trust exports, even if the user says to, because then
  `git annex drop` would drop content if the export seemed to contain
  a copy.

This commit was supported by the NSF-funded DataLad project.
2017-09-04 16:39:56 -04:00
Joey Hess
4da763439b
use export db to correctly handle duplicate files
Removed uncorrect UniqueKey key in db schema; a key can appear multiple
times with different files.

The database has to be flushed after each removal. But when adding files
to the export, lots of changes are able to be queued up w/o flushing.
So it's still fairly efficient.

If large removals of files from exports are too slow, an alternative
would be to make two passes over the diff, one pass queueing deletions
from the database, then a flush and the a second pass updating the
location log. But that would use more memory, and need to look up
exportKey twice per removed file, so I've avoided such optimisation yet.

This commit was supported by the NSF-funded DataLad project.
2017-09-04 14:39:32 -04:00
Joey Hess
28e2cad849
implement exporttree=yes configuration
* Only export to remotes that were initialized to support it.
* Prevent storing key/value on export remotes.
* Prevent enabling exporttree=yes and encryption in the same remote.

SetupStage Enable was changed to take the old RemoteConfig.
This allowed only setting exporttree when initially setting up a
remote, and not configuring it later after stuff might already be stored
in the remote.

Went with =yes rather than =true for consistency with other parts of
git-annex. Changed docs accordingly.

This commit was supported by the NSF-funded DataLad project.
2017-09-04 13:09:38 -04:00
vgp
28635f0190 Added a comment 2017-09-01 21:40:11 +00:00
Joey Hess
a4328b49d2
refactor ExportActions
This will allow disabling exports for remotes that are not configured to
allow them. Also, exportSupported will be useful for the external
special remote to probe.

This commit was supported by the NSF-funded DataLad project
2017-09-01 13:05:09 -04:00
Joey Hess
f19a45973a
devblog 2017-08-31 18:14:04 -04:00
Joey Hess
5483ea90ec
graft exported tree into git-annex branch
So it will be available later and elsewhere, even after GC.

I first though to use git update-index to do this, but feeding it a line
with a tree object seems to always cause it to generate a git subtree
merge. So, fell back to using the Git.Tree interface to maniupulate the
trees, and not involving the git-annex branch index file at all.

This commit was sponsored by Andreas Karlsson.
2017-08-31 18:06:49 -04:00
Joey Hess
978885247e
implement export.log and resolve export conflicts
Incremental export updates work now too.

This commit was sponsored by Anthony DeRobertis on Patreon.
2017-08-31 15:47:23 -04:00
Joey Hess
bb08b1abd2
make storeExport atomic
This avoids needing to deal with the complexity of partially transferred
files in the export. We'd not be able to resume uploading to such a file
anyway, so just avoid them.

The implementation in Remote.Directory is not completely ideal, because
it could leave the temp file hanging around in the export directory.
This only happens if it's killed with -9, or there's a power failure;
normally viaTmp cleans up after itself, even when interrupted. I could
not see a better way to do it though, since the export directory might
be the root of a filesystem.

Also some design thoughts on resuming, which depend on storeExport being
atomic.

This commit was sponsored by Fernando Jimenez on Partreon.
2017-08-31 14:24:32 -04:00
Joey Hess
7c7af82578
resuming exports
Make a pass over the whole exported tree, and upload anything that has
not yet reached the export. Update location log when exporting.

Note that the synthesized keys for non-annexed files are stored in the
location log too.

Some cases involving files in the tree with the same content are not
handled correctly yet.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
2017-08-31 13:33:50 -04:00
Joey Hess
943de657b8
Merge branch 'master' into export 2017-08-31 12:16:22 -04:00
Joey Hess
bdec46ac13
a few tweaks to the design 2017-08-30 13:14:05 -04:00
yarikoptic
b14c4776d6 initial bug report 2017-08-30 14:15:45 +00:00
vgp
71682954f8 Added a comment 2017-08-30 12:42:23 +00:00
Joey Hess
474dd3ae6d
Merge branch 'master' of ssh://git-annex.branchable.com 2017-08-29 17:27:37 -04:00
Joey Hess
74aa4c503b
devblog 2017-08-29 17:26:42 -04:00
Joey Hess
9f3630f4e0
initial export command
Very basic operation works, but of course this is only the beginning.

This commit was sponsored by Nick Daly on Patreon.
2017-08-29 15:10:01 -04:00
Joey Hess
8f35c6584d
documentation for export
This commit was sponsored by Ole-Morten Duesund on Patreon.
2017-08-29 13:25:48 -04:00
supernaught
15601f2b66 Added a comment 2017-08-28 22:01:23 +00:00
Joey Hess
6ae9d8fe49
simplify
Key is needed to use in reply
2017-08-28 15:37:34 -04:00
Joey Hess
ed5d8ee9ea
update proposed external special remote protocol 2017-08-28 15:34:26 -04:00
Joey Hess
792e582a60
fix link 2017-08-28 15:07:23 -04:00
Joey Hess
92ec2d13b5
formatting 2017-08-28 15:07:19 -04:00
Joey Hess
8cad03d7ca
typo 2017-08-28 15:04:25 -04:00
Joey Hess
5c99131b7b
comment 2017-08-28 13:49:16 -04:00
Joey Hess
4e5b3062d9
response 2017-08-28 13:41:19 -04:00
Joey Hess
bad02c4360
response 2017-08-28 13:38:26 -04:00
Joey Hess
f27efbe3c6
respond and close 2017-08-28 13:36:08 -04:00
Joey Hess
2011716202
close bug filed about git-annex from 2014 2017-08-28 13:29:36 -04:00
Joey Hess
f313fcc2a3
response 2017-08-28 13:26:30 -04:00
Joey Hess
db2a06b66f
init: Display an additional message when it detects a filesystem that allows writing to files whose write bit is not set. 2017-08-28 13:21:18 -04:00
Joey Hess
291d5bb471
response 2017-08-28 13:21:04 -04:00
Joey Hess
755c4a97b5
comment 2017-08-28 13:16:50 -04:00
Joey Hess
dbe031b6b9
remove links to trees of files, as they confuse users and prevent them reading the instructions before downloading 2017-08-28 13:05:03 -04:00
Joey Hess
eae54bc4f5
comment 2017-08-28 13:03:57 -04:00
Joey Hess
ddc29f5bcd
close 2017-08-28 13:01:56 -04:00
Joey Hess
bfaa78ee35
response 2017-08-28 13:01:05 -04:00
Joey Hess
ee2f096e3b
Support building with feed-1.0, while still supporting older versions.
This commit was sponsored by Jeff Goeke-Smith on Patreon.
2017-08-28 12:29:28 -04:00
marek@33e8ba4fbc201af14a2badcc0656024401f5c916
86ea64d70e 2017-08-28 10:09:42 +00:00
Alan
9428df794f Added a comment: For stretch on armhf, install from unstable 2017-08-28 09:25:22 +00:00
Alan
078c458ff1 Added a comment: No package for armhf on stretch 2017-08-28 09:00:15 +00:00
hugo
1ae6d0aa6b 2017-08-27 12:52:12 +00:00
hugo
650cabe345 2017-08-27 12:51:36 +00:00
hugo
69530ea4fe 2017-08-27 12:50:35 +00:00
aditya.mmy@be7b2fbd14a6ce2b6b8588f6719672725a11ed35
4dfb045549 Added a comment: Nevermind - I got it working 2017-08-27 10:18:03 +00:00
aditya.mmy@be7b2fbd14a6ce2b6b8588f6719672725a11ed35
1d6617e300 fix 2017-08-27 07:18:28 +00:00
aditya.mmy@be7b2fbd14a6ce2b6b8588f6719672725a11ed35
b22e6c1352 fix formatting 2017-08-27 07:17:23 +00:00
aditya.mmy@be7b2fbd14a6ce2b6b8588f6719672725a11ed35
a2166d67bd Reporting a bug. 2017-08-27 07:14:54 +00:00
michalrus
a95bbe6eb5 Added a comment 2017-08-26 12:20:58 +00:00
michalrus
1c55387f8c 2017-08-26 12:20:23 +00:00
michalrus
5f73868c39 Added a comment 2017-08-26 12:19:17 +00:00
michalrus
5058b94118 Added a comment 2017-08-26 12:18:54 +00:00
michalrus
88a55baf45 Added a comment 2017-08-26 12:18:11 +00:00
michalrus
ba5a6c428a removed 2017-08-26 12:15:14 +00:00
michalrus
49b1494b26 Added a comment 2017-08-26 12:14:06 +00:00
Alan
47573f64c2 Added a comment: No package for debian stretch, armh? 2017-08-25 11:58:39 +00:00
Joey Hess
1226936edc
formatting 2017-08-24 16:38:15 -04:00
Joey Hess
8d5ea49d57
Merge branch 'master' of ssh://git-annex.branchable.com 2017-08-24 16:36:26 -04:00
Joey Hess
a7ae7b029a
bug from email 2017-08-24 16:36:02 -04:00
vgp
5bd7d07a63 2017-08-24 03:41:52 +00:00
loredai
d34631cbbd 2017-08-23 16:07:33 +00:00
loredai
f3b7fe82db 2017-08-23 16:04:23 +00:00
loredai
ee291f6489 2017-08-23 16:00:57 +00:00
loredai
b48d032d3e removed 2017-08-23 15:43:34 +00:00
loredai
1b44b7a36a Added a comment: Upgrade path can produce confusing output 2017-08-23 15:42:24 +00:00
olaf
8ee915fa90 Added a comment: It's the old remote... 2017-08-23 06:03:45 +00:00
olaf
8fffaeb0ad Added a comment: Similar(ish) bug reports 2017-08-23 05:55:51 +00:00
olaf
3730f9ae85 2017-08-23 05:47:39 +00:00
olaf
2c892d2fc2 2017-08-23 05:46:13 +00:00
olaf
00b6fa4d61 2017-08-23 04:55:45 +00:00