web-dev-qa-db-fra.com

Échec de l'unisson? Ignorer le chemin et l'horodatage

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.

2
mark_97

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?

1
Rmano
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.

0
mark_97