summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-09-20 13:46:07 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-09-20 13:46:07 -0400
commit66d092dc7c5731b75bd69887ae5b6a0e37625b90 (patch)
tree6780e06e535d12f4e178a483cb2cad1af31a2c0d
parent19e35f7f0d6f87f20dca3e30a74e5700bbb86d84 (diff)
update
-rw-r--r--Utility/Rsync.hs5
-rw-r--r--doc/design/assistant/progressbars.mdwn22
2 files changed, 17 insertions, 10 deletions
diff --git a/Utility/Rsync.hs b/Utility/Rsync.hs
index 0fe4a8986..af76647fd 100644
--- a/Utility/Rsync.hs
+++ b/Utility/Rsync.hs
@@ -48,7 +48,10 @@ rsync = boolSystem "rsync"
{- Runs rsync, but intercepts its progress output and feeds bytes
- complete values into the callback. The progress output is also output
- - to stdout. -}
+ - to stdout.
+ -
+ - The params must enable rsync's --progress mode for this to work.
+ -}
rsyncProgress :: (Integer -> IO ()) -> [CommandParam] -> IO Bool
rsyncProgress callback params = catchBoolIO $
withHandle StdoutHandle createProcessSuccess p (feedprogress [])
diff --git a/doc/design/assistant/progressbars.mdwn b/doc/design/assistant/progressbars.mdwn
index ade9a8370..7a7cf31ad 100644
--- a/doc/design/assistant/progressbars.mdwn
+++ b/doc/design/assistant/progressbars.mdwn
@@ -16,13 +16,17 @@ This is one of those potentially hidden but time consuming problems.
## uploads
-Options:
+Each individual remote type needs to implement its own support for calling
+the ProgressCallback as the upload progresses.
-* Feed rsync output into a parser and parse out a progress value. Ugly,
- failure prone, but potentially the least CPU-expensive option.
-* Use librsync. Note: It's not wire-compatiable with the actual rsync
- command.
-* Set up a FIFO, have rsync read from or write to that, and the FIFO
- feeder/reader then can update the transfer info. Generic enough to
- work for most (all?) special remotes, but also the most expensive option,
- involving another copy through memory of the whole file contents.
+* 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.
+* rsync
+* directory
+* web: Not applicable; does not upload
+* S3
+* bup
+* hook: Would require the hook interface to somehow do this, which seems
+ too complicated. So skipping.