aboutsummaryrefslogtreecommitdiff
path: root/doc/todo/parallel_get.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'doc/todo/parallel_get.mdwn')
-rw-r--r--doc/todo/parallel_get.mdwn85
1 files changed, 0 insertions, 85 deletions
diff --git a/doc/todo/parallel_get.mdwn b/doc/todo/parallel_get.mdwn
deleted file mode 100644
index fb3f8d098..000000000
--- a/doc/todo/parallel_get.mdwn
+++ /dev/null
@@ -1,85 +0,0 @@
-Wish: `git annex get [files] -jN` should run up to N downloads of files
-concurrently.
-
-This can already be done by just starting up N separate git-annex
-processes all trying to get the same files. They'll coordinate themselves
-to avoid downloading the same file twice.
-
-But, the output of concurrent git annex get's in a single teminal is a
-mess.
-
-It would be nice to have something similar to docker's output when fetching
-layers of an image. Something like:
-
- get foo1 ok
- get foo2 ok
- get foo3 -> 5% 100 KiB/s
- get foo4 -> 3% 90 KiB/s
- get foo5 -> 20% 1 MiB/s
-
-Where the bottom N lines are progress displays for the downloads that are
-currently in progress. When a download finishes, it can scroll up the
-screen with "ok".
-
- get foo1 ok
- get foo2 ok
- get foo5 ok
- get foo3 -> 5% 100 KiB/s
- get foo4 -> 3% 90 KiB/s
- get foo6 -> 0% 110 Kib/S
-
-This display could perhaps be generalized for other concurrent actions.
-For example, drop:
-
- drop foo1 ok
- drop foo2 failed
- Not enough copies ...
- drop foo3 -> (checking r1...)
- drop foo4 -> (checking r2...)
-
-But, do get first.
-
-Pain points:
-
-1. Currently, git-annex lets tools like rsync and wget display their own
- progress. This makes sense for the single-file at a time get, because
- rsync can display better output than just a percentage. (This is especially
- the case with aria2c for torrents, which displays seeder/leecher info in
- addition to percentage.)
-
- But in multi-get mode, the progress display would be simplified. git-annex
- can already get percent done information, either as reported by individiual
- backends, or by falling back to polling the file as it's downloaded.
-
-2. The mechanics of updating the screen for a multi-line progress output
- require some terminal handling code. Using eg, curses, in a mode that
- doesn't take over the whole screen display, but just moves the cursor
- up to the line for the progress that needs updating and redraws that
- line. Doing this portably is probably going to be a pain, especially
- I have no idea if it can be done on Windows.
-
- An alternative would be a display more like apt uses for concurrent
- downloads, all on one line:
-
- get foo1 ok
- get foo2 ok
- get [foo3 -> 5% 100 KiB/s] [foo4 -> 3% 90 KiB/s] [foo5 -> 20% 1 MiB/s]
-
- The problem with that is it has to avoid scrolling off the right
- side, so it probably has to truncate the line. Since filenames
- are often longer than "fooN", it probably has to elipsise the filename.
- This approach is just not as flexible or nice in general.
-
-See also: [[parallel_possibilities]]
-
-> I am looking at using the ascii-progress library for this.
-> It has nice support for multiple progress bars, and is portable.
-> I have filed 7 issues on it, around 4 of which need to get fixed before
-> it's suitable for git-annex to use.. --[[Joey]]
-
->> `git annex get -JN` works now, but lacks any progress display.
->> Waiting on some updates to ascii-progress. --[[Joey]]
-
->>> Wrote concurrent-output; [[done]] --[[Joey]]
-
-[[!meta author=yoh]]