Tentative de configuration de la version 2.40.65 d'Unison sur deux ordinateurs de bureau Ubuntu 12.04 LTS. L'ordinateur principal est un System76. L'ordinateur secondaire est une fin 2012 Apple mini mac qui n'a plus OS X dessus. Les deux ordinateurs ont des systèmes de fichiers ext4 installés.
J'ai décidé de tester Unison avant de l'utiliser pour la synchronisation critique car j'avais une expérience précédente avec le programme de synchronisation Windows vers Windows qui était à peine utilisable (comme en lent, instable, et Dieu vous aide si le réseau tombe en panne). J'ai testé tous ces défauts avec Unison et cela est passé par une large marge.
J'ai un problème important avec Unison ignore = Path
. J'ai défini l'ignorer en utilisant l'interface graphique et en modifiant le fichier de profil. Lorsqu'un dossier ou un fichier est ajouté dans le dernier dossier du chemin, Unison souhaite ajouter le nouveau contenu à l'ordinateur opposé à partir duquel il a été ajouté. Donc ignore
fonctionne selon la définition de la documentation Unison :
ignorer xxx
L'inclusion de la préférence -ignore pathspec oblige Unison à ignorer complètement les chemins qui correspondent à pathspec (ainsi qu'à leurs enfants). Ceci est utile pour éviter de synchroniser des fichiers temporaires, des fichiers objets, etc. La syntaxe de pathspec est décrite dans la section Spécification de chemin, et plus de détails sur l'ignorance des chemins se trouvent dans la section Ignorer les chemins.
Ce que je vois dans mon test contre "(ainsi que leurs enfants)". J'espérais ignore = Path
signifiait, peu importe ce qui ignorait toujours chaque changement dans ce chemin.
Voici une copie de mon profil à l'unisson de test de travail:
label = test2
root = /home/butest/Documents
root = ssh://[email protected]//home/butest/Documents
sshargs = -C
ignore = Path Documents/4_Significant_Events/*
Voici une liste des ignore = Path
combinaison que j'ai essayée sans succès. Ils lèvent une exception ou ont le même comportement que ci-dessus.
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/[*]}
J'espérais également garder le même horodatage sur les deux ordinateurs. Mais je ne sais pas comment le forcer. Ce mineur par rapport à l'autre problème.
Voyons: ignore
les chemins sont relatifs. Ainsi, tous les exemples supplémentaires que vous avez vérifiés sont illégaux.
Dans ce code:
label = test2
root = /home/butest/Documents
root = ssh://[email protected]//home/butest/Documents
sshargs = -C
ignore = Path Documents/4_Significant_Events/*
vous dites à Unison d'ignorer tous les chemins sous les racines qui correspondent à la description, c'est-à-dire,
/home/butest/Documents/Documents/4_Significant_Events/*
ce que je soupçonne n'est pas ce que vous voulez. Si vous voulez que votre répertoire /home/butest/Documents/4_Significant_Events/
(et les enfants) être ignorés, changez simplement la dernière ligne avec
ignore = Path {4_Significant_Events}
À propos de l'horodatage, je ne comprends pas. Cherchez-vous times = true
option pour synchroniser les horodatages?
ignore = Path {4_Significant_Events}
Fonctionne parfaitement. Les {} sont-ils similaires à la portée en C? Ainsi, la ligne ci-dessus pourrait être déclarée comme: à l'unisson, ignorer toutes les choses dans le cadre de 4_Significant_Events.
times = true
était ce dont j'avais besoin, je le cherchais dans l'interface graphique comme "horodatage" Works Perfect.