Manuals

Apêndice F. Detalhes de Implementação

Índice

Sobreposição de Ícones

Este anexo contém uma discussão mais detalhada da implementação de algumas das funcionalidades do TortoiseSVN.

Sobreposição de Ícones

Cada ficheiro e pasta tem um valor de estado no Subversion como é reportado pela biblioteca do mesmo. No cliente de linha de comando, esse é representado por uma letra de código, mas no TortoiseSVN são mostrados graficamente como sobreposições de ícones. Porque o número de sobreposições é muito limitado, cada sobreposição poderá representar vários valores de estado.

A sobreposição em conflito é usada para representar o estado em conflito, onde uma actualização ou troca resultou em conflitos entre as alterações locais e as alterações descarregadas do repositório. É também usado para indicar o estado obstruído, que pode ocorrer quando não é concluida uma operação.

A sobreposição Modificado representa o estado modificado, quando efectuaste modificações locais, o estado integrado, quando as alterações do repositório foram integradas com as alterações locais, e o estado substituído, quando o ficheiro foi removido e substituído por outro ficheiro diferente com o mesmo nome.

A sobreposição Removido representa o estado removido, quando um item foi escalonado para remoção, ou o estado desaparecido, quando um item não está presente. Naturalmetne um item que está desaparecido não tem ele próprio uma sobreposição, mas a pasta pai pode ser sinalizada quando um dos seus filhos está desaparecido.

A sobreposição Adicionado é usado simplesmente para representar o estado adicionado quando um item foi adicionado ao controlo de versões.

A sobreposição No Subversion é usada para representar um item que está no estado normal, ou um item versionado cujo estado não é ainda conhecido. Porque o TortoiseSVN usa um processo de cache em background para recolher o estado, poderá levar alguns segundos a actualizar as sobreposições.

A sobreposição Necessita bloqueio é usada para indicar que um ficheiro tem fixada a propriedade svn:needs-lock.

A sobreposição Bloqueado é usado quando a cópia de trabalho local contém um bloqueio para esse ficheiro.

A sobreposição Ignorado é usado para representar um item que está no estado ignorado, devido ao padrão global de ignorados, ou à propriedade svn:ignore da pasta pai. Esta sobreposição é opcional.

A sobreposição Não versionado é usado para representar um item que está no estado não versionado. Isto é um item numa pasta versionada, mas que não está ele próprio sob o controlo de versões. Esta sobreposição é opcional.

If an item has Subversion status none (the item is not within a working copy) then no overlay is shown. If you have chosen to disable the Ignored and Unversioned overlays then no overlay will be shown for those files either.

Um item só pode ter um valor de estado no Subversion. Por exemplo, um ficheiro pode ser modificado localmente e pode ser marcado para remoção ao mesmo tempo. O Subversion retorna um único valor de estado - neste caso - removido. Essas propriedades estão definidas dentro do próprio Subversion.

Quando o TortoiseSVN mostra recursivamente o estado (configuração por defeito), cada pasta mostra uma sobreposição que reflete o seu próprio estado e o estado de todos os seus filhos. De modo a mostrar uma simples sobreposição de summário, nós usamos a ordem de prioridade mostrada acima para determinar qual a sobreposição a usar, com a sobreposição Em conflito a tomar a prioridade mais elevada.

De facto, poderás descobrir que nem todos esses ícones são usados no teu sistema. Isto é porque o número de sobreposições permitida pelo Windows está limitada a 15. O Windows usa 4, e os restantes 11 podem ser usados por outras aplicações. Se não existir um número de slots de sobreposições disponíveis, o TortoiseSVN tenta ser um Bom Cidadão (TM) e limita o seu uso de sobreposições, para dar oportunidade a outras aplicações.

Visto estarem disponíveis clientes Tortoise para outros sistemas de controlo de versões, criámos um componente partilhado responsável pela visualização das sobreposições de ícones. Os pormenores técnicos não são aqui importantes, tudo o que necessitas de saber é que este componente partilhado permite a todos os clientes Tortoise usar as mesmas sobreposições, e por isso o limite das 11 vagas disponíveis não é afectado pela instalação de mais um cliente Tortoise. É claro que existe um senão; todos os clientes Tortoise usam as mesmas sobreposições de ícones, pelo que não consegues distinguir pelas sobreposições, que sistema de controlo de versões está a ser usado pela cópia de trabalho.

  • Normal, Modificado e Em conflito são sempre carregadas e visíveis.

  • Removido é se possivel carregado, mas descai para Modificado se não existem vagas suficientes.

  • Só-de-Leitura é se possivel carregado, mas descai para Normal se não existem vagas suficientes.

  • Bloqueado é se possivel carregado, mas cai para Normal se não existem vagas suficientes.

  • Adicionado é se possivel carregado, mas cai para Modificado se não existem vagas suficientes.

TortoiseSVN homepage