packages feed

git-annex-3.20120924: doc/design/assistant/progressbars.mdwn

Currently, git-annex takes a very lazy approch to displaying
progress into. It just lets rsync or whatever display the progress
for it, in the terminal.

Something better is needed for the [[webapp]]. There needs to be a
way for the web app to know what the current progress is of all transfers.

This is one of those potentially hidden but time consuming problems.

## downloads

* Watch temp file as it's coming in and use its size.
  This is the only option for some special remotes (ie, non-rsync).
  Can either poll every .5 seconds or so to check file size, or
  could use inotify. **done**

## uploads

Each individual remote type needs to implement its own support for calling
the MeterUpdate callback as the upload progresses.

* git: **done**
* rsync: **done**
* directory: **done**
* web: Not applicable; does not upload 
* S3: TODO
* bup: TODO
* hook: Would require the hook interface to somehow do this, which seems
  too complicated. So skipping.

## communication

It may be worth using a better communication channel than files on disk for
the transfer progress. Shared memory could be used, or http posts to the
webapp.