diff options
author | Joey Hess <joey@kitenet.net> | 2012-06-21 20:02:00 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-06-21 20:02:00 -0400 |
commit | f27da7a1cc095dcaf9ce0cc2170fe98d3b050336 (patch) | |
tree | 570804543c4b8f54cb76cec2313ebe8989b14a68 /doc/design/assistant/syncing.mdwn | |
parent | 8a0d6d83f4e241f0cc18269e62e7289fec060e4e (diff) |
blog for the day and design update
Diffstat (limited to 'doc/design/assistant/syncing.mdwn')
-rw-r--r-- | doc/design/assistant/syncing.mdwn | 14 |
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 |