Unison: Ignora todos os arquivos com * .ext, exceto aqueles em um subdiretório específico

4

Estou tentando realizar uma sincronização usando o Unison (2.40.102) onde desejo ignorar todos os arquivos com uma extensão específica, digamos *.ext , mas não ignorar os arquivos com essa extensão se eles estiverem em uma subpasta específica.

Estrutura de pastas:

main_dir
|file.ext
|...
|--sub_dir_1
   |more_files.ext
   |...
|--sub_dir_2
   |even_more_files.ext
   |...
   |--dir_I_want_to_sync
      |sync_this_file1.ext
      |...
      |sync_this_fileN.ext
      |--some_arbitrarily_named_dir
         |also_sync_this.ext
         |...
         |--more_arbitrarily_named_dirs_with_ext_files_in_them
            |...

Como a estrutura de pastas não é constante, não posso ignorar apenas caminhos específicos, mas tenho que fazer isso de maneira muito geral. Minha ideia foi primeiro ignorar todos os arquivos com a extensão *.ext e, em seguida, des-ignorar os que estão abaixo de dir_I_want_to_sync . No entanto, é assim que eu não estou conseguindo encontrar o comando certo ...

As partes relevantes do meu arquivo de perfil são assim:

# Ignore all files with extension *.ext
ignore = Name {.,}*{.ext}

# Try to not ignore the files within the subdirectory (NOT WORKING)
ignorenot = Path */dir_I_want_to_sync/*             # 1)
ignorenot = Name */dir_I_want_to_sync/{*/}*{.ext}   # 2)

Observações:
1) Não faz nada, porque os arquivos são ignorados pelo arquivo name , não pelo caminho deles | 2) Foi feito para reverter o ignorar em todos os arquivos em dir_I_want_to_sync , mas ele não captura todas as subpastas.

Existe alguma maneira de aplicar o ignorenot = Name ... a um arquivo, independentemente de sua profundidade na estrutura do diretório, desde que esteja abaixo de um diretório com um nome específico?

(Espero que isso não seja muito confuso. Fico feliz em esclarecer!)

    
por blsqr 12.05.2016 / 14:33

1 resposta

2

Use Regex em vez de Path quando precisar corresponder a uma profundidade de diretório arbitrária.

ignore = Name *.ext
ignorenot = Regex .*/dir_I_want_to_sync/.*\.ext
    
por 13.05.2016 / 01:17

Tags