Infelizmente, parece que Unison (sozinho) não pode fazer isso facilmente. A partir do uso de ignorenot xxx no manual do Unison :
In particular, putting
ignore = Path *in your profile and then usingignorenotto select particular paths to be synchronized will not work. Instead, you should use the path preference to choose particular paths to synchronize.
Como isso foi exatamente o que eu tinha em mente como solução, significa que não há uma boa solução. Aqui estão algumas ideias úteis:
-
Adicione manualmente um novo caminho para cada projeto : é exatamente isso que a citação acima sugere. Para cada novo projeto iniciado e cada novo diretório
srcque você deseja sincronizar, adicione uma linhaPath = path/to/srcao seu perfil do Unison.
-
Ignore manualmente os arquivos de configuração e construção : Talvez todos os seus arquivos de configuração e configuração tenham apenas alguns padrões diferentes aos quais você pode corresponder? Você poderia dizer ao Unison para ignorar esses padrões em particular adicionando algo ao seu perfil do Unison, como
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 = ... -
Escreva um script para ajudar : Você certamente pode escrever um script que pesquise todos os diretórios denominados
srce chame o Unison sobre eles individualmente. Mas isso parece meio bobo. Você poderia escrever um script que ajude com o ponto (1) acima. Escreva um script que encontre todos os caminhos denominadossrce, para cada um desses caminhos, adicione a linhaPath = /path/to/srcpara algum arquivo
AllThePathse, em seguida, apenas a linhainclude AllThePathsno seu perfil do Unison.