Manuals

Configurações do Projeto

Propriedades do Subversion

Figura 4.36. página de propriedades do Subversion

página de propriedades do Subversion


You can read and set the Subversion properties from the Windows properties dialog, but also from TortoiseSVNproperties and within TortoiseSVN's status lists, from Context menuproperties.

You can add your own properties, or some properties with a special meaning in Subversion. These begin with svn:. svn:externals is such a property; see how to handle externals in “Itens Externos”.

svn:keywords

Subversion supports CVS-like keyword expansion which can be used to embed filename and revision information within the file itself. Keywords currently supported are:

$Date$

Date of last known commit. This is based on information obtained when you update your working copy. It does not check the repository to find more recent changes.

$Revision$

Revisão da última submissão conhecida

$Author$

Autor que fez a última submissão conhecida.

$HeadURL$

A URL completa deste arquivo no repositório

$Id$

A combinação comprimida das quatro palavras-chave anteriores.

To find out how to use these keywords, look at the svn:keywords section in the Subversion book, which gives a full description of these keywords and how to enable and use them.

For more information about properties in Subversion see the Special Properties.

Adicionando e Editando Propriedades

Figura 4.37. Adicionando propriedades

Adicionando propriedades


To add a new property, first click on New.... Select the required property name from the menu, and then fill in the required information in the specific property dialog. These specific property dialogs are described in more detail in “Editores de Propriedades”.

To add a property that doesn't have its own dialog, choose Advanced from the New... menu. Then either select an existing property in the combo box or enter a custom property name.

If you want to apply a property to many items at once, select the files/folders in explorer, then select Context menuproperties.

Se deseja aplicar a propriedade para todos os arquivos e diretórios na hierarquia abaixo do diretório atual, marque a opção Recursivo .

Se deseja editar uma propriedade existente, selecione a propriedade da lista de propriedades existentes e então clique em Editar....

Se deseja editar uma propriedade existente, selecione a propriedade da lista de propriedades existentes e então clique em Remover.

A propriedade svn:externals pode ser usada para enviar outros projetos para o mesmo repositório ou para um repositório completamente diferente. Para maiores informações, leia “Itens Externos”.

Editar propriedades na revisão atual

Pelo fato das propriedades serem versionadas, não é possível editar as revisões anteriores. Se verificar as propriedades pela caixa de dialogo do log, ou por uma revisão no navegador do repositório que não seja a ultima, poderá visualizar a lista de propriedades e valores, porem não terá nenhum controle de edição disponível.

Exportando e Importando Propriedades

Often you will find yourself applying the same set of properties many times, for example bugtraq:logregex. To simplify the process of copying properties from one project to another, you can use the Export/Import feature.

From the file or folder where the properties are already set, use TortoiseSVNproperties, select the properties you wish to export and click on Export.... You will be prompted for a filename where the property names and values will be saved.

From the folder(s) where you wish to apply these properties, use TortoiseSVNproperties and click on Import.... You will be prompted for a filename to import from, so navigate to the place you saved the export file previously and select it. The properties will be added to the folders non-recursively.

If you want to add properties to a tree recursively, follow the steps above, then in the property dialog select each property in turn, click on Edit..., check the Apply property recursively box and click on OK.

The Import file format is binary and proprietary to TortoiseSVN. Its only purpose is to transfer properties using Import and Export, so there is no need to edit these files.

Propriedades Binárias

TortoiseSVN can handle binary property values using files. To read a binary property value, Save... to a file. To set a binary value, use a hex editor or other appropriate tool to create a file with the content you require, then Load... from that file.

Although binary properties are not often used, they can be useful in some applications. For example if you are storing huge graphics files, or if the application used to load the file is huge, you might want to store a thumbnail as a property so you can obtain a preview quickly.

Definição automática de propriedade

You can configure Subversion and TortoiseSVN to set properties automatically on files and folders when they are added to the repository. There are two ways of doing this.

You can edit the Subversion configuration file to enable this feature on your client. The General page of TortoiseSVN's settings dialog has an edit button to take you there directly. The config file is a simple text file which controls some of Subversion's workings. You need to change two things: firstly in the section headed miscellany uncomment the line enable-auto-props = yes. Secondly you need to edit the section below to define which properties you want added to which file types. This method is a standard Subversion feature and works with any Subversion client. However it has to be defined on each client individually - there is no way to propagate these settings from the repository.

An alternative method is to set the tsvn:autoprops property on folders, as described in the next section. This method only works for TortoiseSVN clients, but it does get propagated to all working copies on update.

