unison 如何决定以哪种方式同步文件
我正在使用 unison 将一堆文件夹同步在一起。不只是 2 个根,但我认为我的问题可以变得这么简单......
可以说我正在使用一致同步目录 A 和 B。如果我从目录 A 中删除文件 X,unison 如何知道要做什么?应该将 X 从 B 添加回 A 还是应该从 B 中删除 X?
I am using unison to sync a bunch of folders together. Not just 2 roots, but I think my question can be made this simple...
Lets say I am syncing directory A and B using unison. If I remove file X from directory A, how does unison know what to do? Should it add X back to A from B or should it delete X from B?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
每次成功同步该路径后,Unison 都会保留该路径的内容记录(即,它会记住最后一刻的内容在两个副本中相同时的内容)。
如果路径的当前内容与上次成功同步时的内容不同,我们就说路径已更新(在某些副本中)。请注意,路径是否更新与其最后修改时间无关——Unison 在确定是否发生更新时仅考虑内容。这意味着触摸文件而不更改其内容将不会被识别为更新。一个文件甚至可以多次更改,然后再更改回其原始内容;只要 Unison 仅在此过程结束时运行,就不会识别任何更新。
换句话说:Unison 知道您已经删除了文件 X,因为它不再位于 A 的磁盘上,它知道应该从 B 中删除它。
Unison keeps a record of the contents of each path after each successful synchronization of that path (i.e., it remembers the contents at the last moment when they were the same in the two replicas).
We say that a path is updated (in some replica) if its current contents are different from its contents the last time it was successfully synchronized. Note that whether a path is updated has nothing to do with its last modification time—Unison considers only the contents when determining whether an update has occurred. This means that touching a file without changing its contents will not be recognized as an update. A file can even be changed several times and then changed back to its original contents; as long as Unison is only run at the end of this process, no update will be recognized.
In other words: Unison knows that you have deleted file X, because it's no longer on the disk in A, it knows it should delete it from B.