Manuals

Gráfico de Revisões

Figura 4.63. Um Gráfico de Revisões

Um Gráfico 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...

This command analyses the revision history and attempts to create a tree showing the points at which copies were taken, and when branches/tags were deleted.

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.

The good news is that if you are using log caching, you only have to suffer this delay once. After that, log data is held locally. Log caching is enabled in TortoiseSVN's settings.

Nós do Gráfico 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

Items which have been added, or created by copying another file/folder are shown using a rounded rectangle. The default colour is green. Tags and trunks are treated as a special case and use a different shade, depending on the TortoiseSVNSettings.

Itens excluídos

Deleted items e.g. a branch which is no longer required, are shown using an octagon (rectangle with corners cut off). The default colour is red.

Itens renomeados

Renamed items are also shown using an octagon, but the default colour is blue.

Dica da revisão 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 apresentados usando um retângulo plano.

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.

Mudando a Visão

Because a revision graph is often quite complex, there are a number of features which can be used to tailor the view the way you want it. These are available in the View menu and from the toolbar.

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 primeiro

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 pelo 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.

Diferença em nome dos path

Long path names can take a lot of space and make the node boxes very large. Use this option to show only the changed part of a path, replacing the common part with dots. E.g. if you create a branch /branches/1.2.x/doc/html from /trunk/doc/html the branch could be shown in compact form as /branches/1.2.x/.. because the last two levels, doc and html, did not change.

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 ATUAIS

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

Cópia exata dos códigos

When a branch/tag is made, the default behaviour is to show the branch as taken from the last node where a change was made. Strictly speaking this is inaccurate since the branches are often made from the current HEAD rather than a specific revision. So it is possible to show the more correct (but less useful) revision that was used to create the copy. Note that this revision may be younger than the HEAD revision of the source branch.

Rótulo duplicado

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.

Ocultar caminhos apagados

Hides paths which are no longer present at the HEAD revision of the repository, e.g. deleted branches.

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 utilizados

Hides branches where no changes were committed to the respective file or sub-folder. This does not necessarily indicate that the branch was not used, just that no changes were made to this part of it.

Mostrar 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.

Tree stripes

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

Exibir 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.

Usando o Gráfico

To make it easier to navigate a large graph, use the overview window. This shows the entire graph in a small window, with the currently displayed portion highlighted. You can drag the highlighted area to change the displayed region.

The revision date, author and comments are shown in a hint box whenever the mouse hovers over a revision box.

If you select two revisions (Use Ctrl-left click), you can use the context menu to show the differences between these revisions. You can choose to show differences as at the branch creation points, but usually you will want to show the differences at the branch end points, i.e. at the HEAD revision.

You can view the differences as a Unified-Diff file, which shows all differences in a single file with minimal context. If you opt to Context MenuCompare Revisions you will be presented with a list of changed files. Double click on a file name to fetch both revisions of the file and compare them using the visual difference tool.

If you right click on a revision you can use Context MenuShow Log to view the history.

You can also merge changes in the selected revision(s) into a different working copy. A folder selection dialog allows you to choose the working copy to merge into, but after that there is no confirmation dialog, nor any opportunity to try a test merge. It is a good idea to merge into an unmodified working copy so that you can revert the changes if it doesn't work out! This is a useful feature if you want to merge selected revisions from one branch to another.

Aprenda a Ler o Gráfico de Revisões

First-time users may be surprised by the fact that the revision graph shows something that does not match the user's mental model. If a revision changes multiple copies or branches of a file or folder, for instance, then there will be multiple nodes for that single revision. It is a good practice to start with the leftmost options in the toolbar and customize the graph step-by-step until it comes close to your mental model.

All filter options try lose as little information as possible. That may cause some nodes to change their color, for instance. Whenever the result is unexpected, undo the last filter operation and try to understand what is special about that particular revision or branch. In most cases, the initially expected outcome of the filter operation would either be inaccurate or misleading.

Atualizando a Visualização

If you want to check the server again for newer information, you can simply refresh the view using F5. If you are using the log cache (enabled by default), this will check the repository for newer commits and fetch only the new ones. If the log cache was in offline mode, this will also attempt to go back online.

If you are using the log cache and you think the message content or author may have changed, you should use the log dialog to refresh the messages you need. Since the revision graph works from the repository root, we would have to invalidate the entire log cache, and refilling it could take a very long time.

Pruning Trees

A large tree can be difficult to navigate and sometimes you will want to hide parts of it, or break it down into a forest of smaller trees. If you hover the mouse over the point where a node link enters or leaves the node you will see one or more popup buttons which allow you to do this.

Click on the minus button to collapse the attached sub-tree.

Click on the plus button to expand a collapsed tree. When a tree has been collapsed, this button remains visible to indicate the hidden sub-tree.

Click on the cross button to split the attached sub-tree and show it as a separate tree on the graph.

Click on the circle button to reattach a split tree. When a tree has been split away, this button remains visible to indicate that there is a separate sub-tree.

Click on the graph background for the main context menu, which offers options to Expand all and Join all. If no branch has been collapsed or split, the context menu will not be shown.

TortoiseSVN homepage