Obter informação de Estado

Enquanto estás a trabalhar na tua cópia de trabalho necessitas com frequência de saber que ficheiros alteraste/adicionastes/removeste, ou mesmo que ficheiros foram alterados e submetidos por outros.

Sobreposição de Ícones

Figura 4.12. O explorador mostrando os ícones sobrepostos

O explorador mostrando os ícones sobrepostos


Agora que SVN exportaste uma cópia de trabalho de um repositório Subversion, podes ver que os teus ficheiros com os ícones alterados no explorador do Windows. Esta é uma das razões porque o TortoiseSVN é tão popular. O TortoiseSVN adiciona a chamada sobreposição de ícone a cada ficheiro e que se sobrepõem ao ícone original do mesmo. Dependendo do estado Subversion do ficheiro a sobreposição do ícone será diferente.

Uma cópia de trabalho exportada de fresco possui uma marca de verificação verde como sobreposição. Isto significa que o estado Subversion é normal.

Assim que inicias a edição do ficheiro, o estado altera-se para modificado e o ícone de sobreposição muda para um ponto de exclamação vermelho. Desse modo podes facilmente ver que ficheiros foram alterados desde a última vez que actualizaste a tua cópia de trabalho e necessitam ser submetidos.

Se durante uma actualização ocorre um conflito o ícone de sobreposição altera-se para um ponto de exclamação amarelo.

Se colocaste a propriedade svn:needs-lock num ficheiro, o Subversion marca esse ficheiro como apenas-de-leitura até obteres um bloqueio nesse mesmo ficheiro. Ficheiros como esses têm essa sobreposição para indicar que tens de obter um bloqueio antes de editares esse ficheiro.

Se mantiveres um bloqueio num ficheiro e o estado Subversion é normal, esta sobreposição de ícone lembra-te que deves libertar o bloqueio se não o estás a usar, para permitir que outros possam submeter as suas alterações para o ficheiro.

Este ícone mostra que alguns ficheiros ou pastas no interior da pasta corrente foram escalonados para serem apagados do controlo de versões ou que, um ficheiro sob o controlo de versões está desaparecido na pasta.

O sinal se soma diz-te que um ficheiro ou pasta foi escalonado para ser adicionado ao controlo de versões.

O sinal de barra diz que um ficheiro ou pasta é ignorado para efeitos de controlo de versão. Esta sobreposição é opcional.

Este ícone mostra os ficheiros e pastas que não estão sob controle de versões, mas não foram ignorados. Esta sobreposição é opcional.

De facto, podes descobrir que nem todos esses ícones são usados no teu sistema. Isto ocorre porque o número de sobreposições permitidas pelo Windows é muito limitada e, se estiveres a utilizar uma versão antiga do TortoiseCVS, não existem suficientes slots para sobreposições disponíveis. O TortoiseSVN tenta ser um Bom Cidadão (TM) e limita o seu uso se sobreposições para também dar a oportunidade a outras aplicações.

Agora que existem vários clientes Tortoise (TortoiseCVS, TortoiseHg, ...) a limitação do ícone torna-se um problema real. Para contornar isso, o projecto TortoiseSVN introduziu um conjunto de ícones comuns e partilhados, carregados como uma DLL, que podem ser usados por todos os clientes Tortoise. Verifique com o seu provedor de cliente para ver se isso já foi integrado :-)

Para uma descrição de como as sobreposições de ícones correspondem aos estados do Subversion e outros detalhes tecnicos, lê “Sobreposição de Ícones”.

Estado detalhado

Figura 4.13. Página de propriedades do explorador, aba do Subversion

Página de propriedades do explorador, aba do Subversion


