This commit is contained in:
Joey Hess 2012-07-02 16:08:23 -04:00
parent 0c0fd0c54c
commit 224dac374e

View file

@ -10,12 +10,13 @@ all the other git clones, at both the git level and the key/value level.
* transfer info for git-annex-shell **done** * transfer info for git-annex-shell **done**
* update files as transfers proceed. See [[progressbars]] * update files as transfers proceed. See [[progressbars]]
(updating for downloads is easy; for uploads is hard) (updating for downloads is easy; for uploads is hard)
* add Transfer queue TChan * add Transfer queue TChan **done**
* add TransferInfo Map to DaemonStatus for tracking transfers in progress.
**done**
* enqueue Transfers (Uploads) as new files are added to the annex by * enqueue Transfers (Uploads) as new files are added to the annex by
Watcher. Watcher.
* enqueue Tranferrs (Downloads) as new dangling symlinks are noticed by * enqueue Tranferrs (Downloads) as new dangling symlinks are noticed by
Watcher. Watcher.
* add TransferInfo Map to DaemonStatus for tracking transfers in progress.
* Poll transfer in progress info files for changes (use inotify again! * Poll transfer in progress info files for changes (use inotify again!
wow! hammer, meet nail..), and update the TransferInfo Map wow! hammer, meet nail..), and update the TransferInfo Map
* Write basic Transfer handling thread. Multiple such threads need to be * Write basic Transfer handling thread. Multiple such threads need to be
@ -52,6 +53,9 @@ all the other git clones, at both the git level and the key/value level.
signaling a change out of band. signaling a change out of band.
4. Add a hook, so when there's a change to sync, a program can be run 4. Add a hook, so when there's a change to sync, a program can be run
and do its own signaling. and do its own signaling.
5. --debug will show often unnecessary work being done. Optimise.
6. It would be nice if, when a USB drive is connected,
syncing starts automatically. Use dbus on Linux?
## data syncing ## data syncing
@ -84,12 +88,11 @@ anyway.
* Transfer threads started/stopped as necessary to move data. * Transfer threads started/stopped as necessary to move data.
(May sometimes want multiple threads downloading, or uploading, or even both.) (May sometimes want multiple threads downloading, or uploading, or even both.)
type TransferQueue = TChan [Transfer] startTransfer :: TransferQueue -> Transfer -> Annex ()
-- add (M.Map Transfer TransferInfo) to DaemonStatus startTransfer q transfer = error "TODO"
startTransfer :: Transfer -> Annex TransferID stopTransfer :: TransferQueue -> TransferID -> Annex ()
stopTransfer q transfer = error "TODO"
stopTransfer :: TransferID -> IO ()
The assistant needs to find out when `git-annex-shell` is receiving or The assistant needs to find out when `git-annex-shell` is receiving or
sending (triggered by another remote), so it can add data for those too. sending (triggered by another remote), so it can add data for those too.