summaryrefslogtreecommitdiff
path: root/doc/design
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-09-21 23:25:06 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-09-21 23:25:06 -0400
commitc048add74dc91609e98e3513b0d167c5c7c9048c (patch)
tree7ebd020d494e43c9eb154a0390bf6b1101d1a4d6 /doc/design
parentee8789e9d74e74bb453925d46d1b0eed904e323f (diff)
hooked up git-annex-shell transferinfo
Finally done with progressbars!
Diffstat (limited to 'doc/design')
-rw-r--r--doc/design/assistant/progressbars.mdwn30
1 files changed, 4 insertions, 26 deletions
diff --git a/doc/design/assistant/progressbars.mdwn b/doc/design/assistant/progressbars.mdwn
index ead440453..61e19ba1e 100644
--- a/doc/design/assistant/progressbars.mdwn
+++ b/doc/design/assistant/progressbars.mdwn
@@ -17,36 +17,14 @@ This is one of those potentially hidden but time consuming problems.
## uploads
Each individual remote type needs to implement its own support for calling
-the ProgressCallback as the upload progresses.
-
-* git: Done, with one exception: `git-annex-shell sendkey` runs `rsync
- --server --sender` and in that mode it does not report progress info.
- So downloads initiated by other repos do not show progress in the repo
- doing the uploading.
-
- Maybe I should
- write a proxy for the rsync wire protocol that can tell what chunk of the
- file is being sent, and shim it in front of the rsync server? Sadly,
- the protocol is insane.
-
- Another idea: Invert things. Make `git-annex-shell sendkey` run
- `rsync -e 'cat'`, so it treats the incoming ssh connection as the server.
- (cat probably won't really work; bidirectional pipe needed).
- Run rsync in `--server` mode on the *client* side, piped to ssh.
- Now the `git-annex` side doesn't have a progress bar (but it can poll the
- file size and produce its own), `git-annex-shell` side does have a progress
- bar.
-
- Less crazy, but probably harder idea: Multiplex progress info from client
- back to server over the ssh connection, and demultiplex at server end.
- Or, use a separate ssh connection, and let ssh connection caching handle
- the multiplexing.
+the MeterUpdate callback as the upload progresses.
+* git: **done**
* rsync: **done**
* directory: **done**
* web: Not applicable; does not upload
-* S3
-* bup
+* S3: TODO
+* bup: TODO
* hook: Would require the hook interface to somehow do this, which seems
too complicated. So skipping.