Унисон сделает это.
Внутри папки Unison, в которой хранятся данные синхронизации (путь к osx:~/Library/Application Support/Unison), создайте два файла .prf.
example1.prf
# Unison preferences file
root = /Users/XXXX/Desktop/a
root = /Users/XXXX/Desktop/b
perms = 0
#confirmbigdel = false
example2.prf
# Unison preferences file
root = /Users/XXXX/Desktop/b
root = /Users/XXXX/Desktop/c
perms = 0
#confirmbigdel = false
теперь запустите "unison example1" и "unison example2", все папки будут синхронизированы.
Вы можете сделать еще один шаг и обновить все папки, как только файл изменится, если вы соберете unison из последней версии svn. В последней версии svn вы можете использовать флаг «-repeat watch» (например, «unison exampleX -repeat watch») для просмотра папок на наличие изменений, поскольку файл fsmonitor.py находится в том же каталоге bin, из которого вы выполняете Unison из ,
Это также работает через ssh, если одна и та же версия установлена на всех машинах ... Частный дропбокс, в основном. Вероятно, было бы полезно настроить сервер, всегда подключенный к Интернету, чтобы принимать изменения в любое время, все компьютеры будут подключаться к тому, который ищет изменения.