Leider scheint es, dass Unison (alleine) dies nicht ohne weiteres tun kann. Aus der Nutzung von ignorenot xxx
in dem Unison Handbuch :
Insbesondere das Einfügen
ignore = Path *
Ihres Profils und das Verwendenignorenot
bestimmter Pfade, die synchronisiert werden sollen, funktioniert nicht. Stattdessen sollten Sie die Pfadeinstellung verwenden, um bestimmte zu synchronisierende Pfade auszuwählen.
Da dies genau das war, was ich als Lösung im Sinn hatte, bedeutet das, dass es keine gute Lösung gibt. Hier einige nützliche Ideen:
Fügen Sie manuell für jedes Projekt einen neuen Pfad hinzu : Genau das schlägt das obige Zitat vor. Fügen Sie für jedes neue Projekt, das Sie starten, und jedes neue
src
Verzeichnis, das Sie synchronisieren möchten, eine Zeile hinzuPath = path/to/src
zu Ihrem Unison-Profil.
Ignorieren Sie die Build- und Konfigurationsdateien manuell : Vielleicht haben alle Build- und Konfigurationsdateien nur ein paar verschiedene Muster, denen Sie zuordnen können? Sie können Unison anweisen, diese Muster insbesondere zu ignorieren, indem Sie Ihrem Unison-Profil etwas hinzufügen
ignore = Name *.o #ignore object files ignore = Name build #ignore paths that end with "build" ignore = Name {.*,*}.sw[ponx] #ignore pesky vim swap files ignore = ...
Schreiben Sie ein Skript, um zu helfen : Sie könnten sicherlich ein Skript schreiben, das nach allen genannten Verzeichnissen sucht
src
und Unison einzeln für sie aufruft. Aber das scheint irgendwie dumm zu sein. Sie könnten jedoch ein Skript schreiben, das bei Punkt (1) oben hilfreich ist. Schreiben Sie ein Skript, das alle benannten Pfade findetsrc
, und fügen Sie für jeden dieser Pfade die Zeile hinzuPath = /path/to/src
zu einer Datei
AllThePaths
, und dann nur noch die Zeileinclude AllThePaths
in Ihrem Unison-Profil.