Puede leer y establecer las propiedades de Subversion desde el diálogo de propiedades de Windows, pero también desde → y dentro de las listas de estado de TortoiseSVN, desde → .
Puede añadir sus propias propiedades, o algunas propiedades con un significado especial en Subversion. Éstas empiezan con svn:
. svn:externals
es una de esas propiedades; vea cómo manejar externos en “Ítems externos”.
Subversion soporta expansión de palabras clave similar a CVS, lo que puede utilizarse para introducir el nombre del archivo y la información de la revisión dentro del propio archivo. Las palabras clave actualmente soportadas son:
Fecha de la última confirmación conocida. Esto se basa en la información obtenida cuando actualiza su copia de trabajo. No se contacta con el repositorio para buscar cambios más recientes.
Revisión de la última confirmación conocida.
Autor que hizo la última confirmación conocida.
La URL completa de este archivo en el repositorio.
Una combinación comprimida de las cuatro palabras clave anteriores.
Para averiguar cómo utilizar estas palabras clave, lea la sección svn:keywords del Libro de Subversion, que porporciona información completa sobre estas palabras clave y cómo habilitarlas y utilizarlas.
Puede encontrar más información sobre las propiedades en Subversion en las Propiedades Especiales.
Para agregar una nueva propiedad, primero presione sobre Nuevo.... Seleccione el nombre de la propiedad requerida del menu, y luego complete la información requerida en el diálogo de propiedades especifico. Estos diálogos de propiedades especificos estan descriptos más en detalle en “Editores de Propiedades”.
Para agregar una propiedad que no tiene su propio diálogo, seleccione Nuevo.... Luego o bien seleccione una propiedad existente en la lista desplegable o ingrese un nombre nuevo.
del menuSi desea aplicar una propiedad a muchos ítems a la vez, seleccione los archivos/carpetas en el explorador, y luego seleccione
→ .Si desea aplicar la propiedad a cada archivo y carpeta en la jerarquía debajo de la carpeta actual, seleccione la casilla Recursivo.
Si desea editar una propiedad existente, primero seleccione dicha propiedad de la lista de propiedades existentes, y luego pulse en
.Si desea eliminar una propiedad existente, seleccione dicha propiedad de la lista de propiedades existentes, y luego pulse en
.La propiedad svn:externals
se puede utilizar para traer otros proyectos del mismo repositorio o de otro completamente distinto. Para más información, lea “Ítems externos”.
Dado que las propiedades están versionadas, no puede editar las propiedades de revisiones previas. Si mira propiedades del diálogo de registro, o desde una revisión non-HEAD del explorador de repositorio, verá una lista de propiedades y valores, pero ningún control de edición.
A menudo se encontrará aplicando el mismo conjunto de propiedades muchas veces, por ejemplo bugtraq:logregex
. Para simplificar el proceso de copiar propiedades de un proyecto a otro, puede utilizar la característica Exportar/Importar.
Desde el archivo o carpeta en el que las propiedades ya están establecidas, utilice
→ , seleccione las propiedades que desea exportar y haga click en . Se le preguntará por un nombre de archivo donde se grabarán los nombres de las propiedades y sus valores.Desde la(s) carpeta(s) donde desea aplicar estas propiedades, utilice
→ y haga click en . Se le preguntará por un nombre de archivo desde el que importar, por lo que deberá navegar al lugar donde almacenó el archivo exportado anteriormente y seleccionarlo. Las propiedades se añadirán a las carpetas de forma no recursiva.Si desea añadir las carpetas a un árbol recursivamente, siga los pasos anteriores, y luego en el diálogo de propiedades seleccione cada propiedad por turnos, haga click en Aplicar propiedad recursivamentey haga click en .
, seleccione la casillaEl formato del archivo de importación es binario y propietario de TortoiseSVN. Su único propósito es transferir las propiedades utilizando Importar y Exportar, por lo que no hay necesidad de editar estos archivos.
TortoiseSVN puede manejar valores de propiedades binarios utilizando archivos. Para leer un valor de propiedad binario, utilice
para almacenarlo en un archivo. Para establecer un valor binario, utilice un editor hexadecimal u otra herramienta adecuada para crear un archivo con el contenido que necesite, y luego utilice para leer ese archivo.Aunque las propiedades binarias no se utilizan a menudo, pueden ser útiles en algunas aplicaciones. Por ejemplo, si está almacenando archivos gráficos muy grandes, o si la aplicación que se utiliza para cargar el archivo es pesada, puede querer guardar una pequeña imagen guía como una propiedad para poder obtener una previsualización rápidamente.
Puede configurar Subversion y TortoiseSVN para que establezca propiedades automáticamente en archivos y carpetas cuando se añaden al repositorio. Hay dos formas de hacerlo.
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.
Un método alternativo es establecer la propiedad tsvn:autoprops
en las carpetas, como se describe en la siguiente sección. Este método funciona sólo con los clientes TortoiseSVN, pero se propaga a todas las copias de trabajo al actualizarlas.
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.
Sea cual sea el método que elija, debe tener en cuenta que las auto-props se aplican sólo a los archivos en el momento en que se añaden al repositorio. Las auto-props nunca cambiarán las propiedades de archivos que ya estén versionados.
Si desea estar totalmente seguro que a los nuevos archivos les son aplicadas las propiedades correctas, debería establecer un script gancho pre-confirmación para rechazar las confirmaciones cuando estas propiedades necesarias no estén establecidas.
Las propiedades de Subversion están versionadas. Después que cambie o añada una propiedad tiene que confirmar sus cambios.
Si hay un conflicto al confirmar los cambios, porque otro usuario ha cambiado la misma propiedad, Subversion genera un archivo .prej
. Borre este archivo después que haya resuelto del conflicto.
TortoiseSVN tiene unas pocas propiedades especiales para sí mismo, y estas empiezan con tsvn:
.
tsvn:logminsize
establece la longitud mínima de un mensaje de registro para una confirmación. Si introduce un mensaje más corto de lo especificado aquí, la confirmación se deshabilita. Esta característica es muy útil para que se acuerde de proporcionar un mensaje descriptivo apropiado para cada confirmación. Si esta propiedad no se establece, o el valor es cero, se permiten mensajes de registro vacíos.
tsvn:lockmsgminsize
establece la longitud mínima para un mensaje de bloqueo. Si introduce un mensaje más corto de lo especificado aquí, el bloqueo se deshabilita. Esta característica es muy útil para que se acuerde de proporcionar un mensaje descriptivo apropiado para cada blqoueo que obtenga. Si esta propiedad no se establece, o el valor es cero, se permiten mensajes de bloqueo vacíos.
tsvn:logwidthmarker
se utiliza con proyectos que necesitan que los mensajes de registro se formateen con algún ancho máximo (típicamente, 80 caracteres) antes de un salto de línea. Al establecer esta propiedad a un valor distinto de cero ocurren dos cosas en el diálogo de entrada de mensajes de registro: pone un marcador para indicar el ancho máximo, y deshabilita el ajuste de línea en la pantalla, para que pueda ver si el texto que ha introducido es muy largo. Tenga en cuenta que esta característica sólo funcionará correctamente si ha seleccionado una fuente de ancho fijo para los mensajes de registro.
tsvn:logtemplate
se utiliza en proyectos que tienen reglas sobre el formateo de mensajes. Esta propiedad alberga una cadena de texto de múltiples líneas que se insertará en el cuadro del mensaje de confirmación cuando inice una confirmación. Puede editarlo para incluir la información necesaria. Tenga en cuenta que si estaba utilizando también tsvn:logminsize
, debe asegurarse de establecer una longitud mayor que la de la plantilla o perderá el mecanismo de protección.
También hay plantillas de acción específicas que puede utilizar en lugar de tsvn:logtemplate
. Se utilizarán la plantillas de acción específica si se en los casos configurados, pero se utilizará tsvn:logtemplate
si no hay plantilla de acción específica establecida.
Los templates de acción posibles son:
tsvn:logtemplatecommit
se utiliza para todas las confirmaciones de una copia de trabajo.
tsvn:logtemplatebranch
se utiliza cuando se crea una rama/etiqueta, o al copiar archivos o carpetas directamente en el navegador de repositorios.
tsvn:logtemplateimport
se utiliza para importaciones.
tsvn:logtemplatedelete
se utiliza cuando se eliminan elementos directamente en el navegador de repositorios.
tsvn:logtemplatemove
se utiliza cuando se renombran o mueven elementos en el navegador de repositorios.
tsvn:logtemplatemkdir
se utiliza cuando se crean directorios en el navegador de repositorios.
tsvn:logtemplatepropset
se utiliza al modificar propiedades en el navegador de repositorios.
tsvn:logtemplatelock
se utiliza al obtener un bloqueo.
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.
Si hay un conflicto entre las autoprops locales y tsvn:autoprops
, la configuración del proyecto tiene preferencia ya que son específicas para ese proyecto.
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.
En el diálogo de Confirmar tiene la opción de pegar la lista de archivos cambiados, incluyendo el estado de cada archivo (añadido, modificado, etc). tsvn:logfilelistenglish
define si el estado del archivo se inserta en inglés o en el idioma traducido. Si la propiedad no se establece, el valor por defecto es 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.
Puede introducir este valor en decimal, o en hexadecimal si se precede por 0x
. Por ejemplo, Español (España, ordenación tradicional) puede introducirse como 0x040a
or 1034
.
La propiedad tsvn:logsummary
se utiliza para extraer una porción del mensaje de registro que luego se muestra en el diálogo de registro como el sumario del mensaje de registro.
El valor de la propiedad tsvn:logsummary
debe establecerse a una cadena de texto regex de una línea que contenga un grupo regex. Lo que satisfaga ese grupo se utilizará como sumario.
Por ejemplo: \[SUMARIO\]:\s+(.*)
capturará todo lo que haya tras “[SUMARIO]” en el mensaje de registro y lo utillizará como sumario.
La propiedad tsvn:logrevregex
define una expresión regular que corresponde directamente a referencias hechas con respecto a revisiones en un mensaje de registro. Esta es utiizada en el diálogo de registro para convertir a tales referencias en ligas, las cuales al momento de ser seleccionadas haciendo clic sobre ellas, podrán llevarle directamente a dicha revisión (si la revisión se muestra en el diálogo de bitácora o si se encuentra disponible en el diálogo de registro) o bién, abrirá un nuevo diálogo de registro que le mostrará dicha revisión.
La expresión regular debe de corresponder a la referencia íntegra, no tan solo a el número de revisión. El número de revisión se extrae de forma automática de la cadena de referencia correspondiente.
Si esta propiedad no se ha establecido, se utilizará una expresion regular por defecto para ligar referencias a revisiones.
There are several properties available to configure client-side hook scripts. Each property is for one specific hook script type.
The available properties/hook-scripts are
The parameters are the same as if you would configure the hook scripts in the settings dialog. See “Scripts gancho del lado del cliente” for the details.
Since not every user has his or her working copy checked out at the same location with the same name, you can configure a script/tool to execute that resides in your working copy by specifying the URL in the repository instead, using %REPOROOT%
as the part of the URL to the repository root. For example, if your hook script is in your working copy under contrib/hook-scripts/client-side/checkyear.js
, you would specify the path to the script as %REPOROOT%/trunk/contrib/hook-scripts/client-side/checkyear.js
. This way even if you move your repository to another server you do not have to adjust the hook script properties.
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
.
The following screenshot shows how the script to check for current copyright years in source file headers is configured for TortoiseSVN.
Cuando quiera añadir una nueva propiedad, puede o bien elegir una desde la lista en el cuadro desplegable, o puede introducir el nombre de propiedad que desee. Si su proyecto utiliza algunas propiedades personalizadas, y quiere que esas propiedades aparezcan en la lista del cuadro desplegable (para evitar errores ortográficos cuando introduzca un nombre de propiedad), puede crear una llista de sus propias propiedades personalizadas utilizando tsvn:userfileproperties
y tsvn:userdirproperties
. Aplique estas propiedades a una carpeta. Cuando vaya a editar las propiedades de cualquier ítem hijo, sus propiedades personalizadas aparecerán en la lista de nombres de propiedades predefinidas.
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.
If your property can only have two states, e.g., true and false, then you can configure your property as a bool
type.
Specify your property like this:
propertyname=bool;labeltext(YESVALUE;NOVALUE;Checkboxtext)
the labeltext
is the text shown in the dialog above the checkbox where you can explain the purpose and use of the property. The other parameters should be self explanatory.
If your property represents one of many possible states, e.g., yes, no, maybe
, then you can configure your property as a state
property like this:
propertyname=state;labeltext(DEFVAL;VAL1;TEXT1;VAL2;TEXT2;VAL3;TEXT3;...)
The parameters are the same as for the bool
property, with DEFVAL
being the default value to be used if the property isn't set yet or has a value that's not configured.
For up to three different values, the dialog shows up to three radio buttons. If there are more values configured, it uses a combo box from where the user can select the required state.
For properties that consist of one line of text, use the singleline
property type:
propertyname=singleline;labeltext(regex)
the regex
specifies a regular expression which is used to validate (match) the text the user entered. If the text does not match the regex, then the user is shown an error and the property isn't set.
For properties that consist of multiple lines of text, use the multiline
property type:
propertyname=multiline;labeltext(regex)
the regex
specifies a regular expression which is used to validate (match) the text the user entered. Don't forget to include the newline (\n) character in the regex!
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(.*)
TortoiseSVN puede integrarse con algunas herramientas de control de errores. Esto utiliza propiedades de proyecto que comienzan con bugtraq:
. Para más información, lea “Integración con sistemas de control de errores / seguimiento de incidencias”.
También puede integrarse con algunos visores de repositorios basados en web, utilizando propiedades de proyecto que comienzan con webviewer:
. Para más información, lea “Integración con visores de repositorios basados en web”.
Estas propiedades especiales del proyecto deben estar establecidas en carpetas para que el sistema funcione. Cuando confirma un archivo o una carpeta, se leen las propiedades de esa carpeta. Si no se encuentran allí las propiedades, TortoiseSVN las buscará hacia arriba en el árbol de carpetas para encontrarlas, hasta que llega a una carpeta sin versionar, o se encuentra la raíz del árbol (por ejemplo, C:\
). Si puede estar seguro de que cada usuario obtiene sólo desde por ejemplo trunk/
y no desde alguna subcarpeta, entonces es suficiente establecer las propiedades en trunk/
. Si no puede estar seguro, debería establecer las propiedades recursivamente en cada subcarpeta. Una propiedad establecida en una carpeta más profunda dentro de la jerarquía del proyecto tiene preferencia sobre las propiedades establecidas en niveles más altos (más cerca de trunk/
).
Excusivamente para las propiedades de proyecto , por ejemplo: tsvn:
, bugtraq:
and webviewer:
, puede utilizar la casilla Recursivo para establecer la propiedad en todas las subcarpetas de la jerarquía, sin establecerla en todos los archivos.
Cuando añade nuevas subcarpetas a una copia de trabajo utilizando TortoiseSVN, cualquier propiedad de proyecto presente en la carpeta padre se añadirá también automáticamente a la nueva carpeta hija.
Obtener propiedades de forma remota es una operación lenta por lo que algunas características descritas antes no funcionarán en el navegador de repositorios de la misma forma como en la copia de trabajo.
Cuando añade una propiedad usando el navegador de repositorio, sólo las propiedades svn:
estándar son elegibles en la lista predefinida. Cualquier otra propiedad debe ser añadida manualmente.
Las propiedades no pueden ser guardadas o borradas recursivamente usando en navegador de repositorio.
Las propiedades de proyecto no se propagarán automáticamente cuando un directorio hijo es añadido usando el navegador de repositorio.
tsvn:autoprops
no establecerá propiedades en archivos que hayan sido añadidos usando el navegador de repositorio.
Aunque las propiedades de proyecto de TortoiseSVN son extremadamente útiles, sólo funcionan con TortoiseSVN, y algunas sólo funcionarán en las versiones más recientes de TortoiseSVN. Si la gente que trabaja en su proyecto utiliza un número de clientes de Subversion diferentes, o es posible que tengan versiones antiguas de TortoiseSVN, puede que quiera utilizar ganchos de repositorio para forzar políticas de proyectos. Las propiedades de proyecto sólo ayudan a implementar una política, no pueden forzarlas.
Algunas propiedades tienen que utilizar valores específicos, o tener el formato de una manera específica para poder ser utilizados en la automatización. Para ayudar a que el formato sea correcto, TortoiseSVN presenta cuadros de diálogo para editar algunas propiedades particulares que muestran los posibles valores o separa la propiedad en sus componentes individuales.
La propiedad svn:externals
se puede utilizar para traer otros proyectos del mismo repositorio o un repositorio completamente diferente como se describe en “Ítems 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
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.
Seleccione las palabras clave que desea que sean ampliadas en el archivo.
Seleccione el estilo de final de línea que desea utilizar y TortoiseSVN utilizará el valor correcto de la propiedad.
These 3 properties control the formatting of log messages. The first 2 disable the 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.
Choose the language to use for spell-checking log messages in the commit dialog. The file lists checkbox comes into effect when you right click in the log message pane and select Paste file list. By default the Subversion status will be shown in your local language. When this box is checked the status is always given in English, for projects which require English-only log messages.
Esta propiedad simplemente controla si un archivo es de sólo lectura en el caso de que no haya un bloqueo mantenido por la copia de trabajo.
Esta propiedad controla si un archivo se le dará el estado de ejecutable cuando se realice el check out en un sistema Unix / Linux. No tiene ningún efecto en una maquina Windows.
Whenever revisions are merged into a working copy, TortoiseSVN generates a log message from all the merged revisions. Those are then available from the
button in the commit dialog.Usted puede configurar el mensaje generado con las siguientes propiedades:
This property specifies the first part of the generated log message. The following keywords can be used:
Una lista de elementos separada por comas de las revisiones fusionadas, ej., 3, 5, 6, 7
Like {revisions}
, but with each revision preceded with an r
, e.g., r3, r5, r6, r7
Una lista de elementos separada por comas de las revisiones fusionadas, si es posible agrupadas en rangos, ej., 3, 5-7
The source URL of the merge, i.e., where the revisions are merged from.
The default value for this string is Merged revision(s) {revrange} from {mergeurl}:
with a newline at the end.
This property specifies how the text for each merged revision should look like. The following keywords can be used:
The log message of the merged revision, as it was entered.
Like {msg}
, but all newlines are replaced with a space, so that the whole log message appears on one single line.
El autor de la versión fusionada
The merged revision itself.
The bug IDs of the merged revision, if there are any.
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.
This only works if the merged revisions are already in the log cache. If you have disabled the log cache or not shown the log first before the merge, the generated message won't contain any information about the merged revisions.