Por vezes tu queres obter informação mais detalhada sobre um ficheiro/pasta do que a da sobreposição do ícone. Podes obter toda a informação que o Subversion providencia, na caixa de diálogo de propriedades do explorador. Apenas selecciona o ficheiro ou pasta e selecciona no menu de contexto Menu do Windowspropriedades (nota: esta é a entrada normal do menu de propriedades que o explorador providência, e não a do submenu TortoiseSVN!). Na caixa de diálogo de propriedades o TortoiseSVN adicionou uma nova página de propriedades para ficheiros/pastas, sob o controlo do Subversion, onde podes ver toda a informação relevante sobre o ficheiro/pasta.

Estado Remoto e Local

Figura 4.14. Verificar Modificações

Verificar Modificações


É normalmente muito útil conhecer que ficheiros foram alterados e também quais os ficheiros que foram alterados e submetidos por outros. Isto é onde o comando TortoiseSVNVerificar alterações... vem à mão. Esta caixa de diálogo irá mostrar-te cada ficheiro que foi alterado de algum modo na tua cópia de trabalho, tal como qualquer ficheiro não versionado que lá tiveres.

Se clicares em Verificar repositório podes então também procurar por alterações no repositório. Desse modo podes verificar, antes de uma actualização, se existe um possível conflito. Podes também actualizar ficheiros seleccionados do repositório, sem actualizar a pasta inteira. Por defeito o botão Verificar repositório só procura o estado remoto com a profundidade de exportação da cópia de trabalho. Se queres ver todos os ficheiros e pastas no repositório, mesmos aqueles que não SVN exportaste, então tens de premir continuamente a tecla Shift enquanto clicas no botão Verificar repositório.

A caixa de diálogo usa código de cores para evidenciar o estado.

Azul

Itens modificados localmente.

Roxo

Itens adicionados. Itens que foram adicionados com história têm um sinal + na coluna Estado do texto, e uma etiqueta mostra de onde foi o item copiado.

Vermelho escuro

Itens apagados ou desaparecidos.

Verde

Itens modificados localmente e no repositório. As alterações serão fundidas aquando da actualização.

Vermelho brilhante

Itens modificados localmente e apagados no repositório, ou modificados no repositório e apagados localmente. Estes irão produzir conflitos na actualização.

Preto

Itens não modificados e não versionados.

Este é o esquema de cores por defeito, mas podes alterar essas cores usando a caixa de diálogo configurações. Ler “Preferências de cor do TortoiseSVN” para mais informação.

Ícones de sobreposição são usados para indicar também outros estados. A captura de ecrã abaixo mostra todas as sobreposições possíveis que poderão ser mostradas se necessário.

São mostradas sobreposições para os seguintes estados:

  • Nível de checkout vazia, siginfica apenas o item.

  • Nivel de checkout ficheiros, significa só o próprio item e todos os ficheiros sem pastas filho.

  • Nivel de checkout imediatos, significa só próprio item, todos os ficheiros e pastas filho, mas sem os filhos das pastas filho.

  • Itens aninhados, i.e., cópias de trabalho dentro da cópia de trabalho.

  • Itens externos, i.e., todos os itens que são adicionados via a propriedade svn:externals.

  • Itens que são restaurados após uma submissão. Consulta “Submeter apenas secções de ficheiros” para detalhes.

  • Itens que têm modificações de propriedade, mas apenas na propriedade svn:mergeinfo. Se qualquer outra propriedade estiver modificada, não será usada a sobreposição.

Itens que foram trocados para um caminho diferente no repositório são também sinalizados com um marcador (s). Podes ter trocado algo enquanto trabalhavas num ramo e te esqueceste de trocar de novo para o trunk. Isto é o teu sinal de aviso! O menu de contexto permite-te trocar de volta para o caminho normal mas uma vez.

A partir do menu de contexto da caixa de diálogo podes ver uma comparação das alterações. Marca as alterações locais que tu fizeste usando Context MenuComparar com a Base. Marca as alterações no repositório feitas por outros usando Menu ContextoMostrar diferenças como uma comparação unificada.

