Manuals

Grafo de Revisões

Figura 4.64. O Grafo de Revisões

O Grafo de Revisões


Necessitas, por vezes, de saber de onde os ramos e etiquetas foram retirados do trunk, e a forma ideal para visualizar este tipo de informação é um grafo ou uma estrutura em árvore. É quando necessitas de usar TortoiseSVNGrafo de revisões...

Este comando analisa a história das revisões e tenta criar uma árvore que mostra os pontos em que as cópias foram feitas, e quando os ramos/etiquetas foram removidos.

Importante

De modo a gerar o grafo, o TortoiseSVN precisa de carregar da raiz do repositório todas as mensagens de registo. Não será necessário dizer que isto irá levar vários minutos, mesmo com um repositório com alguns milhares de revisões, dependendo da rapidez do servidor, largura de banda da rede, etc. Se tentares isto com algo como o projecto Apache, que actualmente tem acima de 500.000 revisões, poderás ter de esperar por algum tempo.

As boas notícias é que estás a usar cache de registo, pelo que apenas terás de sofrer este atraso uma vez. Depois disso os dados de registo são armazenados localmente. O provisionamento de registo (cache) está activo nas preferências do TortoiseSVN.

Nós do Grafo de Revisões

Cada nó do grafo de revisões representa uma revisão no repositório onde algo foi alterado, na árvore que estás a observar. Diferentes tipos de nós podem ser distinguidos através da forma e cor. As formas são fixas, mas as cores podem ser alteradas usando TortoiseSVNpreferências

Itens adicionados ou copiados

Os itens que foram adicionados ou criados pela cópia de outro ficheiro/pasta, são mostrados com um rectângulo de cantos arredondados. A sua cor por defeito é o verde. As etiquetas e trunks são tratados como um caso especial e usam uma sombra diferente dependendo das TortoiseSVNPreferências

Itens removidos

Itens removidos, e.g. um ramo que não é mais necessário, são mostrados como um octógono (rectângulo com os cantos cortados). A cor por defeito é a vermelho.

Itens renomeados

Itens renomeados são também mostrados como um octógono, mas a cor por defeito é o azul.

Revisão da extremidade do ramo

O grafo está normalmente restringido a mostrar pontos de ramo, mas é também útil e comum, ter a possibilidade de ver a respectiva revisão HEAD para cada ramo. Se seleccionares Mostrar revisões HEAD, cada nó de revisão HEAD será mostrado como uma elipse. De notar que a HEAD aqui refere-se à última revisão submetida nesse caminho e não a revisão HEAD do repositório

Revisão da cópia de trabalho

Se invocaste o gráfico de revisões a partir da cópia de trabalho poderás optar por mostrar a revisão BASE no grafo usando Show WC revision, que marca o nó BASE com uma moldura a negrito.

Cópia de trabalho modificada

Se invocaste o grafo de revisões a partir de uma cópia de trabalho podes optar por mostrar um nó adicional, que representa a cópia de trabalho modificada usando Mostrar modificações do WC. Este será um nó elíptico com uma moldura a negrito, em vermelho por defeito.

Item normal

Todos os outros itens são mostrados como um rectângulo simples.

De notar que por defeito, o grafo só mostra os pontos onde itens foram adicionados, copiados ou removidos. Mostrando cada revisão do projecto irá gerar um grafo muito extenso para casos não triviais. Se queres realmente ver todas as revisões onde foram feitas alterações, existe uma opção para o fazer no menu Ver e na barra de ferramentas.

A vista por defeito (sem agrupamento) coloca os nós de modo que a sua posição vertical fique na ordem estrita de revisões, para que tenhas uma dica visual da ordem em que as coisas foram feitas. Quando estão na mesma coluna dois nós, a ordem é muito óbvia. Quando estão em colunas adjacentes dois nós, o deslocamento é muito menor porque não há necessidade de evitar que os nós se sobreponham, e como resultado a ordem é um pouco menos óbvia. Tais optimizações são necessárias de modo a manter a complexidade dos grafos numa dimensão aceitável. Ter em atenção que esta ordenação usa o canto do nó no lado mais antigo como referência, i.e. o canto inferior do nó, quando o grafo é mostrado com os nós mais antigos no fundo. O canto de referência é significativo porque todas as formas de nós não são da mesma altura.

Alterando a Vista

Porque o gráfico de revisões é normalmente bastante complexo, existem um número de funcionalidades que podem ser usadas para moldar a vista á tua maneira. Estas estão disponiveis no menu Ver e a partir da barra de ferramentas.

Agrupar ramos

O comportamento por defeito (sem agrupamento) é ter todas as linhas ordenadas estrictamente por revisão. Como resultado, ramos com vida longa e submissões dispersas, ocupam uma coluna inteira para apenas poucas alterações tornando o grafo muito amplo.

Este modo agrupa alterações por ramo, pelo que não existe uma ordenação global por revisão: Revisões consecutivas num ramo serão (usualmente) mostradas em linhas consecutivas. No entanto, sub-ramos serão ordenados de tal maneira que ramos posteriores serão mostrados na mesma coluna, acima de ramos anteriores, de modo a manter o grafo estreito. Como resultado, uma dada linha poderá conter alterações de diferentes revisões.

