Na maioria dos projectos terás ficheiros e pastas que não deverão estar sujeitos ao controlo de versões. Esses poderão incluir ficheiros criados pelo compilador, *.obj, *.lst
, talvez uma pasta de produto usada para armazenar o executável. Sempre que submetas alterações o TortoiseSVN mostra os ficheiros não versionados, que enchem a lista de ficheiros na caixa de diálogo submeter. Está claro que podes desligar essa visualização, mas poderás então te esquecer de adicionar um novo ficheiro fonte.
A melhor maneira para evitar esses problemas é adicionar os ficheiros derivados à lista de ignorados do projecto. Desse modo, eles nunca irão aparecer na caixa de diálogo submeter, mas os ficheiros fonte genuinamente não versionados serão ainda assinalados.
If you right click on a single unversioned file, and select the command → from the context menu, a submenu appears allowing you to select just that file, or all files with the same extension. Both submenus also have a (recursively)
equivalent. If you select multiple files, there is no submenu and you can only add those specific files/folders.
If you choose the (recursively)
version of the ignore context menu, the item will be ignored not just for the selected folder but all subfolders as well. However this requires SVN clients version 1.8 or higher.
Se queres remover um ou mais itens da lista de ignorados, clica com o botão direito nesse itens e selecciona → Podes ainda aceder à propriedade svn:ignore
da pasta. Isso permite-te especificar padrões mais gerais usando caracteres de substituição de nome de ficheiros, descritos na seguinte secção. Consultar “Configurações de Projecto” para mais informações para configurar propriedades directamente. Por favor, ter em atenção que cada padrão para ignorar tem de ser colocado numa linha separada, separá-los por espaços não resulta.
Outra maneira de ignorar ficheiros é adicioná-los à lista global de ignorados. A grande diferença aqui é que a lista global de ignorados é uma propriedade local. Aplica-se a todos os projectos Subversion, mas apenas no PC local. De modo geral é melhor usar a propriedade svn:ignore
quando possível, porque pode ser aplicado a um projecto em específico e funciona para todos que SVN exportem o projecto. Consultar “Preferências Gerais” para mais detalhes.
Ficheiros e pastas versionados nunca podem ser ignorados - essa é uma funcionalidade do Subversion. Se versionares um ficheiro por engano, lê em “Ignorar ficheiros que já estão versionados” para instruções em como o “desversionar”.
O ignorar padrões no Subversion usa caracteres de substituição do nome de ficheiro, uma técnica usada no Unix para especificar ficheiros recorrendo a meta-caracteres e wildcards (caracteres de substituição). Os seguintes caracteres têm significado especial:
Corresponde a qualquer cadeia de caracteres, incluindo a cadeia vazia (sem caracteres).
Corresponde a qualquer carácter isolado.
Corresponde a qualquer um dos caracteres no interior dos parênteses rectos. Dentro dos parênteses rectos, um par de caracteres separados por “-” corresponde a qualquer carácter lexicalmente entre os dois. Por exemplo [AGm-p] corresponde a qualquer um de
A
, G
, m
, n
, o
ou p
.
Correspondência de padrões é sensível a maiúsculas e minúsculas, o que pode causar problemas no Windows. Podes forçar a insensibilidade a maiúsculas e minúsculas à bruta ao emparelhar caracteres, e.g. para ignorar *.tmp
, independentemente do tamanho de letra, podes usar um padrão como *.[Tt][Mm][Pp]
.
Se queres uma definição oficial para caracters de substituição de nome de ficheiro, podes encontrá-la nas especificações do IEEE para a linguagem de comando da da linha de comandos (shell) Pattern Matching Notation.
Não deves incluir informação de caminhos no teu padrão. A correspondência de padrões tem como função ser utilizado contra nomes de ficheiros e nomes de pastas. Se queres ignorar todos as pastas CVS
adiciona apenas CVS
à lista de ignorados. Não há necessidade de especificar CVS */CVS
como fazias em versões anteriores. Se queres ignorar todas as pastas tmp
quando elas existem dentro da pasta prog
, mas não dentro da pasta doc
, deverás usar em alternativa a propriedade svn:ignore
. Não há maneira fiável de conseguir isto com recurso a padrões globais de ignorados.