Podes também reverter alterações em ficheiro individuais. Se apagaste um ficheiro acidentalmente, irá aparecer como Desaparecido e podes usar Reverter para o recuperar.

Ficheiros não versionados e ignorados podem ser enviados daqui para o cesto de reciclagem usando Menu ContextoRemover. Se quiseres remover permanentemente os ficheiros ( ignorando o cesto de reciclagem) mantém premido a tecla Shift enquanto clicas no Remover.

Se tu quiseres examinar um ficheiro em detalhe, podes arrastá-lo daqui para outro aplicativo, como um editor de texto ou IDE, ou podes salvar uma cópia simplesmente arrastando-o para uma pasta do navegador.

As colunas são costumizáveis. Se clicares com o botão direito em qualquer cabeçalho de coluna verás um menu de contexto, que te permitirá seleccionar quais as colunas a mostrar. Podes também alterar a largura da coluna usando o manípulo de arrasto que aparece quando moves o rato sobre o limite da coluna. Estas customizações são preservados para que vejas os mesmos cabeçalhos da próxima vez.

Se tiveres a trabalhar ao mesmo tempo em várias tarefas, não relacionadas, podes também agrupar os ficheiros em listas de alterações. Ler “Listas de Alterações” para mais informação.

No fundo da caixa de diálogo podes ver um sumário do intervalo de revisões do repositório em uso na tua cópia de trabalho. Essas são as revisões submetidas, não as revisões de actualizadas; Estas representam o intervalo de revisões onde esses ficheiros foram submetidas por último, e não as revisões a que foram actualizadas. De notarque o intervalo de revisões mostrada só se aplica aos itens mostrados, e não, à totalidade da cópia de trabalho. Se queres ver essa informação para a totalidade da cópia de trabalho, deves verificar a caixa de verificação Não modificado.

Dica

Se queres uma vista ampla da tua cópia de trabalho, i.e. mostrando todos os ficheiros e pastas em qualquer nível da hierarquia de pastas, então a caixa de diálogo Verificar alterações é a maneira mais fácil para o atingir. Verifica apenas a caixa de verificação Não modificado para mostrar todos os ficheiros na tua cópia de trabalho.

Reparando Alterações de Nome Externas

Por vezes, é alterado o nome de alguns ficheiros fora do Subversion e, eles são mostrados na lista de ficheiros como um em falta e outro ficheiro não versionado. Para evitar perder o histórico necessitas de notificar o Subversion a cerca da ligação. Simplesmente selecciona o de nome antigo(em falta) e o de novo nome (não versionado) e para emparelhar os dois ficheiros como uma alteração de nome usa Context MenuReparar Movimento

Reparar Cópias Externas

Se fizeste uma cópia de um ficheiro e esqueceste de usar o comando do Subversion para o fazeres, poderás corrigir essa cópia para que o novo ficheiro não perca o seu histórico. Selecciona simplesmente ambos, o com o nome antigo (normal ou modificado) e o com o novo nome (não versionado) e usa Menu de ContextoReparar cópia para emparelhar os dois ficheiros com uma cópia.

Vendo diferenças

Muitas vezes tu queres ver os teus ficheiros por dentro para observar o que alteraste. Podes conseguir isso ao seleccionar o ficheiro que foi alterado e, seleccionando Comparar a partir do menu de contexto do TortoiseSVN. Isso arranca o visualizador de comparações externo, que então irá comparar o ficheiro corrente com a cópia pura (revisão BASE), que foi armazenada depois da última exportação SVN ou actualização.

Dica

Mesmo quando fora da cópia de trabalho ou, quando tens multiplas versões do ficheiro presentes, podes no entanto ainda mostrar comparações:

Selecciona dois ficheiros que queres comparar no explorador (e.g. usando o Ctrl e o rato) e escolhe Comparar a partir do menu de contexto do TortoiseSVN. O ficheiro clicado por último (o que tem o focus, i.e. o rectangulo picotado) será considerado o mais recente.