Trying to set up Unison version 2.40.65 on two Ubuntu 12.04 LTS desktop computers. The primary computer is a System76. The secondary computer is a late 2012 Apple mini mac that no longer has OS X on it. Both computers have ext4 file systems installed.
I decided to test Unison before using it for critical syncing since I had a previous experience with Windows to Windows syncing program that was barely usable (as in slow, unstable, and God help you if the network went down). I tested all those faults with Unison and it passed by a wide margin.
I have a significant problem with Unison ignore = Path
. I set the ignore using the GUI and editing the profile file. When a folder or file gets added inside the last folder in the path, Unison wants to add the new stuff to the opposite computer from where it was added. So ignore
does work according to the definition in the Unison documentation:
ignore xxx
Including the preference -ignore pathspec causes Unison to completely ignore paths that match pathspec (as well as their children). This is useful for avoiding synchronizing temporary files, object files, etc. The syntax of pathspec is described in the Path Specification section, and further details on ignoring paths is found in the Ignoring Paths section.
What I seeing in my test counter to “(as well as their children)”. I was hoping ignore = Path
meant no matter what always ignore every change in that path.
Here is a copy of my working test unison profile:
label = test2
root = /home/butest/Documents
root = ssh://[email protected]//home/butest/Documents
sshargs = -C
ignore = Path Documents/4_Significant_Events/*
Here is a list of the ignore = Path
combination I've tried with no success. They either throw an exception or had the same behavior as above.
ignore = Path home/butest/Document/4_Significant_Events
ignore = Path /home/butest/Document/4_Significant_Events
ignore = Path //home/butest/Document/4_Significant_Events/
ignore = Path {home/butest/Document/4_Significant_Events}
ignore = Path {/home/butest/Document/4_Significant_Events}
ignore = Path {//home/butest/Document/4_Significant_Events/}
ignore = Path home/butest/Document/4_Significant_Events*
ignore = Path /home/butest/Document/4_Significant_Events*
ignore = Path //home/butest/Document/4_Significant_Events*/
ignore = Path {home/butest/Document/4_Significant_Events*}
ignore = Path {/home/butest/Document/4_Significant_Events*}
ignore = Path {//home/butest/Document/4_Significant_Events/*}
ignore = Path home/butest/Document/4_Significant_Events[*]
ignore = Path /home/butest/Document/4_Significant_Events[*]
ignore = Path //home/butest/Document/4_Significant_Events/[*]
ignore = Path {home/butest/Document/4_Significant_Events[*]}
ignore = Path {/home/butest/Document/4_Significant_Events[*]}
ignore = Path {//home/butest/Document/4_Significant_Events/[*]}
Also I was hoping to keep the time stamp the same on both computers. But I can't figure out how to force it. This minor compared to the other problem.
ignore
directive must be relative to the roots, so all the variants you put there are illegal. What problem has the first way (the one auto generated)? I have tens ofignores
in my profiles and never had a problem. By the way, the path you are ignoring has twoDocuments
in it? In the code, you ignore/home/butest/Documents/Documents/...