summaryrefslogtreecommitdiff
path: root/doc/design/assistant/syncing.mdwn
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-06-21 20:02:00 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-06-21 20:02:00 -0400
commitf27da7a1cc095dcaf9ce0cc2170fe98d3b050336 (patch)
tree570804543c4b8f54cb76cec2313ebe8989b14a68 /doc/design/assistant/syncing.mdwn
parent8a0d6d83f4e241f0cc18269e62e7289fec060e4e (diff)
blog for the day and design update
Diffstat (limited to 'doc/design/assistant/syncing.mdwn')
-rw-r--r--doc/design/assistant/syncing.mdwn14
1 files changed, 11 insertions, 3 deletions
diff --git a/doc/design/assistant/syncing.mdwn b/doc/design/assistant/syncing.mdwn
index 0813b8b70..56c9692e3 100644
--- a/doc/design/assistant/syncing.mdwn
+++ b/doc/design/assistant/syncing.mdwn
@@ -3,13 +3,21 @@ all the other git clones, at both the git level and the key/value level.
## git syncing
-1. At regular intervals, just run `git annex sync`, which already handles
- bidirectional syncing.
+1. Can use `git annex sync`, which already handles bidirectional syncing.
+ When a change is committed, launch the part of `git annex sync` that pushes
+ out changes.
+1. Watch `.git/refs/remotes/` for changes (which would be pushed in from
+ another node via `git annex sync`), and run the part of `git annex sync`
+ that merges in received changes, and follow it by the part that pushes out
+ changes (sending them to any other remotes).
+ [The watching can be done with the existing inotify code! This avoids needing
+ any special mechanism to notify a remote that it's been synced to.]
2. Use a git merge driver that adds both conflicting files,
so conflicts never break a sync.
3. Investigate the XMPP approach like dvcs-autosync does, or other ways of
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.
## data syncing