summaryrefslogtreecommitdiff
path: root/doc/design/assistant/progressbars.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'doc/design/assistant/progressbars.mdwn')
-rw-r--r--doc/design/assistant/progressbars.mdwn31
1 files changed, 27 insertions, 4 deletions
diff --git a/doc/design/assistant/progressbars.mdwn b/doc/design/assistant/progressbars.mdwn
index 33db30d86..de059b967 100644
--- a/doc/design/assistant/progressbars.mdwn
+++ b/doc/design/assistant/progressbars.mdwn
@@ -12,10 +12,33 @@ This is one of those potentially hidden but time consuming problems.
* Watch temp file as it's coming in and use its size.
Can either poll every .5 seconds or so to check file size, or
could use inotify. **done**
-
-* TODO: Encrypted remotes download to a different temp file, and so the
- progress bar actually only appears for the decryption once the download
- is complete.
+* When easily available, remotes call the MeterUpdate callback as uploads
+ progress. **done**
+
+* TODO a bad interaction can happen between the TransferPoller and the
+ TransferWatcher when downloading from an encrypted remote. If
+ a partially transferred file exists already, in the gitAnnexTmpLocation
+ of the (un-encrypted) key, the TransferPoller will trust it to have
+ the right size of the content downloaded. This will stomp, every 0.5
+ seconds, over the updates to the size that the TransferWatcher is seeing
+ in the transfer log files.
+
+ We still need the TransferPoller for the remotes that don't have
+ download meters. This includes git, web, bup, and hook.
+
+ Need to teach the TransferPoller to detect when transfer logs for downloads
+ have file size info, and use it, rather than looking at the temp file.
+ The question is, how to do this efficiently? It could just poll the
+ transfer log every time, and if size is nonzero, ignore the temp file.
+ This would work, but it would require a lot more work than the simple
+ statting of the file it does now. And this runs every 0.5 seconds.
+
+ I could try to convert all remotes I care about to having progress
+ for downloads. But converting the web special remote will be hard..
+
+ I think perhaps the best solution is to make the TransferWatcher also watch
+ the temp files. Then if one changes, it can get its new size. If a
+ transfer info file changes, it can get the size from there.
## uploads