O SubWCRev é um programa de consola do Windows que pode ser usado para ler o estado da cópia de trabalho do Subversion, e opcionalmente executar substituição de palavras-chave num ficheiro template. Isto é frequentemente usado como parte do processo de construção, como meio de incorporar informação da cópia de trabalho no objecto que estás a construir. Poderá ser usado tipicamente para incluir o número de revisão numa caixa “Sobre”.
O SubWCRev lê por defeito o estado Subversion de todos os ficheiros numa cópia de trabalho, incluindo os externos. Ele grava o número da mais alta revisão submetida que for encontrada e também a sua marca temporal, também regista a existência de alterações locais na cópia de trabalho ou, actualizações de revisões misturadas. O número de revisão, intervalo de revisões actualizadas e o estado de modificações, são mostrados no stdout.
SubWCRev.exe is called from the command line or a script, and is controlled using the command line parameters.
SubWCRev WorkingCopyPath [SrcVersionFile DstVersionFile] [-nmdfe]
O WorkingCopyPath
representa o caminho para a cópia de trabalho a ser verificada. Tu só podes usar o SubWCRev em cópias de trabalho e não directamente no repositório. O caminho pode ser absoluto ou relativo à pasta da cópia de trabalho corrente.
Se queres que o SubWCRev execute substituição de palavras-chave, para que campos como a revisão do repositório e URL sejam gravados num ficheiro de texto, irás necessitar de fornecer um ficheiro template SrcVersionFile
e um ficheiro de destino DstVersionFile
que contém a versão substituída do template.
You can specify ignore patterns for SubWCRev to prevent specific files and paths from being considered. The patterns are read from a file named .subwcrevignore
. The file is read from the specified path, and also from the working copy root. If the file does not exist, no files or paths are ignored. The .subwcrevignore
file can contain multiple patterns, separated by newlines. The patterns are matched against the paths relative to the repository root and paths relative to the path of the .subwcrevignore
file. For example, to ignore all files in the doc
folder of the TortoiseSVN working copy, the .subwcrevignore
would contain the following lines:
/trunk/doc /trunk/doc/*
Or, assuming the .subwcrevignore
file is in the working copy root which is checked out from trunk, using the patterns
doc doc/*
is the same as the example above.
To ignore all images, the ignore patterns could be set like this:
*.png *.jpg *.ico *.bmp
The ignore patterns are case-sensitive, just like Subversion is.
To create a file with a starting dot in the Windows explorer, enter .subwcrevignore.
. Note the trailing dot.
Existe um conjunto de opções opcionais que afectam a maneira como o SubWCRev funciona. Se usares mais do que uma, elas devem ser especificadas como um único grupo, e.g. -nm
, e não -n -m
.
Tabela 6.1. Lista de opções de linha de comando disponíveis
Trocar | Descrição |
---|---|
-n | Se é usada esta opção o SubWCRev irá sair com ERRORLEVEL 7 se a cópia de trabalho contiver alterações locais. Isto pode ser usado para evitar construir com alterações não submetidas presentes. |
-N | If this switch is given, SubWCRev will exit with NÍVEL de ERRO 11 if the working copy contains unversioned items that are not ignored. |
-m | Se esta opção for usada o SubWCRev irá sair com ERRORLEVEL 8 se a cópia de trabalho contiver revisões misturadas. Isto pode ser útil para evitar construir com uma cópia de trabalho parcialmente actualizada. |
-d | Se esta opção for usada o SubWCRev irá sair com ERRORLEVEL 9 se o ficheiro de destino já existe. |
-f | Se esta opção for usada o SubWCRev irá incluir a última revisão alterada de pastas. O comportamento por defeito será usar só ficheiros quando a obter os números de revisão. |
-e | Se esta opção for usada o SubWCRev irá examinar as pastas que estão incluídas com svn:externals , mas só se elas forem do mesmo repositório. O comportamento por defeito é ignorar os externos. |
-E | If this switch is given, same as -e , but it ignores the externals with explicit revisions, when the revision range inside of them is only the given explicit revision in the properties. So it doesn't lead to mixed revisions. |
-x | Se esta opção for usada o SubWCRev irá produzir os números de revisão em HEX. |
-X | Se esta opção for usada o SubWCRev irá produzir os números de revisão em HEX, com o prefixo '0X' |
-F | If this switch is given, SubWCRev will ignore any .subwcrevignore files and include all files. |
-q | If this switch is given, SubWCRev will perform the keyword substitution without showing working copy status on stdout. |
If there is no error, SubWCRev returns zero. But in case an error occurs, the error message is written to stderr and shown in the console. And the returned error codes are:
Tabela 6.2. List of SubWCRev error codes
Código do Erro | Descrição |
---|---|
1 | Erro de sintaxe. Um ou mais parâmetros da linha de comando são inválidos. |
2 | O arquivo ou pasta especificada na linha de comando não foi encontrado. |
3 | O arquivo de entrada não pôde ser aberto, ou o arquivo de destino não pode ser criado. |
4 | Could not allocate memory. This could happen if e.g. the source file is too big. |
5 | O arquivo fonte não pode ser escaneado apropriadamente. |
6 | SVN error: Subversion returned with an error when SubWCRev tried to find the information from the working copy. |
7 | The working copy has local modifications. This requires the -n switch. |
8 | The working copy has mixed revisions. This requires the -m switch. |
9 | The output file already exists. This requires the -d switch. |
10 | O caminho especificado não é uma cópia de trabalho ou parte de uma. |
11 | The working copy has unversioned files or folders in it. This requires the -N switch. |