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.

There's librsync which might support reporting the progress through its API, but it seems to be in beta.
Comment by http://abhidg.myopenid.com/ Wed Jun 13 02:14:29 2012
Comments on this page are closed.