------------------------------------------------------------------------------- Unison Hint and Tips ------------------------------------------------------------------------------- Ignore a whole directory, except a single file. Say you want to Say you are syncronising directory "a" (EG path = a ) But you want to ignore directorty "a/b" except the file "a/b/c/d" The problem is if you want unison to update file "a/b/c/d", you can NOT ignore ANY of the parent directories above that file!!! Assuming their are no 'dot' files you also have to specifically ignore (as "*" does not include a files or directories like ".xvpics") path = a # Do not ignore directory "a/b", just its contents... ignore = Path a/b/* # Don't ignore the parent directory of the file. ignorenot = Path a/b/c # But everything else in that directory ignore = Path a/b/c/* # Except the file/directory we are interested in synchronizing ignorenot = Path a/b/c/d It's a real pain to have to repeat this sequence down the whole directory path leading up to the file, but that is the way it works. If you have multiple files, or directory paths you can combine the ignorenot's together. EG that last could be... # do not ignore file "d" and sub-directories "e" and "f" ignorenot = PATH a/b/c/{d,e,f} # Ignore the contents of those directories ignore = PATH a/b/c/{e,f}/* # Don't ignore these specific files in those sub-directories ignorenot = PATH a/b/c/e/this ignorenot = PATH a/b/c/f/that If you have 'dot' files or directories within this path you also need to add them to the 'ignore' list as '*' on its own will NOT match them. That is you need to add extra ignores like... ignore = Path a/b/.??* Though usally the only 'dot' files I find, outside a home directory are things I globally ignore anyway... EG: ignore = Name .xvpics # XV thumbnail image directories ignore = Name .*.swp # VIM editor backup files ignore = Name .*~ # Emacs editor Backup Files -------------------------------------------------------------------------------