Mais antigo no topo

Normalmente o grafo mostra a revisão mais antiga no fundo e a árvore cresce para cima. Usa esta opção para em alternativa crescer para baixo a partir do topo

Alinhar árvores no topo

Quando um grafo está partido em várias árvores pequenas, as árvores podem aparecer na ordem natural de revisão ou alinhadas no fundo da janela, dependendo se estás a usar a opção Agrupar ramos. Usa esta opção para todas as árvores em alternativa crescerem a partir do topo.

Reduzir linhas cruzadas

Esta opção está normalmente activada e evita o mostrar do grafo com muitas e confusas linhas cruzadas. No entanto isso poderá fazer com que as colunas do layout apareçam em sítios menos lógicos, por exemplo numa linha diagonal em vez de em coluna, e o grafo poderá requerer uma área maior para ser desenhado. Se isso for um problema poderás desactivar a opção a partir do menu Vista.

Nomes de caminhos diferenciais

Nomes de caminhos longos podem ocupar muito espaço e tornar muito largas as caixas dos nós. Usa esta opção para mostrar só a parte diferente de um caminho, substituindo a parte comum com pontos. E.g. se criares um ramo /branches/1.2.x/doc/html a partir de /trunk/doc/html, o ramo pode ser mostrado na forma compacta como /branches/1.2.x/.. porque os dois últimos niveis doc e html não se alteraram.

Mostrar todas as revisões

Isto faz apenas aquilo que estás á espera, e mostra cada revisão em que algo (na árvore em que estás a construir o grafo) foi alterado. Para históricos longos isto pode produzir um grafo realmente gigante.

Mostrar revisões HEAD

Isto assegura que a última revisão de cada ramo é sempre mostrada no grafo.

Fontes exactas de cópia

Quando um ramo/etiqueta é criado, o comportamento por defeito é mostrar o ramo como retirado do último nó onde foi efectuada uma alteração. Estritamente falando isto não é exacto, visto que os ramos são normalmente criados a partir da HEAD corrente em vez de uma revisão específica. É possível então mostrar a revisão mais correcta (mas menos útil) que foi usada para criar a cópia. De notar que esta revisão pode ser mais recente que a revisão HEAD do ramo fonte.

Etiquetas dobradas

Quando um projecto tem muitas etiquetas, o mostrar cada etiqueta como um nó separado no grafo ocupará muito espaço e obscurecerá, a mais interessante, estrutura de de ramos de desenvolvimento. Ao mesmo tempo deverás ter a possibilidade de aceder facilmente ao conteúdo da etiqueta, para que possas comparar revisões. Esta opção esconde os nós das etiquetas, e mostra-as em alternativa na tooltip do nó de onde foram copiadas. O ícone de etiqueta no lado direito do nó fonte indica que foram feitas etiquetas. Isto simplifica bastante a vista.

Nota que, se uma etiqueta for utilizada em si como uma fonte para obter uma cópia, talvez um novo ramo baseado numa etiqueta, então essa etiqueta será mostrada como um nó separado em vez de dobrado.

Esconder caminhos removidos

Esconde caminhos que já não estão presentes na revisão HEAD do repositório, e.g. ramos removidos.

Se seleccionaste a opção Dobrar etiquetas, então será mostrado um ramo removido, a partir do qual foram criadas as etiquetas, de outro modo as etiquetas também desapareceriam. A última revisão que foi etiquetada será mostrada na cor usada para os nós removidos, em vez de mostra uma revisão removida à parte.

Se seleccionares a opção Ocultar etiquetas, em seguida, esses ramos vão desaparecer, visto que não são necessários para mostrar as etiquetas.

Esconder ramos não usados

Esconde ramos onde não foram submetidas alterações, no respectivo ficheiro ou subpasta. Isto não indica necessariamente que o ramo não foi usado, apenas que não foram feitas alterações nesta parte.

Mostra a revisão da CT

Marca no grafo a revisão que corresponde à revisão actualizada do item, para o qual obtiveste o grafo. Se acabaste de actualizar, esta será a revisão HEAD, mas se outros submeteram alterações desde a tua última actualização, a tua CT poderá estar algumas revisões abaixo da HEAD. O nó é marcado com uma moldura a negrito.

Mostrar modificações da CT

Se a tua CT contém alterações locais, esta opção desenha-as como um nó elíptico separado e ligado ao nó a que a tua CT foi pela última vez actualizada. A cor de contorno por defeito é o vermelho. Para capturar as alterações mais recentes, poderás necessitar de refrescar o grafo usando F5.

Filtro

Por vezes o grafo de revisões contém mais revisões do que aquelas que queres ver. Esta opção abre a caixa de diálogo que permite restringir o intervalo de revisões mostradas e esconder caminhos particulares pelo nome.

Se esconderes um caminho em particular e esse nó tiver nós filho, os filhos serão mostrados como uma árvore separada. Se quiseres também esconder todos os filhos usa a caixa de verificação Remover as sub-árvore(s) completas.

