Scoping ignoriert unisono Deklarationen

1873
dzhelil

Ich verwende unisono, um zwei Computer zu synchronisieren, und im Allgemeinen möchte ich alle versteckten Dateien außer einigen wenigen ignorieren. Ich habe eine unisonische Voreinstellungsdatei ( default.prf), die wie folgt aussieht:

# Unison preferences file  # keep time stamps times = true auto = true  ignore = Name .*  path = Documents path = .hgrc path = .vimrc 

Auch wenn ich die meisten versteckten Dateien sein möge zu ignorieren, würde Ich mag .hgrcund .vimrczwischen den beiden Computern synchronisiert werden. Mit dem obigen Setup werden sie jedoch auch ignoriert. Wie kann ich das Problem der Synchronisierung beheben?

3

1 Antwort auf die Frage

3
Johannes

Gemäß http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#prefs kann "ignorenot" hier nützlich sein.

Diese Einstellung überschreibt die Einstellung ignorieren. Es gibt eine Liste von Mustern (im selben Format wie ignorieren) für Pfade, die definitiv nicht ignoriert werden sollten, unabhängig davon, ob sie einem der Ignoriermuster entsprechen oder nicht.

Ich bin kein erfahrener Unison-Benutzer, daher weiß ich nicht, ob die folgende Einschränkung hier gilt:

Beachten Sie, dass die Semantik von Ignorieren und Ignorieren ein wenig kontrapunktisch ist. Beim Erkennen von Aktualisierungen untersucht Unison die Pfade in der Reihenfolge der Tiefe, beginnend mit den Wurzeln der Repliken und nach unten. Vor der Prüfung jedes Pfads wird geprüft, ob er mit ignore übereinstimmt und nicht mit ignorenot. In diesem Fall überspringt es diesen Pfad und alle seine Nachkommen. Dies bedeutet, dass, wenn ein übergeordnetes Element eines bestimmten Pfads einem Ignoriermuster entspricht, dieses auch dann übersprungen wird, wenn der Pfad selbst einem Ignorenot-Muster entspricht. Das Setzen von ignore = Path * in Ihrem Profil und die Verwendung von ignorenot zur Auswahl bestimmter zu synchronisierender Pfade wird insbesondere nicht funktionieren. Stattdessen sollten Sie die Pfadeinstellung verwenden, um bestimmte zu synchronisierende Pfade auszuwählen.

Ich weiß, dass dies mehr als einen Monat nach Ihrer Frage kommt. Trotzdem hoffe ich, dass es nützlich ist.