As of Subversion 1.8, you can also set the property svn:auto-props on the root folder. The property value is automatically inherited by all child items.

Whichever method you choose, you should note that auto-props are only applied to files at the time they are added to the working copy. Auto-props will never change the properties of files which are already versioned.

If you want to be absolutely sure that new files have the correct properties applied, you should set up a repository pre-commit hook to reject commits where the required properties are not set.

Submeter propriedades

Propriedades do Subversion são versionadas. Depois que você mudar ou adicionar uma propriedade você precisa submeter suas alterações.

Conflitos em propriedades

Se existe um conflito ao submeter as alterações, porque outro usuário alterou a mesma propriedade, o Subversion gerará um arquivo .prej. Apague este arquivo depois que você resolver o conflito.

Propriedades do Projeto TortoiseSVN

TortoiseSVN tem algumas propriedades especiais próprias, que começam com tsvn:.

  • tsvn:logminsize sets the minimum length of a log message for a commit. If you enter a shorter message than specified here, the commit is disabled. This feature is very useful for reminding you to supply a proper descriptive message for every commit. If this property is not set, or the value is zero, empty log messages are allowed.

    tsvn:lockmsgminsize sets the minimum length of a lock message. If you enter a shorter message than specified here, the lock is disabled. This feature is very useful for reminding you to supply a proper descriptive message for every lock you get. If this property is not set, or the value is zero, empty lock messages are allowed.

  • tsvn:logwidthmarker is used with projects which require log messages to be formatted with some maximum width (typically 80 characters) before a line break. Setting this property to a non-zero will do 2 things in the log message entry dialog: it places a marker to indicate the maximum width, and it disables word wrap in the display, so that you can see whether the text you entered is too long. Note: this feature will only work correctly if you have a fixed-width font selected for log messages.

  • tsvn:logtemplate is used with projects which have rules about log message formatting. The property holds a multi-line text string which will be inserted in the commit message box when you start a commit. You can then edit it to include the required information. Note: if you are also using tsvn:logminsize, be sure to set the length longer than the template or you will lose the protection mechanism.

    There are also action specific templates which you can use instead of tsvn:logtemplate. The action specific templates are used if set, but tsvn:logtemplate will be used if no action specific template is set.

    Os modelos específicos de ação são:

    • tsvn:logtemplatecommit é usado para para todas as submissões da cópia de trabalho.

    • tsvn:logtemplatebranch é usado quando você cria um ramo/marca, ou quando você copia arquivos ou diretórios dentro do navegador de repositório.

    • tsvn:logtemplateimport é usado para importação.

    • tsvn:logtemplatedelete é usado quando itens são apagados dentro do navegador de repositório.

    • tsvn:logtemplatemove é usado quando arquivos são renomeados ou movidos dentro do navegador de repositório.

    • tsvn:logtemplatemkdir é usado quando diretórios são criados dentro do navegador de repositório.

    • tsvn:logtemplatepropset é usado quando propriedades são modificadas dentro do navegador de repositório.

    • tsvn:logtemplatelock é usado quando é obtido um bloqueio.

  • Subversion allows you to set autoprops which will be applied to newly added or imported files, based on the file extension. This depends on every client having set appropriate autoprops in their Subversion configuration file. tsvn:autoprops can be set on folders and these will be merged with the user's local autoprops when importing or adding files. The format is the same as for Subversion autoprops, e.g. *.sh = svn:eol-style=native;svn:executable sets two properties on files with the .sh extension.

    Se existe um conflito para a propriedade tsvn:autoprops entre a versão remota e local, as configurações do projeto são precedentes porque elas são específicas do projeto.

    As of Subversion 1.8, you should use the property svn:auto-props instead of tsvn:autoprops since this has the very same functionality but works with all svn clients and is not specific to TortoiseSVN.

  • Na janela de Submissão você tem a opção de colar a lista de arquivos modificados, incluindo a situação de cada arquivo (adicionado, modificado, etc). tsvn:logfilelistenglish define se a situação do arquivo é inserida em Inglês ou no idioma configurado. Se a propriedade não está configurada, o padrão é true.

  • TortoiseSVN can use a spell checker. On Windows 10, the spell checker of the OS is used. On earlier Windows versions, it can use spell checker modules which are also used by OpenOffice and Mozilla. If you have those installed this property will determine which spell checker to use, i.e. in which language the log messages for your project should be written. tsvn:projectlanguage sets the language module the spell checking engine should use when you enter a log message. You can find the values for your language on this page: MSDN: Language Identifiers.

    Você pode tanto digitar o valor em decimal, ou em hexadecimal se iniciado com 0x. Por exemplo Inglês (US) pode ser informado como 0x0409 ou 1033.

  • A propriedade tsvn:logsummary é usada para extrair uma porção da mensagem de auditoria que é mostrada na janela de auditoria como o resumo da mensagem.

    The value of the tsvn:logsummary property must be set to a one line regex string which contains one regex group. Whatever matches that group is used as the summary.

    Por exemplo: \[RESUMO\]:\s+(.*) Vai pegar tudo depois de [RESUMO] na mensagem de auditoria e usar como resumo.

  • The property tsvn:logrevregex defines a regular expression which matches references to revisions in a log message. This is used in the log dialog to turn such references into links which when clicked will either scroll to that revision (if the revision is already shown in the log dialog, or if it's available from the log cache) or open a new log dialog showing that revision.

    A expressão regular deve ser bater com a referência completa, não apenas com o número da revisão. O número da revisão é extraído do texto de referência compatível automaticamente.

    Se esta propriedade não estiver definida, uma expressão regular padrão é usada para relacionar as referências para as revisões.

  • Existe disponíveis várias propriedades para configurar scripts de gancho de cliente. Cada propriedade corresponde a um tipo específico de script de gancho.

    As propriedades/scripts-gancho disponíveis são

    • tsvn:startcommithook
    • tsvn:precommithook
    • tsvn:postcommithook
    • tsvn:startupdatehook
    • tsvn:preupdatehook
    • tsvn:postupdatehook
    • tsvn:prelockhook
    • tsvn:postlockhook

    Os parâmetros são os mesmos tal com se tu configurasses os scripts-gancho na caixa de diálogo preferências. Ver “Client Side Hook Scripts” para mais detalhes.

    Visto que nem todos os utilizadores têm a sua cópia de trabalho colocada na mesma localização, nem com o mesmo nome, podes então configurar um script/ferramenta a executar que resida na tua cópia de trabalho especificando o URL do repositório em alternativa , usando %REPOROOT% como a parte do URL referente à raiz do repositório. Por exemplo, se o script de gancho está na tua cópia de trabalho sob contrib/hook-scripts/client-side/checkyear.js, irás especificar o caminho para o script como %REPOROOT%/trunk/contrib/hook-scripts/client-side/checkyear.js. Deste modo mesmo que movas o teu repositório para outro servidor, não terás de ajustar as propriedades dos scripts de gancho.

    Instead of %REPOROOT% you can also specify %REPOROOT+%. The + is used to insert any number of folder paths necessary to find the script. This is useful if you want to specify your script so that if you create a branch the script is still found even though the url of the working copy is now different. Using the example above, you would specify the path to the script as %REPOROOT+%/contrib/hook-scripts/client-side/checkyear.js.

    A próxima captura de ecrã mostra como é configurado o script para verificar os anos de copyright nos cabeçalhos dos ficheiros fonte no TortoiseSVN.

    Figura 4.38. Caixa de diálogo de propriedades para scripts gancho

    Caixa de diálogo de propriedades para scripts gancho


  • When you want to add a new property, you can either pick one from the list in the combo box, or you can enter any property name you like. If your project uses some custom properties, and you want those properties to appear in the list in the combo box (to avoid typos when you enter a property name), you can create a list of your custom properties using tsvn:userfileproperties and tsvn:userdirproperties. Apply these properties to a folder. When you go to edit the properties of any child item, your custom properties will appear in the list of pre-defined property names.

    You can also specify whether a custom dialog is used to add/edit your property. TortoiseSVN offers four different dialog, depending on the type of your property.

    bool

    Se a tua propriedade só pode ter dois estados, e.g., true ou false, podes então configurar a tua propriedade como do tipo bool.

    Figura 4.39. Caixa de diálogo da propriedade tipos de utilizador booleano

    Caixa de diálogo da propriedade tipos de utilizador booleano


    . Especifica a tua propriedade deste modo:

    propertyname=bool;labeltext(YESVALUE;NOVALUE;Checkboxtext)

    Na <oliteral>labeltext eststateSe a tua propriedade representar um de muitos estados, e.g., sim,n, podes entstate Caixa de di do seguinte modo:propertyname=state;labeltext(DEFVAL;VAL1;TEXT1;VAL2;TEXT2;VAL3;TEXT3;...)Os parbool, com DEFVAL como parPara atsinglelinePara propriedades que consistem de uma linha de texto, use a o tipo de propriedade linha simples:/>nomepropriedade=linhasimples;identiftexto(exreg)O regex indica a expressmultiline propriedades que consistem em mmulti-linha: Caixa dinomepropriedade=multilinha;identiftexto(exreg)O regex indica a express The screenshots above were made with the following tsvn:userdirproperties: my:boolprop=bool;This is a bool type property. Either check or uncheck it.(true;false;my bool prop) my:stateprop1=state;This is a state property. Select one of the two states.(true;true;true value;false;false value) my:stateprop2=state;This is a state property. Select one of the three states.(maybe;true;answer is correct;false;answer is wrong;maybe;not answered) my:stateprop3=state;Specify the day to set this property.(1;1;Monday;2;Tuesday;3;Wednesday;4;Thursday;5;Friday;6;Saturday;7;Sunday) my:singlelineprop=singleline;enter a small comment(.*) my:multilineprop=multiline;copy and paste a full chapter here(.*) </oliteral>

TortoiseSVN can integrate with some bug tracking tools. This uses project properties that start with bugtraq:. Read “Integração com Sistemas de Rastreamento de Erros / Rastreadores de Reportes” for further information.

It can also integrate with some web-based repository browsers, using project properties that start with webviewer:. Read “Integração com visualizadores de repositórios locados na web” for further information.

Define as propriedades do projeto em diretórios

Essas propriedades especiais de projecto devem ser fixadas em pastas, para o sistema funcionar. Quando executas um comando do TortoiseSVn que usa essas propriedades, elas são lidas a partir da pasta em que clicaste. Se as propriedades não são encontradas aí, o TortoiseSVN irá procurar em direcção ascendente, através da árvore de ficheiros de modo ás encontrar até encontrar uma pasta não versionada ou a raiz da árvore (e.g. C:\).Se tens a certeza que cada utilizador só efectua checkout só a partir do, e.g. trunk/ e não de alguma subpasta, então é suficiente fixar as propriedades no trunk/. Se não tens a certeza, deverás fixar as propriedades recursivamente em cada subpasta. Se colocares a mesma propriedade, mas usares diferentes valores em diferentes niveis da hierarquia do projecto, irás então obter resultados diferentes dependendo do sítio na estrutura de pastas em que clicas.

For project properties only, i.e. tsvn:, bugtraq: and webviewer: you can use the Recursive checkbox to set the property to all sub-folders in the hierarchy, without also setting it on all files.

When you add new sub-folders to a working copy using TortoiseSVN, any project properties present in the parent folder will automatically be added to the new child folder too.

Limitações Usando o Navegador de Repositório

Fetching properties remotely is a slow operation, so some of the features described above will not work in the repository browser as they do in a working copy.

  • When you add a property using the repo browser, only the standard svn: properties are offered in the pre-defined list. Any other property name must be entered manually.

  • Propriedades não podem ser definidas ou apagadas recursivamente usando o navegador de repositório.

  • As propriedade do projeto não serão propagadas automaticamente quando um sub diretório é adicionado pelo navegador de repositório.

  • tsvn:autoprops não definirá as propriedades em arquivos que são adicionados pelo navegador de repositório.

Cuidado

Although TortoiseSVN's project properties are extremely useful, they only work with TortoiseSVN, and some will only work in newer versions of TortoiseSVN. If people working on your project use a variety of Subversion clients, or possibly have old versions of TortoiseSVN, you may want to use repository hooks to enforce project policies. project properties can only help to implement a policy, they cannot enforce it.

Editores de Propriedades

Some properties have to use specific values, or be formatted in a specific way in order to be used for automation. To help get the formatting correct, TortoiseSVN presents edit dialogs for some particular properties which show the possible values or break the property into its individual components.

Conteúdo Externo

Figura 4.40. página da propriedade svn:externals

página da propriedade svn:externals


The svn:externals property can be used to pull in other projects from the same repository or a completely different repository as described in “Itens Externos”.

You need to define the name of the sub-folder that the external folder is checked out as, and the Subversion URL of the external item. You can check out an external at its HEAD revision, so when the external item changes in the repository, your working copy will receive those changes on update. However, if you want the external to reference a particular stable point then you can specify the specific revision to use. IN this case you may also want to specify the same revision as a peg revision. If the external item is renamed at some point in the future then Subversion will not be able to update this item in your working copy. By specifying a peg revision you tell Subversion to look for an item that had that name at the peg revision rather than at HEAD.

The button Find HEAD-Revision fetches the HEAD revision of every external URL and shows that HEAD revision in the rightmost column. After the HEAD revision is known, a simple right click on an external gives you the command to peg the selected externals to their explicit HEAD revision. In case the HEAD revision is not known yet, the right click command will fetch the HEAD revision first.

Palavras-chave do SVN

Figura 4.41. página da propriedade svn:keywords

página da propriedade svn:keywords


Seleciona as palavras-chave que você gostaria que fosse expandida em seu arquivo.

Estilo FDL

Figura 4.42. página da propriedade svn:eol-style

página da propriedade svn:eol-style


Seleciona o estilo de fim de linha que você deseja usar e o TortoiseSVN usará o valor da propriedade correto.

Integração para Rastreador de Reportes

Figura 4.43. página da propriedade tsvn:bugtraq

página da propriedade tsvn:bugtraq


Tamanhos das Mensagens de Auditoria

Figura 4.44. Página da propriedade do tamanho das mensagens de auditoria

Página da propriedade do tamanho das mensagens de auditoria


These 3 properties control the formatting of log messages. The first 2 disable the OK in the commit or lock dialogs until the message meets the minimum length. The border position shows a marker at the given column width as a guide for projects which have width limits on their log messages. Setting a value to zero will delete the property.

Idioma do Projeto

Figura 4.45. Página da propriedade idioma

Página da propriedade idioma


Escolhe a linguagem a usar para verificar ortografia nas mensagens de registona caixa de diálogo submeter. A caixa de verificação de lista de ficheiros têm utilidade quando clicas à direita no painel de mensagem e seleccionas Colar lista de ficheiros. Por defeito o estado do Subversion será mostrado na lingua local. Quando esta caixa está sinalizada o estado é sempre dado em Inglês, para projectos que requerem mensagens de registo apenas em Inglês.

MIME-type

Figura 4.46. página da propriedade svn:mime-type

página da propriedade svn:mime-type


svn:needs-lock

Figura 4.47. página da propriedade svn:needs-lock

página da propriedade svn:needs-lock


This property simply controls whether a file will be checked out as read-only if there is no lock held for it in the working copy.

svn:executable

Figura 4.48. página da propriedade svn:executable

página da propriedade svn:executable


This property controls whether a file will be given executable status when checked out on a Unix/Linux system. It has no effect on a Windows checkout.

Templates de mensagens de registo

Quando são integradas as revisões na cópia de trabalho, o TortoiseSVN gera uma mensagem de registo para todas as revisões integradas. Essas ficam então disponíveis a partir do botão Mensagens recentes na janela de diálogo submeter.

Você pode customizar esta mensagem gerada com as seguintes propriedades:

Figura 4.49. Caixa de propriedades integra templates de mensagens de registo

Caixa de propriedades integra templates de mensagens de registo


tsvn:mergelogtemplatetitle, tsvn:mergelogtemplatereversetitle

Esta propriedade especifica a primeira parte da mensagem de auditoria gerada. As seguintes palavras-chave podem ser usadas:

{revisions}

Uma lista de revisões combinadas separadas por vírgula, p.ex., 3, 5, 6, 7

{revisionsr}

Como {revisions},mas com cada revisão precedida com um r, e.g., r3, r5, r6, r7

{revrange}

Uma lista de revisões combinadas separadas por vírgula, se possível agrupadas em intervalos, p.ex., 3, 5-7

{mergeurl}

O URL fonte da integração, i.e., de onde são integradas as revisões.

O valor por defeito para esta string é Merged revision(s) {revrange} from {mergeurl}: com uma linha nova no fim.

tsvn:mergelogtemplatemsg

Esta propriedade especifica como o texto para cada revisão combinada deve se parecer. As seguintes palavras-chaves podem ser usadas:

{msg}

A mensagem de auditoria da revisão combinada, como ela foi entrada.

{msgoneline}

Como o {msg}, mas todas as linhas novas são substituídas por um espaço, para que toda a mensagem de registo apareça numa única linha.

{author}

O autor da revisão mesclada

{rev}

A própria revisão combinada.

{bugids}

Os IDs dos erros da revisão combinada, se existirem.

tsvn:mergelogtemplatemsgtitlebottom

This property specifies the position of the title string specified with the tsvn:mergelogtemplatetitle or tsvn:mergelogtemplatereversetitle. If the property is set to yes or true, then the title string is appended at the bottom instead of the top.

Importante

Isto só funciona se as revisões combinadas já estiverem no cache de auditoria. Se você tiver desabilitado o cache de auditoria ou não tiver mostrado a auditoria logo antes da combinação, a mensagem gerada não conterá quaisquer informações sobre as revisões combinadas.

TortoiseSVN homepage