Listas de árvore

Quando o grafo contém várias árvores, é por vezes útil usar cores de fundo alternadas para ajudar à distinção entre elas.

Mostra visão geral

Mostra uma pequena figura do grafo inteiro com a janela da vista corrente como um rectângulo que podes arrastar. Isto permite-te navegar pelo grafo de forma mais fácil. De notar que para grafos muito grandes a visão global pode-se tornar inutil, devido ao factor de ampliação (zoom) extremo, e por isso não ser mostrado nesses casos.

Utilizar o Gráfico

Usa a janela de vista global para tornar mais fácil a navegação em grandes gráficos. Este mostra o gráfico inteiro numa janela pequena, com a parcela correntemente mostrada salientada. Podes arrastar a área salientada de forma a alterar a região visualizada.

A data da revisão, o autor e os comentários são mostrados numa caixa de dica, quando o rato passa sobre a caixa de revisão.

Se seleccionares duas revisões ( Usa Ctrl-clique com o botão direito), podes usar o menu de contexto para mostrar as diferenças entre estas revisões. Podes optar por mostrar as diferenças nos pontos de criação de ramos, mas usualmente quererás mostrar as alterações nas pontas dos ramos, i.e. na revisão HEAD.

Podes ver as diferenças como um ficheiro de Comparação-Unificada que mostra todas as diferenças num único ficheiro com contexto mínimo. Se optares por Menu de contextoComparar Revisões serás presenteado com uma lista de ficheiros alterados. Efectua duplo clique num nome de ficheiro de modo a obter ambas as revisões do ficheiro e compará-las recorrendo à ferramenta de comparação visual.

Se tu clicas com o botão direito numa revisão, podes usar Menu de contextoMostrar registo para ver o histórico.

Podes também integrar as alterações nas revisões seleccionadas, numa cópia de trabalho diferente. A caixa de diálogo selecção de pasta, permite-te escolher a cópia de trabalho para onde integrar, mas após esta não existe caixa de confirmação nem uma oportunidade para tentar uma integração de teste. Será uma boa ideia integrar numa cópia de trabalho não modificada, para que possas reverter as alterações se não resultar! Esta é uma funcionalidade útil se pretendes integrar as revisões seleccionadas, de um ramo para outro.

Aprender a Ler o Gráfico de Revisões

Utilizadores pela primeira vez, podem ser surpreendidos pelo facto de que, o gráfico de revisões mostra algo que não corresponde ao seu modelo mental. Se uma revisão altera múltiplas cópias ou ramos de um ficheiro ou pasta, por exemplo, então irão existir múltiplos nós para essa simples revisão. É uma boa prática começar com as opções mais à esquerda, na barra de ferramentas, e customizar o gráfico passo a passo até este chega perto do teu modelo mental.

Todas as opções de filtro tentam perder o mínimo de informação possível, isso poderá fazer com que alguns nós mudem de cor. Sempre que o resultado seja inesperado, desfaz a última operação de filtragem e, tenta compreender o que essa revisão ou ramo tem de especial. Na maior parte dos casos o resultado, inicialmente esperado da operação de filtragem, terá sido impreciso ou enganador.

Refrescar a Vista

Se quiseres consultar novamente o servidor por nova informação poderás simplesmente refrescar a vista usando o F5. Se estiveres a usar a cache de registo (activada por defeito) o repositório será consultado para verificar novas submissões e buscará somente as novas. Se a cache de registo está em modo fora-de-linha, esta operação irá também tentar retornar ao modo em-linha.

Se estás a usar a cache de registo, e desconfias que o conteúdo da mensagem ou o autor foram alterados, então deverás recorrer à caixa de diálogo de registo para refrescar as mensagens de que necessitas. Desde que o gráfico de revisões funciona a partir da raiz do repositório, teríamos de invalidar toda a cache de registo, e uma recarga poderia levar um tempo muito longo.

Podar as Árvores

Uma árvore grande pode-se tornar difícil de navegar e por vezes tu quererás esconder algumas partes, ou parti-la numa floresta de árvores mais pequenas. Se manteres o rato sobre o ponto onde um nó de ligação entra ou sai do nó, irás ver um ou mais botões de aparição que te permitiram fazer isso.

Clica no botão de subtracção para colapsar a sub-árvore anexada.

Clica no botão de adição para expandir a árvore colapsada. Quando uma árvore está colapsada este botão mantém-se visível para sinalizar a sub-árvore escondida.

Clica no botão da cruz para dividir a sub-árvore anexada e mostrá-la no gráfico como uma árvore separada.

Clica no botão com o círculo para re-anexar a árvore dividida. Quando uma árvore foi dividida este botão permanece visível para indicar que existe uma sub-árvore separada.

Clica no fundo do gráfico para obteres o menu de contexto que te oferece opções para Expandir todosl e Juntar todos. Se não existem nenhum ramo colapsado ou dividido, o menu de contexto não será mostrado.

TortoiseSVN homepage