Академический Документы
Профессиональный Документы
Культура Документы
Stefan Kng
Lbbe Onken
Simon Large
Tabla de contenidos
Prefacio .......................................................................................................................... xi
1. Audiencia ............................................................................................................ xi
2. Gua de Lectura ................................................................................................... xi
3. TortoiseSVN es gratis! ........................................................................................ xii
4. Comunidad ......................................................................................................... xii
5. Reconocimientos ................................................................................................. xii
6. Terminologa usada en este documento .................................................................... xii
1. Introduccin ................................................................................................................. 1
1.1. Qu es TortoiseSVN? ......................................................................................... 1
1.2. Historia de TortoiseSVN ...................................................................................... 1
1.3. Caractersticas de TortoiseSVN ............................................................................. 1
1.4. Instalando TortoiseSVN ....................................................................................... 3
1.4.1. Requerimientos del sistema ........................................................................ 3
1.4.2. Instalacin ............................................................................................... 3
1.4.3. Packs de idiomas ...................................................................................... 3
1.4.4. Corrector ortogrfico ................................................................................. 3
2. Conceptos bsicos ......................................................................................................... 5
2.1. El repositorio ..................................................................................................... 5
2.2. Modelos de versionado ........................................................................................ 5
2.2.1. El problema de compartir ficheros ............................................................... 6
2.2.2. La solucin bloquear-modificar-desbloquear .................................................. 6
2.2.3. La solucin copiar-modificar-fusionar .......................................................... 7
2.2.4. Qu hace Subversion? .............................................................................. 9
2.3. Subversion en accin ......................................................................................... 10
2.3.1. Copias de trabajo .................................................................................... 10
2.3.2. URLs de repositorio ................................................................................ 12
2.3.3. Revisiones ............................................................................................. 12
2.3.4. Cmo se unen las copias de trabajo al repositorio ......................................... 14
2.4. Sumario ........................................................................................................... 15
3. Preparando un servidor ................................................................................................. 16
3.1. Servidor basado en Apache ................................................................................. 16
3.1.1. Introduccin ........................................................................................... 16
3.1.2. Instalando Apache .................................................................................. 16
3.1.3. Instalando Subversion .............................................................................. 17
3.1.4. Configuracin ........................................................................................ 18
3.1.5. Mltiples repositorios .............................................................................. 20
3.1.6. Autorizacin basada en rutas ..................................................................... 20
3.1.7. Autentificacin con un dominio de Windows ............................................... 21
3.1.8. Mltiples orgenes de autentificacin .......................................................... 22
3.1.9. Asegurando el servidor con SSL ................................................................ 23
3.1.10. Utilizando certificados de cliente con hosts SSL virtuales .............................. 25
3.2. Servidor Basado en Svnserve .............................................................................. 26
3.2.1. Introduccin ........................................................................................... 26
3.2.2. Instalando svnserve ................................................................................. 26
3.2.3. Ejecutando svnserve ................................................................................ 26
3.2.4. Basic Authentication with svnserve ............................................................ 28
3.2.5. Better Security with SASL ....................................................................... 29
3.2.6. Autentificacin con svn+ssh ..................................................................... 31
3.2.7. Autorizacin basada en rutas con svnserve .................................................. 31
4. El repositorio .............................................................................................................. 32
4.1. Creacin de repositorios ..................................................................................... 32
4.1.1. Creando un repositorio con el cliente de lnea de comandos ............................ 32
4.1.2. Creando el repositorio con TortoiseSVN ..................................................... 32
4.1.3. Acceso local al repositorio ....................................................................... 33
4.1.4. Accediendo a un repositorio en una unidad de red ......................................... 33
iii
TortoiseSVN
iv
34
35
36
36
38
38
38
38
40
41
41
42
42
42
44
44
44
46
47
49
49
51
51
51
53
53
55
56
56
58
58
60
61
63
64
64
65
68
68
69
70
70
72
73
73
73
74
74
75
76
77
78
79
80
81
82
83
83
TortoiseSVN
TortoiseSVN
vi
146
146
147
147
148
151
152
152
152
152
152
152
153
153
153
154
154
154
154
155
155
155
156
156
156
157
157
157
158
158
160
160
163
165
165
165
165
165
166
166
166
167
167
167
167
168
168
168
168
168
168
168
168
169
169
169
169
169
TortoiseSVN
vii
170
170
170
170
170
170
170
171
171
173
173
173
174
174
174
174
175
175
176
177
181
Lista de figuras
2.1. Un sistema tpico cliente/servidor .................................................................................. 5
2.2. El problema a evitar .................................................................................................... 6
2.3. La solucin bloquear-modificar-desbloquear .................................................................... 7
2.4. La solucin copiar-modificar-fusionar ............................................................................. 8
2.5. ...Copiar-modificar-fusionar continuado ........................................................................... 9
2.6. El sistema de ficheros del repositorio ............................................................................ 11
2.7. El repositorio ........................................................................................................... 13
4.1. El men de TortoiseSVN para carpetas no versionadas ..................................................... 32
5.1. Explorador mostrando iconos sobreimpresionados ........................................................... 38
5.2. Men contextual para un directorio bajo el control de versiones ......................................... 39
5.3. Men archivo del explorador para un acceso directo en una carpeta versionada ...................... 40
5.4. Men de arrastre con el botn derecho para un directorio bajo el control de versiones ............. 41
5.5. Dilogo de autentificacin .......................................................................................... 42
5.6. El dilogo Importar ................................................................................................... 43
5.7. El dilogo Obtener .................................................................................................... 47
5.8. El dilogo de Confirmacin ........................................................................................ 49
5.9. El corrector ortogrfico del dilogo de Confirmacin ....................................................... 52
5.10. El dilogo Progreso mostrando el progreso de una confirmacin ....................................... 53
5.11. Dilogo de progreso mostrando una actualizacin terminada ............................................ 54
5.12. Explorador mostrando iconos sobreimpresionados ......................................................... 57
5.13. Comprobar modificaciones ........................................................................................ 59
5.14. Commit dialog with Changelists ................................................................................. 62
5.15. El dilogo de Registro de revisiones ........................................................................... 64
5.16. El panel superior del dilogo de Registro de revisiones con el men contextual .................... 65
5.17. Men contextual del panel superior para 2 revisiones seleccionadas ................................... 66
5.18. El panel inferior del dilogo de Registro con el men contextual ...................................... 67
5.19. El dilogo de registro mostrando revisiones con registro de fusin .................................... 69
5.20. Histograma de confirmaciones por autor ...................................................................... 71
5.21. Grfico de tarta de confirmaciones por autor ................................................................ 71
5.22. Grfico de confirmaciones por fecha ........................................................................... 72
5.23. El dilogo Comparar Revisiones ................................................................................ 75
5.24. El visor de diferencias de imgenes ............................................................................ 76
5.25. Men contextual del explorador para ficheros no versionados .......................................... 77
5.26. Men de arrastre con el botn derecho para un directorio bajo el control de versiones ............ 79
5.27. Men contextual del explorador para ficheros no versionados .......................................... 80
5.28. Men contextual del explorador para ficheros versionados ............................................... 82
5.29. Dilogo de Revertir ................................................................................................. 85
5.30. Pgina de propiedades del Explorador, pestaa Subversion .............................................. 87
5.31. Pgina de propiedades de Subversion .......................................................................... 88
5.32. Aadiendo propiedades ............................................................................................. 89
5.33. El dilogo Rama/Etiqueta .......................................................................................... 93
5.34. El dilogo Cambiar .................................................................................................. 95
5.35. El asistente de fusionado - Seleccionar el rango de revisiones .......................................... 97
5.36. El asistente de fusin - Fusionar reintegracin .............................................................. 98
5.37. El asistente de fusin - Fusin de rboles ..................................................................... 99
5.38. The Merge Conflict Callback Dialog ......................................................................... 102
5.39. The Merge reintegrate Dialog .................................................................................. 102
5.40. El dilogo Bloquear ............................................................................................... 104
5.41. El dilogo Comprobar modificaciones ....................................................................... 105
5.42. El dilogo Crear parche .......................................................................................... 106
5.43. El dilogo Anotar / Autora ..................................................................................... 108
5.44. TortoiseBlame ....................................................................................................... 109
5.45. El navegador de repositorios .................................................................................... 111
5.46. Un grfico de revisiones ......................................................................................... 113
5.47. The Export-from-URL Dialog .................................................................................. 116
viii
TortoiseSVN
ix
117
121
122
124
125
126
128
129
131
132
133
135
136
137
139
140
141
143
143
157
Lista de tablas
2.1. URLs de acceso al repositorio ..................................................................................... 12
3.1. Configuracin de httpd.conf de Apache ................................................................... 19
6.1. Lista de opciones de lnea de comandos disponible ........................................................ 146
6.2. Lista de opciones de lnea de comandos disponible ........................................................ 147
6.3. mtodos de automatizacin/COM soportados ................................................................ 148
C.1. Entradas de men y sus valores ................................................................................. 158
D.1. Lista de comandos y opciones disponibles ................................................................... 161
D.2. Lista de las opciones disponibles ............................................................................... 163
Prefacio
Trabaja en equipo?
Alguna vez le ha ocurrido que estaba trabajando en un fichero, y alguien ms tambin estaba
trabajando en ese mismo fichero al mismo tiempo? Perdi sus cambios en ese fichero por ese motivo?
Alguna vez ha grabado un fichero, y luego dese deshacer los cambios que haba hecho? Alguna
vez ha querido ver cmo estaba un fichero hace tiempo?
Alguna vez ha encontrado un error en su proyecto y ha querido saber cundo se introdujo ese error
en sus ficheros?
Si ha respondido s a alguna de las preguntas anteriores, entonces TortoiseSVN est hecho para usted!
Siga leyendo para saber cmo puede TortoiseSVN ayudarle en su trabajo. No es tan dificil.
1. Audiencia
Este libro est escrito para usuarios informticos que quieren usar Subversion para manejar sus datos,
pero no estn cmodos usando el cliente de lnea de comandos para hacerlo. Dado que TortoiseSVN es
una extensin del shell de Windows, se asume que el usuario est familiarizado con el Explorador de
windows y sabe cmo usarlo.
2. Gua de Lectura
This Prefacio explains a little about the TortoiseSVN project, the community of people who work on it,
and the licensing conditions for using it and distributing it.
The Captulo 1, Introduccin explains what TortoiseSVN is, what it does, where it comes from and the
basics for installing it on your PC.
In Captulo 2, Conceptos bsicos we give a short introduction to the Subversion revision control system
which underlies TortoiseSVN. This is borrowed from the documentation for the Subversion project and
explains the different approaches to version control, and how Subversion works.
Incluso muchos de los usuarios de Subversion nunca tendrn que preparar un servidor por ellos mismos.
El siguiente captulo trata sobre cmo preparar dicho servidor, y es til para los administradores.
The chapter on Captulo 4, El repositorio explains how to set up a local repository, which is useful
for testing Subversion and TortoiseSVN using a single PC. It also explains a bit about repository
administration which is also relevant to repositories located on a server.
The Captulo 5, Gua de uso diario is the most important section as it explains all the main features of
TortoiseSVN and how to use them. It takes the form of a tutorial, starting with checking out a working
copy, modifying it, committing your changes, etc. It then progresses to more advanced topics.
Captulo 6, El programa SubWCRev is a separate program included with TortoiseSVN which can extract
the information from your working copy and write it into a file. This is useful for including build
information in your projects.
The Apndice B, Cmo...? section answers some common questions about performing tasks which are
not explicitly covered elsewhere.
xi
Prefacio
The section on Apndice D, Automatizando TortoiseSVN shows how the TortoiseSVN GUI dialogs can
be called from the command line. This is useful for scripting where you still need user interaction.
The Apndice E, Referencia cruzada del interface de lnea de comandos give a correlation between
TortoiseSVN commands and their equivalents in the Subversion command line client svn.exe.
3. TortoiseSVN es gratis!
TortoiseSVN es gratis. No tiene que pagar por l, y puede usarlo para lo que quiera. Est desarrollado
bajo la Licencia Pblica General GNU (GPL).
TortoiseSVN es un proyecto de Cdigo Abierto. Eso significa que tiene acceso completo al cdigo fuente
de este programa. Puede verlo en este enlace http://tortoisesvn.tigris.org/svn/tortoisesvn/. (Usuario:guest,
deje en blanco la contrasea). La versin ms reciente (donde estamos trabajando) se encuentra bajo /
trunk/, las versiones oficiales estn bajo /tags/.
4. Comunidad
Tanto TortoiseSVN como Subversion estn siendo desarrollados por una comunidad de gente que trabaja
en estos proyectos. Provienen de diferentes pases por todo el mundo y se juntan para crear programas
estupendos.
5. Reconocimientos
Tim Kemp
por fundar el proyecto TortoiseSVN
Stefan Kng
por el duro trabajo de llevar a TortoiseSVN a lo que es hoy
Lbbe Onken
por los bonitos iconos, el logo, la caza de errores, por traducir y administrar traducciones
Simon Large
por ayudar con la documentacin y en la caza de bugs
El libro de Subversion
por la gran introduccin a Subversion y su captulo 2 que hemos copiado aqu
El proyecto Tigris Style
por algunos de los estilos que estn siendo reutilizados en esta documentacin
Nuestros colaboradores
por los parches, informes de errores y nuevas ideas, y por ayudar a otros respondiendo preguntas
de nuestra lista de correo.
Nuestros donantes
por la cantidad de horas de entretenimiento con la msica que nos enviaron
xii
Prefacio
Los botones del interfaz de usuario se indican como este: Pulse OK para continuar.
User Actions are indicated using a bold font. Alt+A: press the Alt-Key on your keyboard and while
holding it down press the A-Key as well. Right-drag: press the right mouse button and while holding it
down drag the items to the new location.
La salida del sistema y la entrada por teclado se indica con una fuente tambin diferente.
Importante
Las notas importantes estn marcadas con un icono.
Sugerencia
Trucos que le facilitan la vida.
Atencin
Lugares donde debe tener cuidado con lo que hace.
Aviso
Donde hay que tener un cuidado extremo, porque puede ocurrir corrupcin de datos u otras
cosas horribles si se ignoran estas advertencias.
xiii
Captulo 1. Introduccin
El control de versiones es el arte de manejar cambios en la informacin. Ha sido desde siempre una
herramienta crtica para los programadores, quienes tpicamente emplean su tiempo haciendo pequeos
cambios al software y luego deshaciendo o comprobando esos cambios al da siguiente. Imagine un
equipo de estos programadores trabajando concurrentemente - y quizs tambin simultneamente en los
mismos ficheros! - y podr ver por qu se necesita un buen sistema para manejar el caos potencial.
1.1. Qu es TortoiseSVN?
TortoiseSVN es un cliente gratuito de cdigo abierto para el sistema de control de versiones Subversion.
Esto es, TortoiseSVN maneja ficheros y directorios a lo largo del tiempo. Los ficheros se almacenan en
un repositorio central. El repositorio es prcticamente lo mismo que un servidor de ficheros ordinario,
salvo que recuerda todos los cambios que se hayan hecho a sus ficheros y directorios. Esto permite que
pueda recuperar versiones antiguas de sus ficheros y examinar la historia de cundo y cmo cambiaron
sus datos, y quin hizo el cambio. Esta es la razn por la que mucha gente piensa que Subversion, y los
sistemas de control de versiones en general, son una especie de mquinas del tiempo.
Algunos sistemas de control de versiones tambin son sistemas de manejo de configuracin del
software (SCM). Estos sistemas estn diseados especficamente para manejar rboles de cdigo fuente,
y tienen muchas caractersticas que son especficas para el desarrollo de software - tales como el
entendimiento nativo de los lenguajes de programacin, o proporcionan herramientas para compilar
software. Subversion, sin embargo, no es uno de estos sistemas; es un sistema general que puede ser
utilizado para manejar cualquier coleccin de ficheros, incluyendo cdigo fuente.
Introduccin
que es comn a la mayora de aplicaciones estndar de Windows. Sin embargo, debe tener en cuenta
que TortoiseSVN est desarrollado con la mirada puesta en hacerle extensin del Explorador de
Windows. Por este motivo, puede que en otras aplicaciones la integracin no sea tan completa y que,
por ejemplo, los iconos sobreimpresionados en las carpetas no se muestren.
Iconos sobreimpresionados
El estado de cada carpeta y fichero versionado se indica por pequeos iconos sobreimpresionados.
De esta forma, puede ver fcilmente el estado en el que se encuentra su copia de trabajo.
Fcil acceso a los comandos de Subversion
Todos los comandos de Subversion estn disponibles desde el men contextual del explorador.
TortoiseSVN aade su propio submen all.
Dado que TortoiseSVN es un cliente de Subversion, tambin queremos ensearle algunas de las
caractersticas del propio Subversion:
Versionado de carpetas
CVS slo controla la historia de ficheros individuales, pero Subversion implementa un sistema
virtual de ficheros versionados que sigue la pista de los cambios en todos los rboles de directorios
en el tiempo. Los ficheros y los directorios estn versionados. Como resultado, hay comandos reales
en el lado del cliente como mover y copiar que operan en ficheros y directorios.
Confirmaciones atmicas
Una confirmacin o bien entra en el repositorio completamente, o no entra en absoluto. Esto permite
a los desarrolladores construir y confirmar cambios como unidades lgicas.
Metadatos versionados
Cada fichero y directorio tiene un conjunto invisible de propiedades adjuntos. PUede inventarse y
almacenar cualquier par de clave/valor que desee. Las propiedades se versionan en el tiempo, igual
que el contenido de los ficheros.
Eleccin de capas de red
Subversion tiene una nocin abstracta del acceso al repositorio, hacindo que la gente pueda
implementar nuevos mecanismos de red fcilmente. El avanzado servidor de red de Subversion es
un mdulo para el servidor web Apache, que habla una variante de HTTP llamada WebDAV/DeltaV.
Esto dota a Subversion una gran ventaja en estabilidad e interoperatividad, y proporciona varias
caractersticas importantes gratis: autentificacin, autorizacin, compresin de la transmisin y
navegacin del repositorio, por ejemplo. Tambin est disponible un proceso servidor de Subversion
independiente. Este servidor habla un protocolo propio que puede encapsularse fcilmente sobre ssh.
Manejo de datos consistente
Subversion expresa las diferencias entre ficheros usando un algoritmo de diferenciacin binario, que
funciona exactamente igual tanto en ficheros de texto (legibles por los humanos) como en ficheros
binarios (que no son legibles por nosotros). Ambos tipos de ficheros se almacenan igualmente
comprimidos en el repositorio, y las diferencias se transmiten en ambas direcciones por la red.
Etiquetado y creacin de ramas eficiente
El coste de crear una rama o una etiqueta no necesita ser proporcional al tamao del proyecto.
Subversion crea ramas y etiquetas smplemente copiando el proyecto, utilizando un mecanismo
similar a los vnculos duros. Por tanto estas operaciones llevan un tiempo pequeo y constante, y
muy poco espacio en el repositorio.
Extensibilidad
Subversion no tiene lastre histrico; est implementado como una coleccin de libreras C
compartidas con APIS bien definidas. Esto hace que Subversion sea extremadamente mantenible y
se pueda utilizar por otras aplicaciones y lenguajes.
Introduccin
1.4.2. Instalacin
TortoiseSVN viene con un instalador fcil de utilizar. Haga doble click en el fichero de instalacin y siga
las instrucciones. El instalador se encargar del resto.
Importante
Necesita privilegios de Administrador para instalar TortoiseSVN.
Introduccin
la subcarpeta bin, tambin puede poner los ficheros del corrector ortogrfico en C:\Archivos de
programa\TortoiseSVN\Languages. Si esa carpeta no est ah, tendr que crearla primero. La
siguiente vez que inicie TortoiseSVN, podr utilizar el corrector ortogrfico.
Si instala mltiples diccionarios, TortoiseSVN utilizar estas reglas para seleccionar cul utilizar.
1. Compruebe la configuracin tsvn:projectlanguage. Lea Seccin 5.17, Configuracin del
proyecto para encontrar informacin sobre cmo se establecen propiedades de proyecto.
2. Si no se ha establecido un idioma del proyecto, o ese idioma no est instalado, intntelo con el idioma
que corresponde al de Windows.
3. Si no funciona el idioma exacto de Windows, pruebe el idioma Base, por ejemplo, es_MX (EspaolMxico) se transformara en es_ES (Espaol).
4. Si nada de lo anterior funciona, entonces el idioma por defecto es el Ingls, que se incluye con la
instalacin estndar.
2.1. El repositorio
Subversion es un sistema centralizado para compartir informacin. En su ncleo est un repositorio, que
es un almacn central de datos. El respositorio almacena informacin en forma de un rbol de ficheros
- una jerarqua tpica de ficheros y directorios. Cualquier nmero de clientes se conectan al repositorio,
y luego leen o esriben esos ficheros. Al escribir datos, el cliente hace que la informacin est disponible
para los otros; al leer los datos, el cliente recibe la informacin de los dems.
Conceptos bsicos
Conceptos bsicos
Conceptos bsicos
Aqu hay un ejemplo. Digamos que tanto Harry como Sally crean copias de trabajo del mismo proyecto,
copiado del repositorio. Ellos trabajan concurrentemente, y hacen los cambios al mismo fichero A dentro
de sus copias. Sally es la primera en grabar sus cambios en el repositorio. Cuando Harry intenta grabar
sus cambios ms tarde, el repositorio le informa que su fichero A est desactualizado. En otras palabras,
que el fichero A en el repositorio ha cambiado de alguna forma desde la ltima vez que lo copi. Por lo
que Harry le pide a su cliente que fusione cualquier nuevo cambio del repositorio dentro de su copia de
trabajo del fichero A. Lo ms seguro es que los cambios de Sally no se superpongan a los suyos; por lo
que una vez que ambos conjuntos de cambios se han integrado, l graba su copia de trabajo de nuevo
en el repositorio.
Conceptos bsicos
Pero qu ocurre si los cambios de Sally s se superponen a los cambios de Harry? Qu hacemos
entonces? La situacin se denomina un conflicto, y normalmente no es mucho problema. Cuando Harry
le pide a su cliente que fusione los ltimos cambios del repositorio en su copia de trabajo, su copia
del fichero A se marca de alguna forma como que est en un estado de conflicto: l ser capaz de ver
ambos conjuntos de cambios conflictivos, y manualmente podr elegir entre ellos. Tenga en cuenta que
el software no puede resolver conflictos automticamente; slo los humanos son capaces de entender y
hacer las elecciones necesarias de forma inteligente. Una vez que Harry haya resuelto manualmente los
cambios que se superponan (quizs discutiendo el conflicto con Sally!), puede volcar de forma segura
el fichero fusionado al repositorio.
El modelo copiar-modificar-fusionar puede sonar un poco catico, pero en la prctica, funciona
extremadamente bien. Los usuarios pueden trabajar en paralelo, sin que tengan que esperar nunca uno
por otro. Cuando trabajan en los mismos ficheros, resulta que la mayora de los cambios concurrentes no
se superponen en absoluto; los conflictos no son frecuentes. Y el tiempo que lleva resolver conflictos es
mucho menor que el tiempo perdido por un sistema bloqueante.
Al final, todo se reduce a un factor crtico: la comunicacin entre usuarios. Cuando los usuarios se
comunican de forma pobre, aumentan los conflictos sintcticos y semnticos. No hay sistema capaz
de forzar a los usuarios a comunicarse perfectamente, y no hay sistema que pueda detectar conflictos
semnticos. Por lo que no hay motivo para que se le prometa falsamente que un sistema con bloqueos
prevendr de alguna forma los conflictos; en la prctica, el bloqueo parece inhibir la productividad ms
que otra cosa.
Hay una situacin comn donde el modelo bloquear-modificar-desbloquear resulta mejor, y es cuando
tiene ficheros no-fusionables. Por ejemplo si su repositorio contiene algunas imgenes grficas, y dos
personas cambian la imagen a la vez, no hay forma de fusionar esos cambios. O Harry o Sally perdern
sus cambios.
Conceptos bsicos
lo que si tiene ficheros no-fusionables, o si simplemente est forzado a una poltica de bloqueo por la
direccin, Subversion seguir teniendo las caractersticas que necesita.
10
Conceptos bsicos
11
Conceptos bsicos
Mtodo de acceso
file://
http://
https://
svn://
svn+ssh://
file:///X:/ruta/al/repositorio
...
file:///X|/ruta/al/repositorio
...
Tenga en cuenta que las URLs utilizan las barras hacia delante (las de dividir) incluso aunque la forma
nativa (no-URL) de una ruta en Windows utiliza las barras contrarias.
Puede acceder con seguridad a un repositorio FSFS utilizando una carpeta compartida de red, pero no
puede acceder a un repositorio BDB de esta forma.
Aviso
No cree o acceda a un repositorio Berkeley DB en una unidad de red compartida. No puede
existir en un sistema de archivos remoto. Ni siquiera si tiene la unidad de red mapeada
a una letra de unidad. Si intenta usar Berkeley DB en una unidad de red compartida, los
resultados son imprevisibles - puede ver desde el principio errores misteriosos, o pueden
pasar meses antes de que descubra que su base de datos del repositorio est corrupta de una
forma inimaginable.
2.3.3. Revisiones
Una operacin svn commit puede publicar los cambios de cualquier nmero de ficheros y carpetas como
una nica transaccin atmica. En su copia de trabajo, puede cambiar el contenido de los ficheros, crear,
12
Conceptos bsicos
borrar, renombrar y copiar ficheros y directorios, y luego confirmar el conjunto completo de cambios
como una unidad.
En el repositorio, cada confirmacin se trata como una transaccin atmica: o bien todos los cambios de
la confirmacin se llevan a cabo, o bien ninguno de ellos se realiza. Subversion aplica esta atomicidad
en caso de errores en el programa, errores del sistema, problemas de red, y otras acciones del usuario.
Cada vez que el repositorio acepta una confirmacin, crea un nuevo estado del rbol de ficheros, llamado
revisin. A cada revisin se le asigna un nmero natural nico, un nmero mayor que la revisin anterior.
La revisin inicial de un repositorio recin creado se numera como cero, y consiste nicamente en un
directorio raz vaco.
Una buena forma de visualizar el repositorio es como una serie de rboles. Imagine una fila de nmeros
de revisiones, empezando en 0, de izquierda a derecha. Cada nmero de revisin tiene un rbol colgando
debajo, y cada rbol es una foto de cmo estaba el repositorio tras cada confirmacin.
calc/Makefile:4
13
Conceptos bsicos
integer.c:4
button.c:4
En este momento, esta copia de trabajo corresopnde exactamente a la revisin 4 en el respositorio. Sin
embargo, suponga que ha hecho cambios al fichero button.c, y confirme ese cambio. Asumiendo
que no se haya llevado a cambio ninguna otra confirmacin, su confirmacin crear la revisin 5 en el
repositorio, y su copia de trabajo quedar as:
calc/Makefile:4
integer.c:4
button.c:5
Suponga que, en este punto, Sally hace un cambio a integer.c, creando la revisin 6. Si utiliza svn
update para actualizar su copia de trabajo, obtendr sto:
calc/Makefile:6
integer.c:6
button.c:6
Los cambios de Sally a integer.c aparecern en su copia de trabajo, y su cambio estar an presente
en button.c. En este ejemplo, el texto de Makefile es idntico en las revisiones 4, 5, y 6, pero
Subversion marcar su copia de trabajo de Makefile con la revisin 6 para indicar que an est
actualizado. Por lo que, despus de que haga una actualizacin limpia en la parte superior de su copia de
trabajo, generalmente obtendr exactamente una revisin del repositorio.
14
Conceptos bsicos
2.4. Sumario
Hemos cubierto un nmero de conceptos fundamentales de Subversion en este captulo:
Hemos introducido las nociones de un repositorio central, la copia de trabajo del cliente, y la lista de
rboles de revisiones del repositorio.
Hemos visto algunos ejemplos simples sobre cmo dos colaboradores pueden utilizar Subversion para
publicar y recibir los cambios de uno a otro, utilizando el modelo 'copiar-modificar-fusionar'.
Hemos hablado un poco sobre la forma en la que Subversion controla y maneja la informacin en una
copia de trabajo.
15
Aviso
Por favor tenga en cuenta que utilizar Windows XP sin el Service Pack 1 corrompe datos
de la red y por tanto podra corromper su repositorio!
1. Descargue la ltima versin del servidor web Apache desde http://httpd.apache.org/download.cgi.
Asegrese de que descarga la versin 2.2.x - las versiones 1.3.xx no servirn!
16
Preparando un servidor
El instalador MSI de Apache se puede encontrar haciendo click en other files (otros
ficheros), y luego navegando a binaries/win32. Puede que quiera seleccionar el fichero MSI
apache-2.2.x-win32-x86-openssl-0.9.x.msi (el que incluye OpenSSL).
2. Una vez que tenga el instalador de Apache2 puede hacer doble click en l y le guiar a travs del
proceso de instalacin. Asegrese de que ha introducido la URL del servidor correctamente (si no tiene
un nombre DNS para su servidor introduzca la direccin IP). Es recomendable que instale Apache
para Todos los usuarios, en el Puerto 80, como un Servicio. Nota: si ya tiene IIS u otro programa
ejecutndose que escuche en el puerto 80 la instalacin puede fallar. Si esto ocurre, vaya al directorio
de Archivos de programa, \Apache Group\Apache2\conf y localice el fichero httpd.conf.
Edite dicho fichero para cambiar Listen 80 por un puerto libre, por ejemplo, Listen 81. Luego
reinicie la instalacin - esta vez debera terminar sin problemas.
3. Ahora compruebe si el servidor web Apache funciona correctamente apuntando desde su navegador
web a la direccin http://localhost/ - debera aparecer un sitio web preconfigurado.
Atencin
Si decide instalar Apache como un servicio, queda avisado de que por defecto se ejecutar
con la cuenta de sistema local. Sera una prctica ms segura que creara una cuenta separada
para que Apache se ejecutara bajo ella.
Asegrese de que la cuenta en el servidor bajo la que se ejecuta Apache tenga una entrada
explcita en la lista de control de acceso del directorio del repositorio (click con el botn
derecho en el directorio | propiedades | seguridad), con control total. Si no lo hace as, los
usuarios no podrn confirmar sus cambios.
Incluso si Apache se ejecuta como sistema local, an as necesitar dicha entrada (que en
este caso debera ser la cuenta SYSTEM).
Si Apache no tiene este permiso configurado, sus usuarios tendrn mensajes de error
Acceso denegado, que se mostrarn en el registro de errores de Apache como error 500.
17
Preparando un servidor
3.1.4. Configuracin
Ahora ya ha preparado Apache y Subversion, pero Apache an no sabe cmo manejar los clientes de
Subversion como TortoiseSVN. Para que Apache sepa qu URL debe utilizarse para los repositorios de
Subversion debe editar el fichero de configuracin de Apache (normalmente est en C:\Archivos
de programa\Apache Group\Apache2\conf\httpd.conf) con cualquier editor de texto
que desee (por ejemplo, el Bloc de notas):
1. At the end of the config file add the following lines:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath D:\SVN
#SVNIndexXSLT "/svnindex.xsl"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile passwd
#AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>
This configures Apache so that all your Subversion repositories are physically located below D:\SVN.
The repositories are served to the outside world from the URL: http://MyServer/svn/ .
Access is restricted to known users/passwords listed in the passwd file.
2. Para crear el fichero passwd, abra el Smbolo del sistema o la lnea de comandos (ventana DOS)
de nuevo, cambie a la carpeta Apache2 (normalmente C:\Archivos de programa\Apache
Group\Apache2) y cree el fichero mediante
18
Preparando un servidor
Configuracin
Explicacin
<Location /svn>
DAV svn
le dice a Apache qu mdulo ser responsable de servir esa URL en este caso, el mdulo de Subversion.
SVNListParentPath on
SVNParentPath D:\SVN
SVNIndexXSLT
svnindex.xsl"
AuthType Basic
AuthName
repositories"
AuthUserFile passwd
AuthzSVNAccessFile
lugar del fichero de Acceso para las rutas dentro del repositorio de
Subversion
Require valid-user
Require valid-user
por
#AuthzSVNAccessFile svnaccessfile
and create a Subversion access file. Apache will make sure that only valid users are able to access your
/svn location, and will then pass the username to Subversion's AuthzSVNAccessFile module so
that it can enforce more granular access based upon rules listed in the Subversion access file. Note that
paths are specified either as repos:path or simply path. If you don't specify a particular repository,
that access rule will apply to all repositories under SVNParentPath. The format of the authorizationpolicy file used by mod_authz_svn is described in Seccin 3.1.6, Autorizacin basada en rutas
To make browsing the repository with a web browser 'prettier', uncomment the line
19
Preparando un servidor
#SVNIndexXSLT "/svnindex.xsl"
and put the files svnindex.xsl, svnindex.css and menucheckout.ico in your document
root directory (usually C:/Program Files/Apache Group/Apache2/htdocs). The
directory is set with the DocumentRoot directive in your Apache config file.
Puede obtener estos tres ficheros directamente desde nuestro repositorio de cdigo fuente en http://
tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/other/svnindex. Si se le pide autenticacin para este
enlace, utilice guest como nombre de usuario y deje la contrasea vaca.
The XSL file from the TortoiseSVN repository has a nice gimmick: if you browse the repository with
your web browser, then every folder in your repository has an icon on the right shown. If you click on
that icon, the TortoiseSVN checkout dialog is started for this URL.
[groups]
admin = john, kate
devteam1 = john, rachel, sally
devteam2 = kate, peter, mark
docs = bob, jane, miguel
training = zak
# Regla de acceso por defecto para TODOS los repositorios
# Todo el mundo puede leer, los administradores pueden escribir,
# Donpe Ligro est exludo.
[/]
* = r
@admin = rw
donpeligro =
# Permitir a los desarrolladores acceso completo
# al repositorio de su proyecto
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
20
Preparando un servidor
@devteam1 = rw
@devteam2 = rw
trevor = rw
# Dar a los documentadores acceso de escritura
# a todas las carpetas de documentacin
[/trunk/doc]
@docs = rw
# Dar a los becarios acceso de escritura
# slo al repositorio de pruebas
[TrainingRepos:/]
@training = rw
Tenga en cuenta que comprobar cada ruta puede ser una operacin costosa, particularmente en el caso
del registro de revisiones. El servidor toma cada ruta cambiada en cada revisin y comprueba si se puede
leer, lo que puede ser lento en revisiones que afecten a un gran nmero de ficheros.
Authentication and authorization are separate processes. If a user wants to gain access to a repository
path, she has to meet both, the usual authentication requirements and the authorization requirements of
the access file.
AuthType Basic
to
AuthType SSPI
also you need to add
21
Preparando un servidor
SSPIAuth On
SSPIAuthoritative On
SSPIDomain <domaincontroller>
SSPIOmitDomain on
SSPIUsernameCase lower
SSPIPerRequestAuth on
SSPIOfferBasic On
within the <Location /svn> block. If you don't have a domain controller, leave the name of the
domain control as <domaincontroller>.
Note that if you are authenticating using SSPI, then you don't need the AuthUserFile line to define
a password file any more. Apache authenticates your username and password against your windows
domain instead. You will need to update the users list in your svnaccessfile to reference DOMAIN
\username as well.
Importante
La autenticacin SSPI slo est habilitada para conexiones seguras por SSL (https). Si
nicamente est utilizando conexiones http normales a su servidor, no funcionar.
Para habilitar SSL en su servidor, vea el captulo: Seccin 3.1.9, Asegurando el servidor
con SSL
Sugerencia
Subversion AuthzSVNAccessFile files are case sensitive in regard to user names
(JUser is different from juser).
In Microsoft's world, Windows domains and user names are not case sensitive. Even so,
some network administrators like to create user accounts in CamelCase (e.g. JUser).
La diferencia puede morderle cuando utilice la autentificacin SSPI ya que el dominio
de Windows y los nombres de usuario se pasan a Subversion exactamente como los haya
tecleado el usuario en la ventana. Internet Explorer a menudo pasa el nombre de usuario a
Apache automticamente utilizando el formato con el que se cre la cuenta.
The end result is that you may need at least two entries in your AuthzSVNAccessFile
for each user -- a lowercase entry and an entry in the same case that Internet Explorer passes
to Apache. You will also need to train your users to also type in their credentials using lower
case when accessing repositories via TortoiseSVN.
Apache's Error and Access logs are your best friend in deciphering problems such as
these as they will help you determine the username string passed onto Subversion's
AuthzSVNAccessFile module. You may need to experiment with the exact format of
the user string in the svnaccessfile (e.g. DOMAIN\user vs. DOMAIN//user) in
order to get everything working.
22
Preparando un servidor
To enable both Windows domain and passwd file authentication, add the following entries within
the <Location> block of your Apache config file:
AuthBasicAuthoritative Off
SSPIAuthoritative Off
Here is an example of the full Apache configuration for combined Windows domain and passwd file
authentication:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath D:\SVN
AuthName "Subversion repositories"
AuthzSVNAccessFile svnaccessfile.txt
# NT Domain Logins.
AuthType SSPI
SSPIAuth On
SSPIAuthoritative Off
SSPIDomain <domaincontroller>
SSPIOfferBasic On
# Htpasswd Logins.
AuthType Basic
AuthBasicAuthoritative Off
AuthUserFile passwd
Require valid-user
</Location>
#Include conf/extra/httpd-ssl.conf
then change the line (on one line)
SSLMutex default
23
Preparando un servidor
2. Next you need to create an SSL certificate. To do that open a command prompt (DOS-Box) and
change to the Apache folder (e.g. C:\program files\apache group\apache2) and type
the following command:
24
Preparando un servidor
25
Preparando un servidor
SSLVerifyClient Optional
### Configuracin del virtual host para el host PBLICO
### (sin necesidad de un certificado de cliente)
<VirtualHost 127.0.0.1:443>
<Directory "rutaalaraizdeficherospublicos">
</Directory>
</VirtualHost>
### Configuracin del virtual host para SUBVERSION
### (necesita un certificado de cliente)
<VirtualHost 127.0.0.1:443>
<Directory "ruta a la raiz del host de subversion">
SSLRequire %{SSL_CLIENT_VERIFY} eq "SUCCESS"
</Directory>
<Location /svn>
DAV svn
SVNParentPath /rutaalrepositorio
</Location>
</VirtualHost>
26
Preparando un servidor
svnserve.exe --daemon
svnserve ahora se iniciar esperando peticiones entrantes en el puerto 3690. La opcin --daemon le dice
a svnserve que se ejecute como un servicio, por lo que continuar ejecutndose hasta que manualmente
se le mande terminar.
Si an no ha creado un repositorio, siga las instrucciones dadas en la instalacin del servidor basado en
Apache Seccin 3.1.4, Configuracin.
Para comprobar que svnserve est funcionando, utilice TortoiseSVN Navegador para ver un
repositorio.
Asumiendo que su repositorio est en c:\repos\TestRepo, y que su servidor se llama localhost,
introduzca:
svn://localhost/repos/TestRepo
cuando le pregunte el navegador de repositorios.
You can also increase security and save time entering URLs with svnserve by using the --root switch to
set the root location and restrict access to a specified directory on the server:
svn://localhost/TestRepo
Note that the --root switch is also needed if your repository is located on a different partition or drive
than the location of svnserve on your server.
Svnserve podr servir un nmero de repositorios arbitrario. Simplemente colquelos en algn lugar bajo
la carpeta raz que acaba de definir, y acceda a ellos utilizando una URL relativa a esa raz.
Aviso
No cree o acceda a un repositorio Berkeley DB en una unidad de red compartida. No puede
existir en un sistema de archivos remoto. Ni siquiera si tiene la unidad de red mapeada
a una letra de unidad. Si intenta usar Berkeley DB en una unidad de red compartida, los
resultados son imprevisibles - puede ver desde el principio errores misteriosos, o pueden
pasar meses antes de que descubra que su base de datos del repositorio est corrupta de una
forma inimaginable.
27
Preparando un servidor
To install svnserve as a native windows service, execute the following command all on one line to create
a service which is automatically started when windows starts.
Sugerencia
Microsoft now recommend services to be run as under either the Local Service or
Network Service account. Refer to The Services and Service Accounts Security Planning
Guide [http://www.microsoft.com/technet/security/topics/serversecurity/serviceaccount/
default.mspx]. To create the service under the Local Service account, append the following
to the example above.
svnservice -remove
para eliminar la entrada del registro del servicio.
28
Preparando un servidor
Sugerencia
If you maintain multiple repositories using the same password database,
the use of an authentication realm will make life easier for users, as
TortoiseSVN can cache your credentials so that you only have to enter them
once. More information can be found in the Subversion book, specifically
in the sections Create a 'users' file and realm [http://svnbook.red-bean.com/
en/1.4/svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.auth.users] and Client
Credentials
Caching
[http://svnbook.red-bean.com/en/1.4/
svn.serverconfig.netmodel.html#svn.serverconfig.netmodel.credcache]
29
Preparando un servidor
use-sasl = true
En segundo lugar, cree un fichero llamado svn.conf en un lugar conveniente - tpicamente en el
directorio donde est instalado Subversion.
En tercer lugar, cree dos nuevas entradas de registro para indicar a SASL dnde encontrar las cosas.
Cree una clave de registro llamada [HKEY_LOCAL_MACHINE\SOFTWARE\Carnegie Mellon
\Project Cyrus\SASL Library] y ponga dos nuevos valores de cadena dentro: SearchPath
establecido a la carpeta que contiene los plug-ins sasl*.dll (normalmente en la carpeta de instalacin
de Subversion), y ConfFile establecido a la carpeta que contiene el fichero svn.conf. Si ha utilizado
el instalador CollabNet, estas claves de registro ya habrn sido creadas por usted.
Edite el fichero svn.conf para que contenga lo siguiente:
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: DIGEST-MD5
sasldb_path: C:\TortoiseSVN\sasldb
La ltima lnea muestra el lugar de la base de datos de autenticacin, que es un fichero llamado sasldb.
Este puede estar en cualquier sitio, pero una eleccin conveniente es la carpeta padre del repositorio.
Asegrese de que el servicio svnserve tiene acceso de lectura sobre este fichero.
Si svnserve ya est ejecutndose, necesitar reiniciarlo para asegurarse de que lee la configuracin
actualizada.
Ahora que todo est preparado, todo lo que necesita es crear algunos usuarios y contraseas. Para hacerlo,
necesitar el programa saslpasswd2. Si ha usado el instalador CollabNet, ese programa estar en el
diretorio de instalacin. Utilice un comando como este:
[sasl]
use-sasl = true
min-encryption = 128
max-encryption = 256
30
Preparando un servidor
[general]
authz-db = authz
Aqu, authz es un fichero que debe existir y que define los permisos de acceso. Puede utilizar un
fichero separado por cada repositorio, o utilizar el mismo fichero para varios repositorios. Si desea una
descripcin del formato del fichero, lea Seccin 3.1.6, Autorizacin basada en rutas.
31
Captulo 4. El repositorio
Sin importar el protocolo que use para acceder a sus repositorios, siempre necesita crear al menos
un repositorio. Esto puede hacerse o bien con el cliente de lnea de comandos de Subversion o con
TortoiseSVN.
Si todava no ha creado un repositorio de Subversion, ahora es el momento de hacerlo.
32
El repositorio
Sugerencia
TortoiseSVN ya no ofrece la opcin de crear repositorios BDB, aunque an puede utilizar
el cliente de lnea de comandos para crearlos. Los repositorios FSFS son generalmente ms
sencillos de mantener, y tambin nos facilita el mantenimiento de TortoiseSVN debido a
los problemas de compatibilidad entre las diferentes versiones de BDB.
Future versions of TortoiseSVN will not support file:// access to BDB repositories due
to these compatibility issues, although it will of course always support this repository format
when accessed via a server through the svn://, http:// or https:// protocols. For
this reason, we strongly recommend that any new repository which must be accessed using
file:// protocol is created as FSFS.
Of course we also recommend that you don't use file:// access at all, apart from local
testing purposes. Using a server is more secure and more reliable for all but single-developer
use.
Aviso
Do not create or access a Berkeley DB repository on a network share. It cannot exist on a
remote file system. Not even if you have the network drive mapped to a drive letter. If you
attempt to use Berkeley DB on a network share, the results are unpredictable - you may see
mysterious errors right away, or it may be months before you discover that your repository
database is subtly corrupted.
33
El repositorio
En segundo lugar, no todos los protocolos de comparticin de ficheros de red soportan el bloqueo que
Subversion necesita, por lo que puede encontrar que su repositorio se corrompe. Puede que no ocurra al
principio, pero un da dos usuarios intentarn acceder al repositorio al mismo tiempo.
En tercer lugar, tambin debe establecer los permisos de los ficheros. Puede ser sencillo en una unidad
de red nativa de Windows, pero en SAMBA esto es particularmente dificil.
file:// access is intended for local, single-user access only, particularly testing and debugging. When
you want to share the repository you really need to set up a proper server, and it is not nearly as difficult
as you might think. Read Captulo 3, Preparando un servidor for guidelines on choosing and setting up
a server.
34
El repositorio
aparecen en el mismo servidor, pero son dos repositorios totalmente separados que permiten un desarrollo
independiente, y no hay confusin sobre los nmeros de compilacin.
Por supuesto, tiene libertad para ignorar estos patrones comunes. Puede crear cualquier variacin, la que
mejor le venga a usted o a su equipo. Recuerde que cualquiera que sea la que elija, no es una eleccin
inamovible. Puede reorganizar su repositorio en cualquier momento. Dado que las ramas y las etiquetas
son directorios normales, TortoiseSVN puede mover o renombrarlas como desee.
Cambiar de una disposicin a otra es slo una cuestin de ejecutar una serie de movimientos en el lado
del servidor; si no le gusta la forma en la que estn organizadas las cosas en el repositorio, slo tiene
que ir moviendo los directorios.
So if you haven't already created a basic folder structure inside your repository you should do that now.
There are two ways to achieve this. If you simply want to create a /trunk /tags /branches
structure, you can use the repository browser to create the three folders (in three separate commits). If
you want to create a deeper hierarchy then it is simpler to create a folder structure on disk first and import
it in a single commit, like this:
1. cree una nueva carpeta en su disco duro
2. cree la estructura de carpetas de primer nivel dentro de esa carpeta - no ponga ningn fichero all
todava!
3. importe esta estructura en el repositorio via click con el botn derecho en la carpeta y seleccionando
TortoiseSVN Importar.... Esto importar su carpeta temporal a la raz del repositorio para crear
la estructura bsica del repositorio.
Tenga en cuenta que el nombre de la carpeta que est importando no aparece en el repositorio, slo sus
contenidos. Por ejemplo, cree la siguiente estructura de carpetas:
C:\Temp\New\trunk
C:\Temp\New\branches
C:\Temp\New\tags
Importe C:\Temp\New en la raz del repositorio, que entonces contendr:
/trunk
/branches
/tags
35
El repositorio
para crear una copia del repositorio de forma segura. Entonces hacer una copia de seguridad de la copia.
La opcin --clean-logs no es necesaria, pero quita cualquier fichero de log redundante cuando hace
una copia de seguridad de un repositorio BDB; lo que puede ahorrar algo de espacio.
La herramienta svnadmin se instala automticamente cuando instala el cliente de lnea de comandos de
Subversion. Si est instalando las herramientas de lnea de comandos en un PC con Windows, la mejor
forma de hacerlo es descargar la versin con Windows installer. Est comprimido de forma ms eficiente
que la versin .zip, por lo que la descarga es menor, y se encarga de establecer las rutas por usted.
Puede descargar la ltima versin del cliente de lnea de comandos desde http://subversion.tigris.org/
servlets/ProjectDocumentList?folderID=91.
<a href="tsvn:https://tortoisesvn.tigris.org/svn/tortoisesvn/trunk">
</a>
Of course it would look even better if you included a suitable picture. You can use the TortoiseSVN logo
[http://tortoisesvn.tigris.org/images/TortoiseCheckout.png] or you can provide your own image.
36
El repositorio
<a href="tsvn:https://tortoisesvn.tigris.org/svn/tortoisesvn/trunk">
<img src=TortoiseCheckout.png></a>
37
5.1. Empezando
5.1.1. Iconos sobreimpresionados
38
Sugerencia
Some commands which are very rarely used are only available in the extended context
menu. To bring up the extended context menu, hold down the Shift key when you rightclick.
En algunos casos puede ver varias entradas de TortoiseSVN. Esto no es un error!
39
Figura 5.3. Men archivo del explorador para un acceso directo en una carpeta
versionada
Este ejemplo es para un acceso directo sin versionar dentro de una carpeta versionada, y en el men de
archivo del Explorador hay tres entradas para TortoiseSVN. Una es para la carpeta, otra para el acceso
directo en s mismo, y otra para el objeto al que apunta el acceso directo. Para ayudarle a distinguir entre
ellos, los iconos tienen un indicador en la esquina inferior derecha para mostrarle que la entrada del men
es para un fichero, una carpeta, un acceso directo o para mltiples tems seleccionados.
Si est utilizando Windows 2000 ver que los mens contextuales se muestran slo como texto, sin
los iconos de men mostrados arriba. Sabemos que esto funcionaba en las versiones anteriores, pero
Microsoft ha cambiado la forma en la que los iconos de men funcionan en Vista, y eso nos ha forzado
a utilizar una forma para mostrarlos que desafortunadamente no funciona en Windows 2000.
40
Figura 5.4. Men de arrastre con el botn derecho para un directorio bajo el
control de versiones
Otros comandos estn disponibles como manejadores de arrastre, cuando arrastra con el botn derecho
ficheros o carpetas a un nuevo destino dentro de copias de trabajo, o cuando arrastra con el botn derecho
un fichero o una carpeta no versionados a un directorio que est bajo el control de versiones.
5.1.5. Autentificacin
If the repository that you are trying to access is password protected, an authentication Dialog will show up.
41
42
La carpeta importada no se convierte en una copia de trabajo. Tiene que hacer una obtencin para
copiar los ficheros de nuevo desde el servidor.
It is easy to import to the wrong folder level in the repository.
Por estas razones le recomendamos que no utilice el comando importar en absoluto, y en cambio siga
el mtodo de dos pasos descrito en Seccin 5.2.2, Importar en el sitio. Pero dado que ya est aqu, as
es como funciona el comando importar bsico ...
Antes de importar su proyecto en un repositorio debera:
1. Quitar todos los ficheros que no se necesitan para construir el proyecto (ficheros temporales, ficheros
que se generan por un compilador como los *.obj, binarios compilados, ...)
2. Organize the files in folders and sub-folders. Although it is possible to rename/move files later it is
highly recommended to get your project's structure straight before importing!
Ahora seleccione la carpeta superior de la estructura de directorios del proyecto en el explorador de
Windows, y haga click con el botn derecho para abrir el men contextual. Seleccione el comando
TortoiseSVN Importar... y aparecer un cuadro de dilogo:
C:\Proyectos\Widget\source
C:\Proyectos\Widget\doc
C:\Proyectos\Widget\images
e importa C:\Proyectos\Widget en http://mydomain.com/svn/trunk entonces puede
que se sorprenda al encontrar que sus subdirectorios van directos a trunk en vez de estar
en un subdirectorio Widget. Necesita especificar el subdirectorio como parte de la URL,
http://mydomain.com/svn/trunk/Widget-X. Tenga en cuenta que el comando importar
automticamente crea los subdirectorios en el repositorio si no existen.
43
44
de repositorios diferentes. Si desea que todos los usuarios tengan la misma estructura, puede definir
propiedades svn:externals.
Let's say you check out a working copy of /project1 to D:\dev\project1. Select the folder D:
\dev\project1, right click and choose Windows Menu Properties from the context menu. The
Properties Dialog comes up. Then go to the Subversion tab. There, you can set properties. Click Add....
Select the svn:externals property from the combobox and write in the edit box the repository URL
in the format name url or if you want to specify a particular revision, name -rREV url You can
add multiple external projects, 1 per line. Note that URLs must be properly escaped or they will not work.
For example you must replace each space with %20. Note that it is not possible to use folder names with
spaces in them. Suppose that you have set these properties on D:\dev\project1:
sounds
http://sounds.red-bean.com/repos
quick_graphs http://graphics.red-bean.com/repos/fast%20graphics
skins/toolkit -r21 http://svn.red-bean.com/repos/skin-maker
Now click Set and commit your changes. When you (or any other user) update your working copy,
Subversion will create a sub-folder D:\dev\project1\sounds and checkout the sounds project,
another sub-folder D:\dev\project1\quick graphs containing the graphics project, and finally
a nested sub-folder D:\dev\project1\skins\toolkit containing revision 21 of the skin-maker
project.
Sugerencia
You should strongly consider using explicit revision numbers in all of your externals
definitions, as described above. Doing so means that you get to decide when to pull down
a different snapshot of external information, and exactly which snapshot to pull. Besides
the common sense aspect of not being surprised by changes to third-party repositories that
you might not have any control over, using explicit revision numbers also means that as
you backdate your working copy to a previous revision, your externals definitions will also
revert to the way they looked in that previous revision, which in turn means that the external
working copies will be updated to match they way they looked back when your repository
was at that previous revision. For software projects, this could be the difference between a
successful and a failed build of an older snapshot of your complex code base.
Si los proyectos externos estn en el mismo repositorio, cualquier cambio que haga all se incluir en la
lista de confirmacin cuando confirme su proyecto principal.
Si los proyectos externos estn en repositorios diferentes, cualquier cambio que haga en el proyecto
externo se notificar cuando cnofirme el proyecto principal, pero tendr que confirmar esos cambios
externos de forma separada.
Si utiliza URLs absolutas en las definiciones svn:externals y tiene que relocalizar su copia de
trabajo (por ejemplo si la URL de su repositorio cambia), entonces sus externos no cambiarn y puede
que no funcionen ms.
Para evitar dichos problemas, los clientes de Subversion versin 1.5 y superior soportan URLs externas
relativas. Hay cuatro formas para especificar una URL relativa. En los siguientes ejemplos, asumimos
que tenemos dos repositorios: uno en http://example.com/svn/repos-1 y otro en http://
example.com/svn/repos-2. Tenemos una copia de trabajo de http://example.com/svn/
repos-1/project/trunk en C:\Working y la propiedad svn:externals est establecida en
trunk.
Relativa a la carpeta padre
Estas URLs siempre comienzan con la cadena ../. Por ejemplo:
45
../../widgets/foo
common/foo-widget
^/widgets/foo
common/foo-widget
^/../repos-2/hammers/claw
common/claw-hammer
//example.com/svn/repos-1/widgets/foo
common/foo-widget
/svn/repos-1/widgets/foo
common/foo-widget
46
47
In the repository browser, Right click on the checked out folder, then use TortoiseSVN RepoBrowser to bring up the repository browser. Find the sub-folder you would like to add to your working
copy, then use Context menu Update item to revision... That menu will only be visible if the
selected item does not exist yet in your working copy, but the parent item does exist.
En el dilogo Comprobar modificaciones, primero haga click en el botn Comprobar repositorio.
El dilogo mostrar como aadido remotamente todos los ficheros y carpetas que estn en el
repositorio pero que an no se han obtenido. Haga click con el botn derecho sobre la carpeta o carpetas
que desea aadir a su copia de trabajo, y luego utilice Men contextual Actualizar.
This feature is very useful when you only want to checkout parts of a large tree, but you want
the convenience of updating a single working copy. Suppose you have a large tree which has subfolders Project01 to Project99, and you only want to checkout Project03, Project25 and
Project76/SubProj. Use these steps:
1. Checkout the parent folder with depth Only this item You now have an empty top level folder.
2. Select the new folder and use TortoiseSVN Repo browser to display the repository content.
3. Right click on Project03 and Context menu Update item to revision.... Keep the default
settings and click on OK. You now have that folder fully populated.
Repeat the same process for Project25.
4. Navigate to Project76/SubProj and do the same. This time note that the Project76 folder
has no content except for SubProj, which itself is fully populated. Subversion has created the
intermediate folders for you without populating them.
Importante
If Omit externals is checked, or if you wish to increase the depth value, you will have
to perform updates to your working copy using TortoiseSVN Update to Revision...
instead of TortoiseSVN Update. The standard update will include all externals and
keep the existing depth.
It is recommended that you check out only the trunk part of the directory tree, or lower. If you specify
the parent path of the directory tree in the URL then you might end up with a full hard disk since you
will get a copy of the entire repository tree including every branch and tag of your project!
48
Exportando
A veces puede querer crear una copia local sin ninguno de esos directorios .svn, por
ejemplo para crear un fichero comprimido de sus fuentes. Lea Seccin 5.25, Exportando
una copia de trabajo de Subversion para averiguar cmo hacerlo.
49
Los tems que han sido cambiados a una ruta de repositorio diferente tambin se indican utilizando un
marcador (s). Puede haber cambiado algo mientras trabaja en una rama y habrsele olvidado volver a
cambiarlo al tronco. Este es su signo de advertencia!
Arrastrar y soltar
Puede arrastrar ficheros hasta el dilogo de confirmacin desde cualquier otro lugar,
siempre y cuando las copias de trabajo sean del mismo repositorio. Por ejemplo, puede tener
50
una copia de trabajo enorme con diferentes ventanas del explorador abiertas en carpetas
distantes de la jerarqua. Si quiere evitar confirmar desde la carpeta ms alta (lo que implica
una lenta operacin de bsqueda de cambios) puede abrir el dilogo de confirmar para
una carpeta y arrastrar desde las otras ventanas para incluir ficheros dentro de la misma
confirmacin atmica.
Puede arrastrar ficheros no versionados que residan dentro de una copia de trabajo al dilogo
de confirmacin, y automticamente sern SVN aadidos.
51
52
53
54
you should use TortoiseSVN Update to Revision... instead. This allows you to update your working
copy to a specific revision, not only to the most recent one. Suppose your working copy is at revision
100, but you want it to reflect the state which it had in revision 50 - then simply update to revision 50.
In the same dialog you can also choose the depth at which to update the current folder. The terms used
are described in Seccin 5.3.1, Profundidad de obtencin. The default depth is Working copy, which
preserves the existing depth setting. You can also choose whether to ignore any external projects in the
update (i.e. projects referenced using svn:externals).
Atencin
If you update a file or folder to a specific revision, you should not make changes to those
files. You will get out of date error messages when you try to commit them! If you want
to undo changes to a file and start afresh from an earlier revision, you can rollback to a
previous revision from the revision log dialog. Take a look at Seccin B.4, Roll back
(Undo) revisions in the repository for further instructions, and alternative methods.
Actualizar a la revisin puede ser til a veces para ver cmo estaba su proyecto en un momento anterior
en su historia. Pero en general, actualizar ficheros individuales a una revisin anterior no es una buena
idea, ya que deja su copia de trabajo en un estado inconsistente. Si el fichero que est actualizando ha
cambiado de nombre, incluso puede encontrar que ese fichero ha desaparecido de su copia de trabajo
porque en esa revisin no haba ningn fichero con ese nombre. Si simplemente desea una copia local de
una versin antigua de un fichero, es mejor utilizar para ese fichero el comando Men Contextual
Grabar la revisin como... desde el dilogo de registro.
Mltiples ficheros/carpetas
Si selecciona mltiples ficheros y carpetas en el explorador y luego selecciona Actualizar,
todos esos ficheros/carpetas se actualizan uno a uno. TortoiseSVN se asegura de que todos
los ficheros/carpetas del mismo repositorio se actualicen exactamente a la misma revisin!
Incluso si entre esas actualizaciones ocurri alguna confirmacin.
55
que Subversion no sabe nada de su proyecto, delega la resolucin de los conflictos en los desarrolladores.
Cuando se le informa de un conficto, debera abrir el fichero en cuestin, y buscar lneas que empiecen
con el texto <<<<<<<. El rea conflictiva se marca as:
<<<<<<< nombre-del-fichero
sus cambios
=======
cdigo fusionado del repositorio
>>>>>>> revisin
Adems, para cada fichero en conflicto Subversion deja tres ficheros adicionales en su directorio:
nombre-del-fichero.ext.mine
Este es su fichero tal y como estaba en su copia de trabajo antes de que actualizara su copia de trabajo
- esto es, sin marcadores de conflicto. Este fichero tiene sus ltimos cambios en l y nada ms.
nombre-del-fichero.ext.rREV-ANTIGUA
Este es el fichero que era la revisin BASE antes de que actualizara su copia de trabajo. Esto es, el
fichero que obtuvo antes de empezar a hacer sus ltimos cambios.
nombre-del-fichero.ext.rREV-NUEVA
Este es el fichero que su cliente de Subversion acaba de recibir desde el servidor del que actualiz
su copia de trabajo. Este fichero corresponde a la revisin HEAD del repositorio.
Puede o bien lanzar una herramienta externa de fusiones / editor de conflictos con el men contextual
TortoiseSVN Editar Conflictos o bien utilizar otro editor manualmente para resolver el conflicto.
Debe decidir cmo tiene que quedar el cdigo, hacer los cambios necesarios, y grabar el fichero.
Despus, ejecute el comando TortoiseSVN Resolver y confirme sus modificaciones al repositorio.
Tome nota de que el comando Resolver realmente no resuelve el conflicto. Simplemente elimina los
ficheros filename.ext.mine y filename.ext.r*, dejndole confirmar sus cambios.
Si tiene conflictos con ficheros binarios, Subversion no intentar mezclar dichos ficheros por si mismo.
El fichero local se mantendr sin cambios (exactamente tal y como lo haba cambiado usted) y obtendr
unos ficheros nombrefichero.ext.r*. Si desea descartar sus cambios y quedarse con la versin
del repositorio, utilice el comando Revertir. Si desea mantener su versin y sobreescribir la versin del
repositorio, utilice el comando Resuelto y luego confirme su versin.
Puede utilizar el comando Resuelto para mltiples ficheros si pulsa con el botn derecho en la carpeta
padre y selecciona TortoiseSVN Resuelto... Esto mostrar un dilogo con todos los ficheros en
conflicto dentro de esa carpeta, y le permitir seleccionar cules marcar como resueltos.
56
Una copia de trabajo recin obtenida tiene una marca verde como sobreimpresin. Esto significa que el
estado de Subversion es normal.
Si durante una actualizacin ocurre un conflicto, el icono cambia a un signo de exclamacin amarillo.
Este icono le muestra que algunos ficheros o carpetas dentro de la carpeta actual se han marcado para ser
eliminados del control de versiones, o bien que falta un fichero que est bajo el control de versiones
dentro de una carpeta.
57
El signo ms le indica que el fichero o carpeta est programado para ser aadido al control de versiones.
La barra le indica que el fichero o carpeta est ignorado para los asuntos de control de versiones. Esta
sobreimpresin es opcional.
Este icono muestra los archivos y carpetas que no estn bajo el control de versiones pero tampoco han
sido ignorados. Esta sobreimpresin es opcional.
De hecho, puede que se encuentre con que no todos estos iconos se utilizan en su sistema. Esto se debe
a que el nmero de sobreimpresiones permitidas por Windows est muy limitado y si est utilizando
tambin una versin antigua de TrotoiseCVS, entonces no hay suficientes huecos de sobreimpresin
disponibles. TortoiseSVN intenta ser un Buen Ciudadano (TM) y limita su uso de sobreimpresiones
para darles una oportunidad al resto de aplicaciones.
Ahora que hay ms clilentes Tortoise por ah (TortoiseCVS, TortoiseHG, ...) el lmite de iconos se ha
convertido en un problema real. Para evitarlo, el proyecto TortoiseSVN ha introducido un conjunto
compartido comn de iconos, cargado como una DLL, que puede ser usado por todos los clientes Tortoise.
Compruebe con el proveedor de su cliente para ver si esto ya se ha integrado :-)
Si desea una descripcin de cmo se corresponden las sobreimpresiones con los estados de Subversion
y otros detalles tcnicos, lea Seccin F.1, Iconos sobreimpresionados.
Importante
Las columnas adicionales en el Explorador de Windows no estn disponibles en Vista, dado
que Microsoft decidi no habilitar tales columnas para todos los ficheros, sino nicamente
para tipos de ficheros especficos.
Sugerencia
Si desea que la organizacin actual se muestre en todas sus copias de trabajo, puede que
desee convertirla en su vista por defecto.
58
59
Desde el men contextual del dilogo puede mostrar un resumen de los cambios. Compruebe los cambios
locales que usted ha hecho utilizando Men Contextual Comparar con Base. Compruebe los
cambios en el repositorio hechos por los dems utilizando Men Contextual Mostrar Diferencias
como Diff Unificado.
You can also revert changes in individual files. If you have deleted a file accidentally, it will show up
as Missing and you can use Revert to recover it.
Los ficheros sin versionar y los ignorados se pueden enviar a la papelera de reciclaje desde aqu utilizando
Men Contextual Eliminar. Si quiere eliminar los ficheros de forma definitiva (sin utilizar la papelera
de reciclaje) pulse la tecla Maysculas mientras hace click en Eliminar.
Si desea examinar un fichero ms en detalle, puede arrastrarlo desde aqu a otra aplicacin, tal como un
editor de textos o un IDE.
Las columnas son personalizables. Si hace click con el botn derecho en cualquier cabecera de columna
ver un men contextual que le permite seleccionar qu columnas se muestran. Tambin puede cambiar
el ancho de la columna utilizando el manejador de arrastre que aparece cuando mueve el cursor sobre el
lmite de una columna. Estas personalizaciones se mantienen, por lo que ver los mismos encabezados
la prxima vez.
If you are working on several unrelated tasks at once, you can also group files together into changelists.
Read Seccin 5.4.2, Listas de cambios for more information.
En la parte inferior del dilogo puede ver un sumario del rango de revisiones del repositorio en uso en su
copia de trabajo. Estas son revisiones confirmadas, no las revisiones actualizadas; representan el rango
de revisiones donde estos ficheros fueron confirmados por ltima vez, no las revisiones a las que se han
actualizado. Tenga en cuenta que el rango de revisiones mostrado se aplica slo a los tems mostrados,
no a la copia de trabajo completa. Si quiere ver esa informacin para la copia de trabajo completa debe
seleccionar la casilla Mostrar ficheros no modificados.
Sugerencia
Si quiere una vista llana de su copia de trabajo, por ejemplo mostrando todos los ficheros y
carpetas en todos los niveles de su jerarqua de carpetas, entonces el dilogo Comprobar
modificaciones es la forma ms sencilla de conseguirlo. Smplemente seleccione la casilla
Mostrar archivos no modificados para ver todos los ficheros de su copia de trabajo.
60
Sugerencia
Puede mostrar diferencias incluso cuando no est dentro de una copia de trabajo, o cuando
tiene mltiples versiones del fichero alrededor:
Seleecione los dos ficheros que desea comparar en el explorador (por ejemplo, utilizando
la tecla Ctrl y el ratn) y seleccione Diferenciar del men contextual de TortoiseSVN. El
fichero que haya pulsado en ltimo lugar (el que tiene el foco, es decir, el rectngulo con
puntos) ser tomado como ms nuevo.
Importante
The changelist feature in TortoiseSVN is only available in Windows XP and later, as it
depends on a shell capability which is not present in Windows 2000. Sorry, but Win2K is
really quite old now, so please don't complain.
Puede ver las listas de cambios en varios lugares, pero los ms importantes son el dilogo de confirmacin
y el de comprobar modificaciones. Empecemos en el dilogo comprobar modificaciones despus de que
haya estado trabajando en varias caractersticas y varios ficheros. La primera vez que abra el dilogo,
todos los ficheros modificados se muestran juntos. Supongamos que ahora quiere organizar las cosas y
agrupar esos ficheros segn la caracterstica.
Select one or more files and use Context Menu Move to changelist to add an item to a changelist.
Initially there will be no changelists, so the first time you do this you will create a new changelist. Give
it name which describes what you are using it for, and click OK. The dialog will now change to show
groups of items.
Una vez que haya creado una lista de cambios puede arrastrar y soltar tems en ella, tanto desde otra lista
de cambios como desde el Explorador de Windows. Arrastrar desde el Explorador puede ser til ya que
le permite aadir tems a una lista de cambios antes de que el fichero sea modificado. Puede hacer eso
desde el dilogo comprobar modificaciones, pero slo si muestra todos los ficheros no modificados.
61
62
Sugerencia
Changelists are purely a local client feature. Creating and removing changelists will not
affect the repository, nor anyone else's working copy. They are simply a convenient way
for you to organise your files.
63
Si una revisin modific un fichero o un directorio, se muestra el icono modificado en la primera columna.
If a revision added a file or directory, the added icon is shown in the second column.
64
If a revision deleted a file or directory, the deleted icon is shown in the third column.
Figura 5.16. El panel superior del dilogo de Registro de revisiones con el men
contextual
El panel superior del dilogo de Registro tiene un men contextual que le permite acceder a mucha ms
informacin. Algunas de las entradas de este men aparecen slo cuando se muestra el registro de un
fichero, y algunas slo cuando se muestra el registro de una carpeta.
Comparar las revisiones seleccionadas con su copia de trabajo. La Herramienta de Diferencias por
defecto es TortoiseMerge que se proporciona con TortoiseSVN. Si el dilogo de registro es de una
carpeta, esto mostrar una lista de sus ficheros cambiados, y le permitir revisar los cambios hechos
a cada fichero individualmente.
Ver los cambios hechos en la revisin seleccionada como fichero de diff unificado (formato de parche
GNU). Esto le muestra slo las diferencias con unas pocas lneas de contexto. Es ms dificil de leer que
una comparacin visual de ficheros, pero le mostrar todos los cambios juntos en un formato compacto.
Compara la revisin seleccionada con la revisin anterior. Esto funciona de forma similar a comparar
con su copia de trabajo.
Blame the selected revision, and the file in your working BASE and compare the blame reports using
a visual diff tool. Read Seccin 5.22.2, Autora de las diferencias for more detail. (files only).
Blame the selected revision, and the previous revision, and compare the results using a visual diff tool.
(folders only).
Save the selected revision to a file so you have an older version of that file. (files only).
Open the selected file, either with the default viewer for that file type, or with a program you choose.
(files only).
Muestra la autora del fichero hasta la revisin seleccionada (slo para ficheros).
65
Open the repository browser to examine the selected file or folder in the repository as it was at the
selected revision.
Crear una rama/etiqueta desde una revisin seleccionada. Esto es til por ejemlpo si se le olvid crear
una etiqueta y ya ha confirmado algunos cambios que no se supone que tengan que ir en esa versin.
Actualizar su copia de trabajo a la revisin seleccionada. til si quiere hacer que su copia de trabajo
refleje un momento en el pasado. Es mejor actualizar un directorio completo en su copia de trabajo, no
slo un fichero, ya que si no su copia de trabajo ser inconsistente y no podr confirmar ningn cambio.
Revert changes from which were made in the selected revision. The changes are reverted in your
working copy so this operation does not affect the repository at all! Note that this will undo the changes
made in that revision only. It does not replace your working copy with the entire file at the earlier
revision. This is very useful for undoing an earlier change when other unrelated changes have been
made since. If you have made local changes, this command will merge these changes into your working
copy.
Revert to an earlier revision. If you have made several changes, and then decide that you really want
to go back to how things were in revision N, this is the command you need. Again, the changes are
reverted in your working copy so this operation does not affect the repository until you commit the
changes. Note that this will undo all changes made after the selected revision, replacing the file/folder
with the earlier version. If you have made local changes, this command will merge these changes into
your working copy.
Fusiona en una copia de trabajo diferente la(s) revision(es) seleccionada(s). Un dilogo de seleccin
de carpeta le permitir elegir la copia de trabajo donde desea fusionar, pero despus de eso no hay
dilogo de confirmacin, ni oportunidad de probar la fusin sin ejecutarla realmente. Es una buena
idea fusionar en una copia de trabajo sin cambios, y as poder revertir los cambios si no funcionan!
Esta es una funcionalidad til si desea fusionar las revisiones seleccionadas de una rama a otra.
Hace una obtencin nueva de la carpeta seleccionada en la revisin seleccionada. Esto muestra un
dilogo para que confirme la URL y la revisin, y seleccione un lugar para la obtencin.
Exporta la carpeta o el fichero seleccionado en la revisin seleccionada. Esto muestra un dilogo para
que confirme la URL y la revisin, y para que seleccione un lugar para la exportacin.
Editar el mensaje de registro o el autor adjunto a una confirmacin anterior. Lea Seccin 5.9.6,
Cambiando el mensaje de registro y el autor para averiguar cmo funciona esto.
Copia los detalles de registro de las revisiones seleccionadas al portapapeles. Esto copia el nmero de
revisin, el autor, la fecha, el mensaje de registro y la lista de tems cambiados para cada revisin.
Buscar en los mensajes de registro el texto que desee. Esto busca en los mensajes de registro que
ha introducido, y tambin en los sumarios de accin creados por Subversion (mostrados en el panel
inferior). La bsqueda no distingue maysculas y minsculas.
Figura 5.17. Men contextual del panel superior para 2 revisiones seleccionadas
Si selecciona dos revisiones a la vez (utilizando el modificador habitual Ctrl), el men contextual cambia
y le ofrece menos opciones:
66
Compara las dos revisiones seleccionadas utilizando una herramienta de diferencias visual. La
herramienta de diferencias por defecto es TortoiseMerge que se proporciona con TortoiseSVN.
Si selecciona esta opcin para una carpeta, aparecer un dilogo posterior mostrando los ficheros
cambiados y ofrecindole ms opciones de diferenciacin. Lea ms sobre el dilogo Comparar
Revisiones en Seccin 5.10.3, Comparando carpetas.
Blame the two revisions and compare the blame reports using a visual difference tool. Read
Seccin 5.22.2, Autora de las diferencias for more detail.
Ver las diferencias entre las dos revisiones seleccionadas como un fichero diff unificado. Esto funciona
para ficheros y carpetas.
Copy log messages to clipboard as described above.
Buscar mensajes de registro como se describe ms arriba.
If you select two or more revisions (using the usual Ctrl or Shift modifiers), the context menu will
include an entry to Revert all changes which were made in the selected revisions. This is the easiest way
to rollback a group of revisions in one go.
Tambin puede elegir fusionar en otra copia de trabajo las revisiones seleccionadas, como se describi
ms arriba.
Figura 5.18. El panel inferior del dilogo de Registro con el men contextual
El panel inferior del dilogo Registro tambin tiene un men contextual que le permite
Show changes made in the selected revision for the selected file. This context menu is only available
for files shown as modified.
Blame the selected revision and the previous revision for the selected file, and compare the blame
reports using a visual diff tool. Read Seccin 5.22.2, Autora de las diferencias for more detail.
Abrir el fichero seleccionado, bien con el visor por defecto para ese tipo de fichero, o bien con el
programa que elija.
Revertir los cambios hechos al fichero seleccionado en esa revisin.
Ver las propiedades de Subversion del tem seleccionado.
Mostrar el registro de revisiones para ese fichero seleccionado.
Grabar la revisin seleccionada a un fichero, para que pueda tener una versin antigua de ese fichero.
Sugerencia
Puede haberse dado cuenta de que a veces nos referimos a cambios y otras veces a
diferencias. Cul es la diferencia?
67
68
nueva caracterstica en una rama y luego la fusiona en el tronco, la caracterstica desarrollada aparecer
en el historial de registro del tronco como una nica confirmacin para la fusin, incluso aunque haya
habido 1000 confirmaciones durante el desarrollo de la rama.
69
To make this work, you must set up a pre-revprop-change hook. Please refer to the chapter on Hook
Scripts [http://svnbook.red-bean.com/en/1.4/svn.reposadmin.create.html#svn.reposadmin.create.hooks]
in the Subversion Book for details about how to do that. Read Seccin 4.3, Scripts gancho to find some
further notes on implementing hooks on a Windows machine.
Una vez que haya preparado su servidor con los ganchos necesarios, puede cambiar tanto el autor como
el mensaje de registro de cualquier revisin, utilizando el men contextual del panel superior del dilogo
Registro.
Aviso
Dado que las propiedades de revisin de Subversion no se versionan, al hacer
modificaciones a estas propiedades (por ejemplo, la propiedad del mensaje svn:log) se
sobreescribir el valor anterior de esa propiedad para siempre.
70
71
Where there are a few major authors and many minor contributors, the number of tiny segments can make
the graph more difficult to read. The slider at the bottom allows you to set a threshold (as a percentage
of total commits) below which any activity is grouped into an Others category.
72
73
74
75
Hay muchas herramientas disponibles para diferenciar ficheros de texto, incluyendo nuestro propio
TortoiseMerge, pero a veces nos encontramos en la situacin de querer ver tambin cmo ha cambiado
un fichero de imagen. Por eso es por lo que hemos creado TortoiseIDiff.
76
Si las herramientas que le proporcionamos no son lo que necesita, pruebe alguno de los muchos programas
de cdigo abierto o comerciales disponibles. Cada uno tiene sus propios favoritos, y esta lista por supuesto
no est completa, pero aqu hay algunas que debera considerar:
WinMerge
WinMerge [http://winmerge.sourceforge.net/] es un muy buen visor de diferencias y herramienta de
fusin de cdigo abierto, que tambin puede manejar directorios.
Perforce Merge
Perforce es un RCS comercial, pero puede descargar la herramienta de diferencias/fusiones
gratuitamente. Obtenga ms informacin en Perforce [http://www.perforce.com/perforce/products/
merge.html].
KDiff3
KDiff3 es una herramienta de diferencias gratuita que tambin maneja directorios. Puede descargarla
desde aqu [http://kdiff3.sf.net/].
ExamDiff
ExamDiff Standard es gratuito. Puede manejar ficheros pero no directorios. ExamDiff Pro es
shareware y aade un nmero de ventajas que incluyen diferenciacin de directorios y capacidades
de edicin. En ambos casos, la versin 3.2 y las siguientes pueden manejar tambin unicode. Puede
descargarlas desde PrestoSoft [http://www.prestosoft.com/].
Beyond Compare
Similar a ExamDiff Pro, esta es una herramienta shareware de diferencias que puede
manejar diferenciacin de directorios y unicode. Descrgela desde Scooter Software [http://
www.scootersoftware.com/].
Araxis Merge
Araxis Merge is a useful commercial tool for diff and merging both files and folders. It does threeway comparison in merges and has synchronization links to use if you've changed the order of
functions. Download it from Araxis [http://www.araxis.com/merge/index.html].
SciTE
Este editor de texto incluye sintaxis coloreada para ficheros diff unificados, hacindolos mucho ms
fciles de leer. Descrgelo desde Scintilla [http://www.scintilla.org/SciTEDownload.html].
Notepad2
Notepad2 est diseado como un reemplazo del programa Bloc de Notas estndar de Windows, y
se basa en el control de edicin de cdigo abierto Scintilla. Adems de ser bueno para ver diffs
unificados, es mucho mejor que el bloc de notas de Windows para la mayora de trabajo. Descrgelo
gratuitamente aqu [http://www.flos-freeware.ch/notepad2.html].
Lea Seccin 5.29.4, Configuracin de programas externos para ms informacin sobre cmo preparar
TortoiseSVN para utilizar estas herramientas.
77
Si ha creado nuevos ficheros y/o directorios durante su proceso de desarrollo, necesitar aadirlos tambin
al control de cdigo. Seleccione los ficheros y/o directorios y utilice TortoiseSVN Aadir.
Despus de que aada los ficheros o directorios al control de cdigo, el fichero aparece con una
sobreimpresin de icono aadido que significa que primero debe confirmar su copia de trabajo para
que esos ficheros y directorios estn disponibles para otros desarrolladores. Aadir un fichero/directorio
no afecta al repositorio!
Aadir muchos
You can also use the Add command on already versioned folders. In that case, the add
dialog will show you all unversioned files inside that versioned folder. This helps if you
have many new files and need to add them all at once.
Para aadir ficheros desde fuera de su copia de trabajo puede usar el manejador de arrastrar-y-soltar:
1. seleccione los ficheros que desea aadir
2. arrstrelos con el botn derecho a su nuevo destino dentro de la copia de trabajo
3. suelte el botn derecho del ratn
4. seleccione Men contextual SVN Aadir ficheros a esta Copia de Trabajo. En ese momento
los ficheros se copiarn a la copia de trabajo y se aadirn al control de versiones.
Tambin puede aadir ficheros dentro de una copia de trabajo simplemente arrastrndolos con el botn
izquierdo y soltndolos en el dilogo de confirmacin.
If you add a file or folder by mistake, you can undo the addition before you commit using TortoiseSVN
Undo add....
78
Figura 5.26. Men de arrastre con el botn derecho para un directorio bajo el
control de versiones
Ahora puede copiar contenido existente versionado a un nuevo lugar, posiblemente renombrndolo al
mismo tiempo.
You can copy files and folders from your working copy to another location in the repository using
TortoiseSVN Branch/Tag. Refer to Seccin 5.18.1, Crando una rama o etiqueta to find out more.
You can locate an older version of a file or folder in the log dialog and copy it to a new location in the
repository directly from the log dialog using Context menu Create branch/tag from revision. Refer
to Seccin 5.9.3, Obteniendo informacin adicional to find out more.
You can also use the repository browser to locate content you want, and copy it into your working copy
directly from the repository, or copy between two locations within the repository. Refer to Seccin 5.23,
El navegador de repositorios to find out more.
79
80
El patrn de ignorados de Subversion hace uso de la expansin de comodines en los nombres de los
ficheros, una tcnica que originariamente se utilizaba en Unix para especificar ficheros utilizando metacaracteres como son los comodines. Los siguientes caracteres tienen un significado especial:
*
Concuerda con cualquier cadena de caracteres, incluyendo la cadena vaca (sin caracteres).
?
Concuerda con un nico cracter cualquiera.
[...]
Concuerda con cualquiera de los caracteres includos entre los corchetes. Dentro de los corchetes,
un par de caracteres separados por - concuerda con cualquier caracter existente entre los dos en el
orden lexicogrfico. Por ejemplo, [AGm-p] concuerda con cualquiera de estos: A, G, m, n, o o p.
Subversion utiliza la / como el delimitador de ruta en todos los nombres de ruta internos, y todas las
concordancias de patrones se hacen contra este estilo de nombres de rutas. Si desea utilizar un delimitador
de ruta en su patrn de ignorado, asegrese de utilizar /, y no la barra invertida de Windows.
La concordancia de patrones distingue entre maysculas y minsculas, lo que puede causar problemas en
Windows. Puede forzar que no se distingan a lo bruto, emparejando los caracteres; es decir, por ejemplo,
para ignorar *.tmp sin tener en cuenta las maysculas y minsculas, puede utilizar un patrn como *.
[Tt][Mm][Pp].
Subversion utiliza esta concordancia de patrones contra cada ruta que se le presenta para la accin.
Estas rutas son generalmente relativas al directorio contra el que se realiza la importacin, aadido,
confirmacin, etc. El patrn de concordancia por lo tanto tiene que tener el cuenta el hecho de que puede
o no haber partes de ruta antes del nombre del fichero.
If directory names are present in a path, the matching algorithm will not trim them off, so pattern Fred.*
will match Fred.c but not subdir/Fred.c. This is significant if you add a folder which contains
some files that you want to be ignored, because those filenames will be preceded with the folder name
when Subversion compares them with the ignore pattern.
El carcter / no se trata de ninguna forma especial para los propsitos de concordancia de patrones, por lo
que el patrn abc*xyz concordara con abcdxyz pero tambin con abcdir/subdir/anything/
morexyz.
To ignore all CVS folders you should either specify a pattern of *CVS or better, the pair CVS */CVS.
The first option works, but would also exclude something called ThisIsNotCVS. Using */CVS alone
will not work on an immediate child CVS folder, and CVS alone will not work on sub-folders.
Si desea una definicin oficial de la expansin de comodines en los nombres de ficheros,
puede encontrarla en las especificaciones de la IEEE para el lenguaje de comandos del shell
Notacin de Patrones de Concordancia [http://www.opengroup.org/onlinepubs/009695399/utilities/
xcu_chap02.html#tag_02_13].
81
82
la carpeta que falta con la ltima versin del repositorio, y luego podr eliminarla de la forma correcta,
utilizando TortoiseSVN Eliminar.
83
84
85
Las columnas en este dilogo pueden ser personalizadas de la misma forma que las columnas en el dilogo
Comprobar modificaciones. Para ms detalles, lea Seccin 5.7.3, Estado local y remoto.
Revert is Slow
When you revert changes you may find that the operation takes a lot longer than you expect.
This is because the modified version of the file is sent to the recycle bin, so you can retrieve
your changes if you reverted by mistake. However, if your recycle bin is full, Windows takes
a long time to find a place to put the file. The solution is simple: either empty the recycle
bin or deactivate the Use recycle bin when reverting box in TortoiseSVN's settings.
5.16. Limpieza
Si un comando de Subversion no puede completarse de forma correcta, quizs por problemas en el
servidor, su copia de trabajo puede quedarse en un estado inconsistente. En ese caso deber utilizar
TortoiseSVN Limpiar en la carpeta. Es una buena idea hacerlo en la rama superior de la copia de
trabajo.
Cleanup has another useful side effect. If a file date changes but its content doesn't, Subversion cannot
tell whether it has really changed except by doing a byte-by-byte comparison with the pristine copy. If
you have a lot of files in this state it makes acquiring status very slow, which will make many dialogs
slow to respond. Executing a Cleanup on your working copy will repair these broken timestamps and
restore status checks to full speed.
86
87
5.17.1.1. svn:keywords
Subversion soporta expansin de palabras clave similar a CVS, lo que puede utilizarse para introducir
el nombre del fichero y la informacin de la revisin dentro del propio fichero. Las palabras clave
actualmente soportadas son:
$Date$
Fecha de la ltima confirmacin conocida. Esto se basa en la informacin obtenida cuando actualiza
su copia de trabajo. No se contacta con el repositorio para buscar cambios ms recientes.
$Revision$
Revisin de la ltima confirmacin conocida.
$Author$
Autor que hizo la ltima confirmacin conocida.
$HeadURL$
La URL completa de este fichero en el repositorio.
$Id$
Una combinacin comprimida de las cuatro palabras clave anteriores.
To find out how to use these keywords, look at the svn:keywords section [http://svnbook.red-bean.com/
en/1.4/svn.advanced.props.special.keywords.html] 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 [http://svnbook.redbean.com/en/1.4/svn.advanced.props.html].
88
89
Desde la(s) carpeta(s) donde desea aplicar estas propiedades, utilice TortoiseSVN Propiedades
y haga click en Importar.... Se le preguntar por un nombre de fichero desde el que importar, por lo
que deber navegar al lugar donde almacen el fichero exportado anteriormente y seleccionarlo. Las
propiedades se aadirn a las carpetas de forma no recursiva.
Si desea aadir las carpetas a un rbol recursivamente, siga los pasos anteriores, y luego en el dilogo de
propiedades seleccione cada propiedad por turnos, haga click en Editar..., seleccione la casilla Aplicar
propiedad recursivamentey haga click en Aceptar.
El formato del fichero de importacin es binario y propietario de TortoiseSVN. Su nico propsito es
transferir las propiedades utilizando Importar y Exportar, por lo que no hay necesidad de editar estos
ficheros.
Confirmar propiedades
Las propiedades de Subversion estn versionadas. Despus de que cambie o aada una
propiedad tiene que confirmar sus cambios.
90
91
La propiedad tsvn:logsummary se utiliza para extraer una porcin del mensaje de registro que
luego se muestra en el dilogo 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
lnea 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.
Cuando quiera aadir 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 ortogrficos 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 aparecern en la lista de nombres
de propiedades predefinidas.
Some tsvn: properties require a true/false value. TortoiseSVN also understands yes as a
synonym for true and no as a synonym for false.
TortoiseSVN can integrate with some bug tracking tools. This uses project properties that start with
bugtraq:. Read Seccin 5.27, Integracin con sistemas de control de errores / seguimiento de
incidencias for further information.
It can also integrate with some web-based repository browsers, using project properties that start with
webviewer:. Read Seccin 5.28, Integracin con visores de repositorios basados en web for further
information.
Atencin
Aunque las propiedades de proyecto de TortoiseSVN son extremadamente tiles, slo
funcionan con TortoiseSVN, y algunas slo funcionarn en las versiones ms recientes
de TortoiseSVN. Si la gente que trabaja en su proyecto utiliza un nmero de clientes
de Subversion diferentes, o es posible que tengan versiones antiguas de TortoiseSVN,
puede que quiera utilizar ganchos de repositorio para forzar polticas de proyectos. Las
propiedades de proyecto slo ayudan a implementar una poltica, no pueden forzarlas.
92
Una de las caractersticas de los sistemas de control de versiones es la posibilidad de aislar cambios en
una lnea separada de desarrollo. Esto se conoce como una rama. Las ramas se utilizan a menudo para
probar nuevas caractersticas sin molestar la lnea principal del desarrollo con errores de compilacin y
errores. Tan pronto como la nueva caracterstica es lo suficiente estable, la rama de desarrollo se fusiona
de nuevo en la rama principal (trunk, troncal/tronco).
Otra caracterstica de los sistemas de control de versiones es la posibilidad de marcar revisiones
particulares (por ejemplo, una versin lanzada a produccin), para que pueda en cualquier momento
recrear un cierto entorno o compilacin. Este proceso se conoce como etiquetar.
Subversion does not have special commands for branching or tagging, but uses so-called cheap copies
instead. Cheap copies are similar to hard links in Unix, which means that instead of making a complete
copy in the repository, an internal link is created, pointing to a specific tree/revision. As a result branches
and tags are very quick to create, and take up almost no extra space in the repository.
93
http://svn.collab.net/repos/NombreDelProyecto/trunk
querr ahora usar algo como
http://svn.collab.net/repos/NombreDelProyecto/tags/Version_1.10
Si no puede recordar la convencin de nombres que us la ltima vez, pulse el botn a la derecha para
abrir el navegador de repositorios, para que pueda ver la estructura actual del repositorio.
Ahora debe elegir el origen de la copia. Aqu tiene tres opciones:
Revisin HEAD en el repositorio
La nueva rama se copia directamente en el repositorio desde la revisin HEAD. No se necesita
transferir datos desde su copia de trabajo, y la rama se crea muy rpidamente.
Revisin especfica en el repositorio
La nueva rama se copia directamente en el repositorio, pero puede elegir una versin anterior. Esto
es til si se olvid de crear una etiqueta cuando lanz una versin de su proyecto la semana pasada.
Si no puede acordarse del nmero de revisin, pulse el botn a la derecha para mostrar el registro
de revisiones, y seleccione el nmero de revisin desde all. De nuevo no se transfiere datos desde
su copia de trabajo, y la rama se crea muy rpidamente.
Copia de trabajo
La nueva rama es una copia idntica de su copia de trabajo local. Si ha cambiado algunos ficheros
a una revisin anterior en su copia de trabajo, o si ha hecho cambios locales, esto es exactamente lo
que ir a la copia. Naturalmente, esta clase de etiquetado complejo conlleva transferir datos desde
su copia de trabajo al repositorio si no existe ya all.
Si desea que su copia de trabajo se cambie automticamente a la rama recin creada, utilice la casilla
Cambiar la copia de trabajo a la nueva rama/etiqueta. Pero si lo hace, asegrese primero de que
su copia de trabajo no contenga modificaciones. Si las tiene, esos cambios se mezclarn en la copia de
trabajo de la rama cuando se haga el cambio.
Pulse Aceptar para confirmar la nueva copia al repositorio. No se olvide de proporcionar un mensaje de
registro. Tenga en cuenta que la copia se crea dentro del repositorio.
Note that unless you opted to switch your working copy to the newly created branch, creating a Branch
or Tag does not affect your working copy. Even if you create the branch from your WC, those changes
are committed to the new branch, not to the trunk, so your WC may still be marked as modified with
respect to the trunk.
94
Cambiar trabaja igual que Actualizar, en el sentido de que nunca pierde sus cambios locales. Cualquier
cambio que haya hecho a su copia de trabajo que todava no se hayan confirmado se fusionarn cuando
haga el Cambio. Si no desea que esto ocurra, entonces debe o bien confirmar los cambios antes de
cambiar, o revertir su copia de trabajo a una revisin ya-confirmada (tpicamente HEAD).
If you want to work on trunk and branch, but don't want the expense of a fresh checkout, you can use
Windows Explorer to make a copy of your trunk checkout in another folder, then TortoiseSVN
Switch... that copy to your new branch.
5.19. Fusionando
Mientras que las ramas se utilizan para mantener lneas de desarrollo separadas, en alguna etapa tendr
que fusionar los cambios hechos en una rama de vuelta en el tronco, o viceversa.
It is important to understand how branching and merging works in Subversion before you start using it, as
it can become quite complex. It is highly recommended that you read the chapter Branching and Merging
[http://svnbook.red-bean.com/en/1.4/svn.branchmerge.html] in the Subversion book, which gives a full
description and many examples of how it is used.
95
El siguiente punto a tener en cuenta es que la fusin siempre tiene lugar en una copia de trabajo. Si quiere
fusionar cambios en una rama, deber tener una copia de trabajo obtenida de dicha rama, e invocar el
asistente de fusionado desde esa copia de trabajo utilizando TortoiseSVN Fusionar....
En general es una buena idea realizar fusiones en una copia de trabajo sin modificar. Si ha hecho otros
cambios en su copia de trabajo, confrmelos primero. Si la fusin no funciona como espera, puede querer
revertir los cambios, y el comando Revertir descartar todos los cambios, incluidos cualquiera que haya
hecho antes de la fusin.
There are three common use cases for merging which are handled in slightly different ways, as described
below. The first page of the merge wizard asks you to select the method you need.
Fusionando un rango de revisiones.
Este mtodo cubre el caso en el que ha hecho una o ms revisiones a una rama (o al tronco) y desea
portar estos cambios a una rama diferente.
Lo que le est pidiendo a Subversion que haga es: Calcula los cambios necesarios para ir [DESDE]
la revisin 1 de la rama A [HASTA] la revisin 7 de la rama A, y aplica esos cambios en mi copia
de trabajo (del tronco o de la rama B).
Reintegrando una rama.
This method covers the case when you have made a feature branch as discussed in the Subversion
book. All trunk changes have been ported to the feature branch, week by week, and now the feature
is complete you want to merge it back into the trunk. Because you have kept the feature branch
synchronized with the trunk, the latest versions of branch and trunk will be absolutely identical except
for your branch changes.
Este es un caso especial de la fusin de rboles describa ms abajo, y necesita slo la URL desde
la que fusionar (normalmente) su rama de desarrollo. Utiliza las caractersticas de registro de
fusiones de Subversion para calcular el rango de revisiones correcto que se debe utilizar, y realiza
comprobaciones adicionales para asegurarse de que la rama ha sido completamente actualizada con
los cambios del tronco. Esto le asegura que no va a deshacer accidentalmente el trabajo que otros
han confirmado en el tronco desde sus ltimos cambios sincronizados.
After the merge, all branch development has been completely merged back into the main
development line. The branch is now redundant and can be deleted.
Fusionando dos rboles diferentes.
This is a more general case of the reintegrate method. What you are asking Subversion to do is:
Calculate the changes necessary to get [FROM] the head revision of the trunk [TO] the head revision
of the branch, and apply those changes to my working copy (of the trunk). The net result is that
trunk now looks exactly like the branch.
If your server/repository does not support merge-tracking then this is the only way to merge a
branch back to trunk. Another use case occurs when you are using vendor branches and you need
to merge the changes following a new vendor drop into your trunk code. For more information read
the chapter on vendor branches [http://svnbook.red-bean.com/en/1.4/svn.advanced.vendorbr.html]
in the Subversion Book.
96
97
blanco, se incluirn todas las revisiones que no hayan sido an fusionadas. Lea Seccin 5.19.6, Registro
de fusin para saber ms.
Si hay otras personas que puedan estar confirmando cambios, entonces tenga cuidado al utilizar la revisin
HEAD. Puede que no se refiera a la revisin que usted cree si alguien ms ha hecho una confirmacin
despus de su ltima actualizacin.
Haga click en Siguiente y vaya a Seccin 5.19.4, Opciones de fusin
98
99
Most of the time you want merge to take account of the file's history, so that changes relative to a common
ancestor are merged. Sometimes you may need to merge files which are perhaps related, but not in
your repository. For example you may have imported versions 1 and 2 of a third party library into two
separate directories. Although they are logically related, Subversion has no knowledge of this because
it only sees the tarballs you imported. If you attempt to merge the difference between these two trees
you would see a complete removal followed by a complete add. To make Subversion use only pathbased differences rather than history-based differences, check the Ignore ancestry box. Read more about
this topic in the Subversion book, Noticing or Ignoring Ancestry [http://svnbook.red-bean.com/en/1.4/
svn.branchmerge.copychanges.html#svn.branchmerge.copychanges.bestprac.ancestry]
Puede especificar la forma en la que se manejan los cambios en los finales de lnea y en los espacios en
blanco. Estas opciones se describen en Seccin 5.10.2, Opciones de fn de lnea y espacios en blanco.
El comportamiento por defecto es tratar todos los espacios en blanco y las diferencias en los finales de
lneas como cambios reales que deben fusionarse.
Si est utilizando el registro de fusiones y desea marcar una revisin como que ya se ha fusionado, sin
hacer realmente efectiva la fusin aqu, marque la casilla Slo registrar la fusin. Hay dos posibles
razones por las que puede querer hacer esto. Puede ser que la fusin es demasiado complicada para los
algoritmos de fusin, por lo que hace los cambios en el cdigo a mano, y luego marca el cambio como
fusionado para que el algoritmo de registro de fusin se de por enterado. O quizs quiera evitar que una
revisin en concreto se fusione. Marcndola como ya fusionada evitar que la fusin se produzca con los
clientes manejan la informacin de registro de fusin.
Now everything is set up, all you have to do is click on the Merge button. If you want to preview the
results Test Merge performs the merge operation, but does not modify the working copy at all. It shows
you a list of the files that will be changed by a real merge, and notes those areas where conflicts will occur.
El dilogo de progreso de fusin muestra cada etapa de la fusin, con los rangos de revisiones
involucrados. Esto puede indicar un nmero de revisin ms del que esperaba. Por ejemplo, si pidi
fusionar la revisin 123, el dilogo de progreso mostrar Fusionando de r122 a r123. Para entenderlo
debe recordar que Fusionar est ntimamente relacionado con Diferenciar. El proceso de fusin funciona
generando una lista de diferencias entre dos puntos del repositorio, y posteriormente aplicando esas
diferencias a su copia de trabajo. El dilogo de progreso est simplemente mostrando los puntos de inicio
y fin de la diferenciacin.
100
Sugerencia
If you have just merged a feature branch back into the trunk, the trunk now contains all the
new feature code, and the branch is obsolete. You can now delete it from the repository
if required.
Importante
Subversion can't merge a file with a folder and vice versa - only folders to folders and files
to files. If you click on a file and open up the merge dialog, then you have to give a path
to a file in that dialog. If you select a folder and bring up the dialog, then you must specify
a folder URL for the merge.
101
102
This dialog is very easy. All you have to do is set the options for the merge, as described in Seccin 5.19.4,
Opciones de fusin. The rest is done by TortoiseSVN automatically using merge tracking.
5.20. Bloqueando
Subversion generalmente trabaja mejor sin bloqueos, utilizando los mtodos Copiar-ModificarFusionar que se describieron anteriormente en el Seccin 2.2.3, La solucin copiar-modificarfusionar. Sin embargo, hay algunas pocas situaciones en las que puede querer implementar alguna forma
de poltica de bloqueo.
Est utilizando ficheros no fusionables, por ejemplo, ficheros de imagen. Si dos personas cambian
el mismo fichero, la fusin no es posible, as que alguno de ellos perder sus cambios.
Your company has always used a locking revision control system in the past and there has been a
management decision that locking is best.
Firstly you need to ensure that your Subversion server is upgraded to at least version 1.2. Earlier versions
do not support locking at all. If you are using file:// access, then of course only your client needs
to be updated.
103
104
105
106
ahora puede seleccionar los ficheros que desea incluir en el parche, del mismo modo a como lo hara
con una confirmacin completa. Esto producir un nico fichero que contendr un resumen de todos
los cambios que ha hecho a los ficheros seleccionados desde la ltima vez que se actualiz desde el
repositorio.
Las columnas en este dilogo pueden ser personalizadas de la misma forma que las columnas en el dilogo
Comprobar modificaciones. Para ms detalles, lea Seccin 5.7.3, Estado local y remoto.
Puede producir parches separados que contengan cambios a diferentes conjuntos de ficheros. Por
supuesto, si crea un fichero de parche, hace algunos cambios ms a los mismos ficheros y luego crea otro
parche, el segundo fichero de parche incluir ambos conjuntos de cambios.
Simplemente grabe el fichero utilizando un nombre de fichero de su eleccin. Los ficheros de parche
pueden tener la extensin que desee, pero por convencin se suele utilizar las extensiones .patch o
.diff extension. Ya est preparado para enviar su fichero de parches.
Tambin puede almacenar el parche en el portapapeles en vez de en un fichero. Puede querer hacer esto
para poder pegarlo en un email de forma que lo revisen otros. O si tiene dos copias de trabajo en una
mquina y quiere transferir cambios de una a otra, un parche en el portapapeles es una forma cmoda
de hacerlo.
107
A veces necesita saber no slo qu lineas han cambiado, sino tambin exactamente quin cambi lneas
especficas en un fichero. Entonces es cuando el comando TortoiseSVN Autora..., a veces conocido
como comando de anotar, tiene su utilidad.
Este comando muestra, por cada lnea en un fichero, su autor y la revisin en la que se cambi la lnea.
108
109
lneas ms nuevas en rojo y las ms antiguas en azul. La paleta de color por defecto es bastante suave,
pero puede cambiarla utilizando la configuracin de TortoiseBlame.
Si est utilizando Registro de fusiones, cuando las lneas hayan cambiado como resultado de una fusin
desde otra ruta, TortoiseBlame le mostrar la revisin y el autor del ltimo cambio en el fichero original,
en vez de la revisin en la que se realiz la revisin. Estas lneas se muestran con la revisin y el autor
en cursiva.
If you want to see the paths involved in the merge, select View Merge paths.
The settings for TortoiseBlame can be accessed using TortoiseSVN Settings... on the TortoiseBlame
tab. Refer to Seccin 5.29.8, Configuracin de TortoiseBlame.
110
111
112
Importante
In order to generate the graph, TortoiseSVN must fetch all log messages from the repository
root. Needless to say this can take several minutes even with a repository of a few thousand
revisions, depending on server speed, network bandwidth, etc. If you try this with something
like the Apache project which currently has over 500,000 revisions you could be waiting
for some time.
La buena noticia es que si est utilizando Cach de registro, slo tendr que sufrir este
retraso una vez. Despus, la informacin de registro se maneja localmente. El cach de
registro se habilita desde la configuracin de TortoiseSVN.
113
Fichero/carpeta aadida
Los tems que se han aadido, o se crearon copindolos de otros ficheros/carpetas se muestran
utilizando un rectngulo redondeado.
Fichero/carpeta eliminada
Los tems borrados, por ejemplo una rama que no se necesita ms, se muestran utilizando un octgono
(rectngulo con las esquinas cortadas).
Revisin punta de la rama
Where a branch (or trunk or tag) has been modified since the last branch node, this is shown using
an ellipse. Shown when the Show HEAD revisions option is selected.
Fichero/carpeta normal
Todos los dems tems se muestran utilizando un rectngulo normal.
El grfico de revisiones muestra varios tipos de nodos:
<placeholder-1></placeholder-1>
Tenga en cuenta que por defecto el grfico slo muestra los puntos en los que se aadieron o borraron
tems. Mostrar cada revisin de un proyecto podra generar un grfico enorme para los casos no triviales.
Si realmente desea ver todas las revisiones en las que se hicieron cambios, hay una opcin para hacerlo
en el men Ver y en la barra de herramientas.
114
ejemplo en una lnea diagonal en vez de en una columna, y puede llevar un poco de tiempo optimizar
el grfico.
Filtro
A veces los grficos de revisin contienen ms revisiones de las que desea ver. Esta opcin abre
un dilogo que le permitir restringir el rango de revisiones mostrado, y ocultar rutas concretas por
su nombre.
Atencin
Dado que Subversion no puede proporcionar toda la informacin necesaria, se necesita una
cierta cantidad de interpretacin, que a veces puede dar resultados estraos. En cualquier
caso, la salida para el tronco generalmente da resultados tiles.
115
then deleting all those .svn directories manually, TortoiseSVN offers the command TortoiseSVN
Export.... Exporting from a URL and exporting from a working copy are treated slightly differently.
116
Aviso
Esta es una operacin que se utiliza realmente poco. El comando relocalizar se utiliza slo
si la URL de la raiz del repositorio ha cambiado. Estas son algunas posibles razones:
La direccin IP del servidor ha cambiado.
El protocolo ha cambiado (por ejemplo, de http:// a https://).
La ruta raz del repositorio ha cambiado en la configuracin del servidor.
De otra forma, necesita relocalizar cuando su copia de trabajo se refiere al mismo lugar en
el mismo repositorio, pero es el propio repositorio el que se ha movido.
Esto no se aplica si:
Quiere moverse a un repositorio de Subversion diferente. En ese caso debera realizar
una obtencin limpia desde la nueva localizacin del repositorio.
Quiere cambiar a una rama o a un directorio diferente dentro del mismo repositorio.
Para hacer eso debera utilizar TortoiseSVN Cambiar.... Para ms informacin, lea
Seccin 5.18.2, Obtener o cambiar....
Si utiliza relocalizar en alguno de los casos anteriores, corromper su copia de trabajo y
obtendr muchos mensajes de error inexplicables cuando actualice, confirme, etc. Una vez
que sto ha ocurrido, el nico arreglo es hacer una obtencin limpia.
117
Es muy comn en el Desarrollo de Software que los cambios se refieran a un ID de error o incidencia
especfico. A los usuarios de los sistemas de control de errores (seguimiento de incidencias) les gustara
asociar los cambios que hacen en Subversion con un ID especfico en su programa de seguimiento de
incidencias. La mayora de programas de seguimiento de incidencias proporcionan un script gancho precommit que parsea el mensaje de log para encontrar el ID del error con el que se asocia la confirmacin.
Esto es de alguna forma propenso a errores, porque se basa en el que usuario escriba el mensaje de registro
de forma correcta para que el script gancho pre-commit pueda parsearlo correctamente.
TortoiseSVN puede ayudar al usuario de dos formas:
1. Cuando el usuario introduce un mensaje de registro, puede aadirse una lnea bien definida incluyendo
el nmero de incidencia asociada a la confirmacin. Esto reduce el riesgo de que el usuario introduzca
el nmero de incidencia que las herramientas de control de errores no puedan parsear correctamente.
O TortoiseSVN puede remarcar la parte del mensaje de registro introducido que el programa de
seguimiento de incidencias reconoce. De esta forma el usuario sabr que el mensaje de registro
introducido puede parsearse correctamente.
2. Cuando el usuario navega por los mensajes de registro, TortoiseSVN crea un enlace desde cada ID de
error en el mensaje de registro, que lanza el navegador con la incidencia mencionada.
118
bugtraq:message
This property activates the bug tracking system in Input field mode. If this property is set, then
TortoiseSVN will prompt you to enter an issue number when you commit your changes. It's used
to add a line at the end of the log message. It must contain %BUGID%, which is replaced with the
issue number on commit. This ensures that your commit log contains a reference to the issue number
which is always in a consistent format and can be parsed by your bug tracking tool to associate the
issue number with a particular commit. As an example you might use Issue : %BUGID%, but
this depends on your Tool.
bugtraq:append
Esta propiedad define si el ID del error se aade (true) al final del mensaje de registro o se inserta
(false) al inicio del mensaje de registro. Los valores vlidos son true/false. Si no se define, se
asume true, para que los proyectos ya existentes no se rompan.
bugtraq:label
This text is shown by TortoiseSVN on the commit dialog to label the edit box where you enter the
issue number. If it's not set, Bug-ID / Issue-Nr: will be displayed. Keep in mind though that
the window will not be resized to fit this label, so keep the size of the label below 20-25 characters.
bugtraq:number
If set to true only numbers are allowed in the issue-number text field. An exception is the comma,
so you can comma separate several numbers. Valid values are true/false. If not defined, true
is assumed.
119
+) Este mtodo se necesita por algunos gestores de incidencias, por ejemplo trac, pero la expresin
regular es ms dificil de construir. Le recomendamos que slo utilice este mtodo si la documentacin
de su gestor de incidencias se lo indica.
If you are unfamiliar with regular expressions, take a look at the introduction at http://
en.wikipedia.org/wiki/Regular_expression, and the online documentation and tutorial at http://
www.regular-expressions.info/.
Si se establecen las dos propiedades bugtraq:message y bugtraq:logregex, logregex tiene
preferencia.
Sugerencia
Incluso si no tiene un programa de seguimiento de incidencias con un gancho pre-commit
parseando sus mensajes de log, puede seguir utilizando sto para convertir las incidencias
mencionadas en su mensajes de registro en vnculos!
And even if you don't need the links, the issue numbers show up as a separate column in
the log dialog, making it easier to find the changes which relate to a particular issue.
Some tsvn: properties require a true/false value. TortoiseSVN also understands yes as a
synonym for true and no as a synonym for false.
120
121
context menu entry in the log dialog Context Menu View revision and path in webviewer For
example, if you right-click in the log dialog bottom pane on a file entry /trunk/src/file then
the %PATH% in the URL will be replaced with /trunk/src/file.
Tambin puede utilizar URLs relativas en vez de absolutas. Esto es til en caso de que su control
de incidencias est en el mismo dominio/servidor que su repositorio. En caso de que el nombre
de dominio cambie alguna vez, no tendr que ajustar las propiedades webviewer:revision y
webviewer:pathrevision. El formato es el mismo que el de la propiedad bugtraq:url. Vea
Seccin 5.27, Integracin con sistemas de control de errores / seguimiento de incidencias.
122
Este dilogo le permite especificar su idioma preferido, y las configuraciones especficas de Subversion.
Idioma
Selecciona el idioma del interfaz de usuario. Qu otra cosa esperabas?
Comprobar automticamente si hay nuevas versiones todas las semanas
Si se marca, TortoiseSVN contactar su sitio de descarga una vez a la semana para ver si hay
disponible una versin ms reciente del programa. Utilice el botn Comprobar ahora si desea una
respuesta inmediata. No se descargar la versin ms reciente; simplemente recibir un dilogo de
informacin dicindole que hay una versin nueva disponible.
Sonidos del sistema
TortoiseSVN tiene tres sonidos personalizados que se instalan por defecto.
Error
Informacin
Atencin
Puede seleccionar sonidos diferentes (o quitarlos completamente) utilizando el Panel de Control de
Windows. Configurar es un acceso directo al Panel de Control.
Patrn global de ignorar
Global ignore patterns are used to prevent unversioned files from showing up e.g. in the commit
dialog. Files matching the patterns are also ignored by an import. Ignore files or directories by typing
in the names or extensions. Patterns are separated by spaces e.g. */bin */obj *.bak *.~??
*.jar *.[Tt]mp. Remember that these patterns may be used against paths which include N
levels of parent directory. Setting ignore patterns for anything other than simple file extensions is
not as trivial as it first appears, so be sure to read Seccin 5.13.1, Pattern Matching in Ignore Lists
for more information on the pattern-matching syntax, and how paths are checked.
Tenga en cuenta que los patrones de ignorar que especifique aqu tambin afectarn a otros clientes
de Subversion que se ejecuten en su PC, incluyendo el cliente de lnea de comandos.
Atencin
Si utiliza el fichero de configuracin de Subversion para establecer un patrn
global-ignores, prevalecer sobre las configuraciones que haga aqu. El fichero
de configuracin de Subversion se accede utilizando Editar como se describe a
continuacin.
Este patrn de ignorar afectar a todos sus proyectos. No se versiona, por lo que no afectar a
otros usuarios. En el lado opuesto, puede utilizar tambin la propiedad versionada svn:ignore
para excluir ficheros o directorios del control de versiones. Para ms informacin, lea Seccin 5.13,
Ignorando ficheros y directorios.
Set file dates to the last commit time
This option tells TortoiseSVN to set the file dates to the last commit time when doing a checkout
or an update. Otherwise TortoiseSVN will use the current date. If you are developing software it
is generally best to use the current date because build systems normally look at the date stamps to
decide which files need compiling. If you use last commit time and revert to an older file revision,
your project may not compile as you expect it to.
Fichero de configuracin de Subversion
Use Edit to edit the Subversion configuration file directly. Some settings cannot
be modified directly by TortoiseSVN, and need to be set here instead. For more
123
information about the Subversion config file see the Runtime Configuration Area [http://
svnbook.red-bean.com/en/1.4/svn.advanced.confarea.html]. The section on Automatic Property
Setting [http://svnbook.red-bean.com/en/1.4/svn.advanced.props.html#svn.advanced.props.auto] is
of particular interest, and that is configured here. Note that Subversion can read
configuration information from several places, and you need to know which one takes
priority. Refer to Configuration and the Windows Registry [http://svnbook.red-bean.com/en/1.4/
svn.advanced.confarea.html#svn.advanced.confarea.windows-registry] to find out more.
Use _svn instead of .svn directories
VS.NET cuando se utiliza con proyectos web no puede manejar las carpetas .svn que Subversion
utiliza para almacenar su informacin interna. Esto no es un error de Subversion. El error est en
VS.NET y las extensiones de Frontpage que utiliza. Lea Seccin 5.29.10, Carpetas de trabajo de
Subversion para averiguar ms sobre este problema.
Si desea cambiar el comportamiento de Subversion y TortoiseSVN, puede utilizar esta casilla para
establecer la variable de entorno que lo controla.
Debera tener en cuenta que cambiar esta opcin no convertir automticamente sus copias de trabajo
para que usen ese nuevo directorio administrativo. Deber hacerlo utilizando un script (vea nuestro
FAQ) o simplemente obteniendo una copia de trabajo nueva.
124
125
Auto-cerrar si no hay conflictos relaja el criterio y cerrar el dilogo incluso si ha habido fusiones,
adiciones o borrados. Sin embargo, si hay algn conflicto o error, el dilogo continuar abierto.
Auto-cerrar si no hay errores siempre cierra el dilogo, incluso si hay conflictos. La nica
condicin que deja el dilogo abierto es una condicin de error, que ocurre cuando Subversion no
puede terminar una tarea. Por ejemplo, una actualizacin falla si el servidor es inaccesible, o una
confirmacin falla cuando la copia de trabajo no est actualizada.
Use URL of WC as the default From: URL
En el dilogo de fusin, el comportamiento por defecto es que la URL Desde: se mantenga entre
fusiones. Sin embargo, algunas personas quieren realizar fusiones desde diferentes puntos en su
jerarqua, y les resulta ms cmodo empezar con la URl de la copia de trabajo actual. Esto puede
luego cambiarse para referirse a una ruta paralela en otra rama.
Ruta de obtencin por defecto
Puede especificar la ruta por defecto para las obtenciones. Si mantiene todas sus obtenciones en un
mismo lugar, es til tener la unidad y la carpeta pre-rellenados para que as slo tenga que aadir
el nombre de la nueva carpeta al final.
URL de obtencin por defecto
Tambin puede especificar la URL por defecto para las obtenciones. Si obtiene a menudo
subprojectos de un projecto muy grante, puede ser til tener la URL pre-rellenada de forma que slo
tenga que aadir el nombre del subprojecto al final.
126
127
128
Nodo reemplazado
El tem original ha sido borrado y un nuevo tem con el mismo nombre le reemplaza.
129
Shell
El cacheo se realiza directamente dentro de la dll de la extensin del shell, pero slo para la carpeta
actualmente visible. Cada vez que navega a otra carpeta, se obtiene de nuevo la informacin de
estado.
Advantage: needs only very little memory (around 1 MB of RAM) and can show the status in real
time.
Desventaja: Dado que slo se hace cach de una carpeta, las sobreimpresiones no muestran el estado
recursivamente. Para copias de trabajo grandes, mostrar una carpeta en el explorador puede llevar
ms tiempo que con la cach por defecto. Adems, la columna tipo-mime no est disponible.
Ninguno
Con esta configuracin, TortoiseSVN no obtiene ningn estado en el Explorador. Por esa causa,
los ficheros no tendrn sobreimpresiones y las carpetas slo tendrn una sobreimpresin 'normal' si
estn versionadas. No se mostrar ninguna otra sobreimpresin, y tampoco estarn disponibles las
columnas extra.
Ventaja: no utiliza memoria adicional en absoluto y no ralentiza de ninguna forma el Explorador
mientras se navega.
Disadvantage: Status information of files and folders is not shown in Explorer. To see if your working
copies are modified, you have to use the Check for modifications dialog.
The next group allows you to select which classes of storage should show overlays. By default, only hard
drives are selected. You can even disable all icon overlays, but where's the fun in that?
Las unidades de red pueden ser muy lentas, as que por defecto no se muestran los iconos para las copias
de trabajo que se encuentren en unidades de red.
Las unidades USB Flash parecen ser un caso especial en el que el tipo de unidad lo identifica el propio
dispositivo. Algunas aparecen como discos duros, y otros como discos extrables.
Excluir Rutas se usa para decirle a TortoiseSVN en qu rutas no debe mostrar iconos sobreimpresionados
ni columnas de estado. Esto es til si tiene algunas copias de trabajo muy grandes que contienen
nicamente libreras que no cambian en absoluto y por tanto no necesitan las sobreimpresiones. Por
ejemplo:
f:\desarrollo\SVN\Subversion desabilitar las sobreimpresiones slo en esa ruta concreta.
Todava podr ver las sobreimpresiones en todos los ficheros y carpetas dentro de esa carpeta.
f:\desarrollo\SVN\Subversion* deshabilitar las sobreimpresiones en todos los ficheros y
carpetas cuya ruta empiece por f:\desarrollo\SVN\Subversion. Esto significa que no ver
sobreimpresiones para ningn fichero y carpetas debajo de esa ruta.
Lo mismo se aplica a Incluir rutas. Excepto que para esas rutas las sobreimpresiones se muestran incluso
si estn deshabilitadas para ese tipo de unidad en concreto, o por una ruta de exclusin especificada ms
arriba.
Los usuarios a veces preguntan cmo funcionan estas tres configuraciones, y la respuesta definitiva es:
130
subst T: C:\TortoiseSVN\trunk\doc
Sin embargo esto puede ocasionar que las sobreimpresiones no se actualicen, ya
que TSVNCache slo recibir una notificacin cuando cambie un fichero, y eso es
normalmente para la ruta original. Esto significa que sus sobreimpresiones sobre rutas
subst puede que nunca se actualicen.
Una forma fcil de evitar esto es excluir de las sobreimpresiones la ruta original, de forma
que las sobreimpresiones aparezcan ahora en la ruta subst.
A veces excluir areas que contienen copias de trabajo, lo que evita que TSVNCache las escanee y
monitorice los cambios, pero an querr una indicacin visual de que dichas carpetas estn versionadas.
La casilla Mostrar carpetas excluidas como normales le permite hacer esto. Con esta opcin, las
carpetas versionadas en cualquier rea excluda (tipo de unidad no marcada, o excluda explcitamente)
se mostrarn como normal y como actualizadas, con una marca verde. Esto le recuerda que est viendo
una copia de trabajo, incluso aunque las sobreimpresiones de las carpetas no sean correctas. Los ficheros
no tendrn ninguna sobreimpresin. Tenga en cuenta que los mens contextuales seguirn funcionando,
incluso aunque las sobreimpresiones no se muestren.
Como una excepcin especial a esto, las unidades A: y B: nunca se consideran para la opcin Mostrar
carpetas excluidas como normales. El motivo es que Windows se ve obligado a mirar en la unidad,
lo que puede resultar en un retraso de varios segundos cuando se inicia el Explorador, incluso si su PC
no tiene una unidad de disquete.
131
Tambin puede cambiar el conjunto de iconos de sobreimpresin al que ms le guste. Tenga en cuenta
que si cambia el conjunto de sobreimpresiones, puede tener que reiniciar su ordenador para que estos
cambios surtan efecto.
132
Finalmente, configurar SSH en el servidor y los clientes en un proceso no-trivial que est fuera del alcance
de este fichero de ayuda. Sin embargo, puede encontrar una gua en el FAQ de TortoiseSVN mostrado
como Subversion/TortoiseSVN SSH How-To [http://tortoisesvn.net/ssh_howto].
133
134
%mname
El ttulo de la ventana para el fichero fusionado
For example, with Perforce Merge:
C:\Path-To\P4Merge.exe %base %theirs %mine %merged
or with KDiff3:
C:\Path-To\kdiff3.exe %base %mine %theirs -o %merged
--L1 %bname --L2 %yname --L3 %tname
or with Araxis:
C:\Path-To\compare.exe /max /wait /3 /title1:%tname /title2:%bname
/title3:%yname %theirs %base %mine %merged /a2
or with WinMerge (2.8 or later):
C:\Path-To\WinMerge.exe %merged
135
136
registro que ya estuviera en su cach, no ver el cambio hasta que limpie la cach. La cach de
mensajes de registro se habilita en la pestaa Dilogos 1.
Tamaos y posiciones de los dilogos
Muchos dilogos almacenan el tamao y la posicin en pantalla que tenan la ltima vez.
Datos de autentificacin
Cuando se autentifica con un servidor de Subversion, el usuario y la contrasea se cachean localmente
para que no tenga que seguir introducindolos. Puede querer limpiar esto por razones de seguridad,
o porque quiere acceder al repositorio bajo un nombre de usuario diferente ... sabe John que est
utilizando su PC?
If you want to clear authentication data for one particular server only, read Seccin 5.1.5,
Autentificacin for instructions on how to find the cached data.
Action log
TortoiseSVN keeps a log of everything written to its progress dialogs. This can be useful when, for
example, you want to check what happened in a recent update command.
The log file is limited in length and when it grows too big the oldest content is discarded. By default
4000 lines are kept, but you can customize that number.
From here you can view the log file content, and also clear it.
137
138
139
Saltar rangos
El nmero de rangos de revisiones que no se han obtenido, simplemente por no han sido pedidos.
Esta es una medida del nmero de huecos en la cach.
Revisin mx
El nmero de revisin ms alto almacenado en la cach.
Cuenta de revisiones
El nmero de revisiones almacenados en la cach. Esta es otra medida de la completitud de la cach.
Pulse en Actualizar para refrescar completamente la cach y rellenar cualquier hueco. Para un repositorio
grande esto puede llevar mucho tiempo, pero es til si va a desconectarse y quiere tener la mejor cach
disponible.
Pulse en Exportar para exportar la cach completa como un conjunto de ficheros CSV. Esto puede ser
til si desea procesar los datos de registro utilizando un programa externo, aunque es til principalmente
para los desarrolladores.
Pulse en Eliminar para eliminar todos los datos de la cach de los repositorios seleccionados. Esto no
deshabilita la cach para el repositorio, por lo que la prxima vez que pida datos de registro se crear
una nueva cach.
140
confirmen en el repositorio. Por supuesto siempre puede elegir llamar a un script que ya est bajo control
de versiones.
141
Post-confirmacin
PATHDEPTHMESSAGEFILEREVISIONERRORCWD
Inicio-actualizacin
PATHCWD
Pre-actualizacin
PATHDEPTHREVISIONCWD
Post-actualizacin
PATHDEPTHREVISIONERRORCWD
The meaning of each of these parameters is described here:
PATH
Una ruta a un fichero temporal que contiene todas las rutas para la operacin que se ha iniciado.
Cada ruta aparece en una lnea distinta en el fichero temporal.
DEPTH
La profundidad a la que se realiza la confirmacin o actualizacin.
Los valores posibles son:
-2
svn_depth_unknown
-1
svn_depth_exclude
0
svn_depth_empty
1
svn_depth_files
2
svn_depth_immediates
3
svn_depth_infinity
MESSAGEFILE
Ruta a un fichero que contiene el mensaje de registro de la confirmacin. El fichero contiene el
texto con la codificacin UTF-8. Tras la ejecucin con xito del gancho start-commit, el mensaje de
registro se vuelve a leer, dndole al gancho una oportunidad para modificarlo.
REVISION
The repository revision to which the update should be done or after a commit completes.
ERROR
Ruta a un fichero que contiene el mensaje de error. Si no hubo error, el fichero estar vaco.
CWD
El directorio de trabajo actual desde el que se ejecuta el script. Este directorio se establece al
directorio raz comn de todas las rutas afectadas.
Si quiere que la operacin de Subversion espere a que el gancho termine, marque Esperar a que el
script termine.
Normally you will want to hide ugly DOS boxes when the script runs, so Hide the script while running
is checked by default.
142
143
Colores
TortoiseBlame puede utilizar el color de fondo para indicar la antiguedad de las lneas en un fichero.
Proponga los colores de los extremos especificando los colores para la revisin ms nueva y ms
antigua, y TortoiseBlame utiliza una interpolacin lineal entre esos colores de acuerdo a la revisin
del repositorio indicada en cada lnea.
Fuente
Puede seleccionar la fuente utilizada para mostrar el texto, y el tamao de punto a utilizar. Esto se
aplica tanto al contenido del fichero como al autor y la informacin de la revisin mostrados en el
panel izquierdo.
Tabulaciones
Define cuntos espacios se utilizarn para la expansin cuando se encuentre un carcter de tabulacin
en el contenido del fichero.
144
VS.NET 2003 when used with web projects can't handle the .svn folders that Subversion uses to store
its internal information. This is not a bug in Subversion. The bug is in VS.NET 2003 and the frontpage
extensions it uses.
145
Descripcin
-n
-m
-d
-f
Si se especifica esta opcin, SubWCRev incluir la revisin del ltimo cambio de las
carpetas. El comportamiento por defecto es utilizar nicamente los ficheros cuando
se obtienen los nmeros de revisin.
-e
Si se especifica esta opcin, SubWCRev examinar los directorios que se han includo
con svn:externals, pero slo si son del mismo repositorio. El comportamiento
por defecto es ignorar los externos.
-x
-X
146
El programa SubWCRev
Descripcin
$WCREV$
$WCDATE$
$WCNOW$
$WCRANGE$
$WCMIXED$
$WCMODS$
$WCURL$
$WCNOW$
$WCNOW=
$WCINSVN$
$WCNEEDSLOCK$
$WCISLOCKED$
$WCLOCKDATE$
$WCLOCKOWNER$
$WCLOCKCOMMENT$
147
El programa SubWCRev
*Revision
*Modified
*Date
*Range
*Mixed
*URL
=
=
=
=
=
=
"$WCREV$";
"$WCMODS?Modificado:No modificado$";
"$WCDATE$";
"$WCRANGE$";
"$WCMIXED?Copia de trabajo con revisiones mezcladas:No mezcladas$
"$WCURL$";
#if $WCMODS?1:0$
#error El origen ha sido modificado
#endif
// Fin de fichero
Despus de ejecutar SubWCRev.exe ruta\a\la\copia\de\trabajo fichprueba.tmpl
fichprueba.txt, el fichero de salida fichprueba.txt se parecera a esto:
Sugerencia
Un fichero como este se incluir en la compilacin por lo que puede esperar que est
versionado. Asegrese de que versiona el fichero de plantilla, no el fichero generado, porque
si no cada vez que regenere el fichero de versin deber confirmar el cambio, lo que a su
vez significara que el fichero de versin necesita ser actualizado.
Descripcin
.GetWCInfo
148
El programa SubWCRev
Mtodo
Descripcin
.Revision
.Date
.Author
.MinRev
.MaxRev
.HasModifications
.Url
Replaced with the repository URL of the working copy path used in
GetWCInfo. Equivalent to $WCURL$
149
El programa SubWCRev
WScript.Echo(sInfo2);
WScript.Echo(sInfo3);
150
Apndice A. Preguntas ms
frecuentes (FAQ)
Because TortoiseSVN is being developed all the time it is sometimes hard to keep the documentation
completely up to date. We maintain an online FAQ [http://tortoisesvn.tigris.org/faq.html] which
contains a selection of the questions we are asked the most on the TortoiseSVN mailing lists
<dev@tortoisesvn.tigris.org> and <users@tortoisesvn.tigris.org>.
We also maintain a project Issue Tracker [http://issues.tortoisesvn.net] which tells you about some of the
things we have on our To-Do list, and bugs which have already been fixed. If you think you have found
a bug, or want to request a new feature, check here first to see if someone else got there before you.
Si tiene una pregunta que no est contestada en ningn otro lugar, el mejor lugar para preguntar es en
una de las listas de correo. <users@tortoisesvn.tigris.org> es la que debe utilizar si tiene
preguntas acerca del uso de TortoiseSVN. Si desea ayudar con el desarrollo de TortoiseSVN, entonces
debera tomar parte en las discusiones de <dev@tortoisesvn.tigris.org>.
151
Apndice B. Cmo...?
Este apndice contiene soluciones a los problemas o preguntas que puede tener mientras utiliza
TortoiseSVN.
152
Cmo...?
Normalmente actualizar su copia de trabajo utilizando TortoiseSVN Actualizar. Pero si slo desea
obtener algunos ficheros nuevos que un colega ha aadido sin fusionar ningn cambio en los dems
ficheros a la vez, necesitar otra forma de actuacin.
Utilice TortoiseSVN Comprobar Modificaciones. y pulse en Comprobar repositorio para ver lo
que se cambi en el repositorio. Seleccione los ficheros que desea actualizar localmente, y utilice el men
contextual para actualizar slo esos ficheros.
153
Cmo...?
154
Cmo...?
De los tres mtodos descritos, ste es el nico que no necesita preparacin en el lado del cliente. Una
vez que los externos se especifican en las propiedades de la carpeta, todos los clientes obtendrn carpetas
rellenas cuando se actualicen.
C:\Proyectos\Proy1
C:\Proyectos\Proy2
C:\Proyectos\Proy3
C:\Proyectos\Comun
y refirase al cdigo comn con una ruta relativa, por ejemplo ..\..\Comun\DSPcore.
Si sus proyectos estn dispersos en lugares sin relacin entre s puede utilizar una variante de esto, que es
poner el cdigo comn en un lugar y utilizar la sustitucin de letras de unidades para mapear esa ruta a
algo que puede codificar en sus proyectos, por ejemplo, obtenga el cdigo comn en D:\Documentos
\Framework o C:\Documents and Settings\{login}\Mis Documentos\framework
y luego utilice
SUBST X: "D:\Documentos\framework"
para crear el mapeo de unidades utilizado en su cdigo fuente. Su cdigo puede entonces utilizar rutas
absolutas.
#include "X:\superio\superio.h"
Este mtodo slo funcionar en un entorno de todo-PCs, y necesitar documentar los mapeos de unidades
requeridos para que su equipo sepa dnde estn esos ficheros misteriosos. Este mtodo debera utilizarse
estrictamente en entornos de desarrollo cerrados, y no se recomienda para su uso generalizado.
155
Cmo...?
156
1.4.1.6000
A new version of TortoiseSVN is available for you to download!
157
http://192.168.2.1/downloads/TortoiseSVN-1.4.1.6000-svn-1.4.0.msi
The first line in that file is the version string. You must make sure that it matches the exact version string
of the TortoiseSVN installation package. The second line is a custom text, shown in the upgrade dialog.
You can write there whatever you want. Just note that the space in the upgrade dialog is limited. Too
long messages will get truncated! The third line is the URL to the new installation package. This URL is
opened when the user clicks on the custom message label in the upgrade dialog. You can also just point
the user to a web page instead of the MSI file directly. The URL is opened with the default web browser,
so if you specify a web page, that page is opened and shown to the user. If you specify the MSI package,
the browser will ask the user to save the MSI file locally.
Entrada de men
0x0000000000000001
Obtener
0x0000000000000002
Actualizar
0x0000000000000004
Confirmar
0x0000000000000008
Aadir
0x0000000000000010
Revertir
0x0000000000000020
Limpieza
0x0000000000000040
Resolver
0x0000000000000080
Cambiar
0x0000000000000100
Importar
0x0000000000000200
Exportar
158
Valor
Entrada de men
0x0000000000000400
0x0000000000000800
Ramas / Etiqueta
0x0000000000001000
Fusionar
0x0000000000002000
Eliminar
0x0000000000004000
Renombrar
0x0000000000008000
Actualizar a la revisin
0x0000000000010000
Diff
0x0000000000020000
Mostrar registro
0x0000000000040000
Editar conflictos
0x0000000000080000
Relocalizar
0x0000000000100000
Comprobar modificaciones
0x0000000000200000
Ignorar
0x0000000000400000
Navegador de repositorios
0x0000000000800000
Autora
0x0000000001000000
Crear parche
0x0000000002000000
Aplicar parche
0x0000000004000000
Grfico de revisiones
0x0000000008000000
Bloqueo
0x0000000010000000
Eliminar bloqueo
0x0000000020000000
Propiedades
0x0000000040000000
0x0000000080000000
0x2000000000000000
Configuracin
0x4000000000000000
Ayuda
0x8000000000000000
Acerca de
0x0000000000080000
+ 0x0000000080000000
+ 0x2000000000000000
= 0x2000000080080000
El valor DWORD inferior (0x80080000) debe almacenarse en HKEY_CURRENT_USER
\Software\TortoiseSVN\ContextMenuEntriesMaskLow, mientras que el valor DWORD
(0x20000000) superior se guarda en HKEY_CURRENT_USER\Software\TortoiseSVN
\ContextMenuEntriesMaskHigh.
Para habilitar las entradas de men de nuevo, simplemente elimine las dos entradas del registro.
159
Apndice D. Automatizando
TortoiseSVN
Dado que todos los comandos de TortoiseSVN se controlan a travs de parmetros de lnea de comandos,
puede automatizarlo con scripts batch o iniciando comandos y dilogos especficos desde otros programas
(por ejemplo, desde su editor de textos favorito).
Importante
Recuerde que TortoiseSVN es un cliente GUI, y esta gua de automatizacin le muestra
cmo conseguir que aparezcan los dilogos de TortoiseSVN para recolectar informacin
del usuario. Si desea escribir un script que no requiera entradas del usuario, debera utilizar
el cliente de lnea de comandos oficial de Subversion.
160
Automatizando TortoiseSVN
Comando
Descripcin
:about
:log
Opens the log dialog. The /path specifies the file or folder for which the log
should be shown. Three additional options can be set: /startrev:xxx,
/endrev:xxx and /strict
:checkout
:import
Opens the import dialog. The /path specifies the directory with the data
to import.
:update
:commit
Opens the commit dialog. The /path specifies the target directory or the
list of files to commit. You can also specify the /logmsg switch to pass a
predefined log message to the commit dialog. Or, if you don't want to pass
the log message on the command line, use /logmsgfile:ruta, where
ruta points to a file containing the log message. To pre-fill the bug ID box
(in case you've set up integration with bug trackers properly), you can use
the /bugid:"el ID del error aqu" to do that.
:add
:revert
:cleanup
:resolve
:repocreate
:switch
Opens the switch dialog. The /path specifies the target directory.
:export
:merge
Opens the merge dialog. The /path specifies the target directory. Three
additional options can be set: /mergefrom:xxx, /mergeto:xxx and /
fromurl:URL. These pre-fill the relevant fields in the merge dialog.
:mergeall
:copy
Brings up the branch/tag dialog. The /path is the working copy to branch/
tag from. And the /url is the target URL. You can also specify the /
logmsg switch to pass a predefined log message to the branch/tag dialog.
Or, if you don't want to pass the log message on the command line, use
/logmsgfile:ruta, where ruta points to a file containing the log
message.
:settings
:remove
161
Automatizando TortoiseSVN
Comando
Descripcin
:rename
:diff
:showcompare
:conflicteditor
Starts the conflict editor specified in the TortoiseSVN settings with the
correct files for the conflicted file in /path.
:relocate
:help
:repostatus
:repobrowser
:ignore
:blame
:cat
Graba un fichero de una URL o una copia de trabajo dada en /path al lugar
dado en /savepath:ruta. La revisin se da en /revision:xxx. Esto
puede utilizarse para obtener un fichero cno una revisin concreta.
:createpatch
:revisiongraph
162
Automatizando TortoiseSVN
Comando
Descripcin
:lock
:unlock
:rebuildiconcache
:properties
TortoiseProc.exe /command:commit
/path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
/logmsg:"mensaje de registro de prueba" /closeonend
TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend
TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt"
/startrev:50 /endrev:60 /closeonend
Descripcin
:left
:lefttitle
:right
:righttitle
:overlay
:fit
:showinfo
163
Automatizando TortoiseSVN
164
Nota
Incluso aunque hay equivalentes en CLI para lo que TortoiseSVN hace, recuerde que
TortoiseSVN no llama al CLI sino que utiliza la librera de Subversion directamente.
Si cree que ha encontrado un error en TortoiseSVN, puede que le pidamos que intente reproducirlo
utilizando el CLI, para que podamos distinguir los problemas de TortoiseSVN de los problemas de
Subversion. Esta referencia le dice qu comando debe probar.
Importante
Dado que TortoiseSVN es una Extensin del Shell de Windows, no es capaz de utilizar
la nocin de directorio de trabajo actua. Todas las rutas de las copias de trabajo se deben
especificar con rutas absolutas, no relativas.
Algunos tems son opcionales, y a menudo se controlan con casillas o botones de opciones en
TortoiseSVN. Estas opciones se muestran [entre corchetes] en las definiciones de la lnea de comandos.
E.2.2. Actualizar
svn info URL_de_la_copia_de_trabajo
svn update [-r rev] RUTA
A da de hoy, la actualizacin no es una operacin atmica en Subversion. Por tanto, TortoiseSVN primero
encuentra la revisin HEAD del repositorio, y luego actualiza todos los tems a ese nmero de revisin
en concreto, evitando crear as una copia de trabajo mezclada.
165
E.2.4. Confirmar
En TortoiseSVN, el dilogo de confirmacin utiliza varios comandos Subversion. La primera fase es una
comprobacin del estado que determina los tems de su copia de trabajo que potencialmente pueden ser
confirmados. Puede revisar la lista, comparar los ficheros contra BASE y seleccionar los tems que desea
incluir en la confirmacin.
E.2.5. Diff
svn diff RUTA
Si utiliza Diff desde el men contextual principal, est comparando un fichero modificado contra su
revisin BASE. La salida del comando CLI anterior tambin hace sto y produce la salida en formato
diff unificado. Sin embargo, esto no es lo que TortoiseSVN utiliza. TortoiseSVN utiliza TortoiseMerge
166
167
E.2.11. Resuelto
svn resolved RUTA
E.2.12. Renombrar
svn rename RUTA_ACTUAL NUEVA_RUTA
E.2.13. Eliminar
svn delete RUTA
E.2.14. Revertir
svn status -v RUTA
La primera fase es una comprobacin del estado que determina los tems en su copia de trabajo que pueden
ser revertidos potencialmente. Puede revisar la lista, comparar los ficheros contra BASE y seleccionar
los tems que desea incluir en la operacin de revertir.
Cuando pulsa Aceptar, tiene lugar la operacin de revertir en Subversion. Si ha dejado todas las casillas
de seleccin de ficheros sin tocar tal y como aparecieron, TortoiseSVN utilizar una nica operacin
revertir recursivamente (-R) en la copia de trabajo. Si ha deseleccionado algn fichero, entonces se debe
especificar individualmente cada ruta en la lnea de comandos de la operacin de revertir.
E.2.15. Limpieza
svn cleanup RUTA
168
E.2.19. Cambiar
svn info URL_de_la_COPIA_DE_TRABAJO
svn switch [-r rev] URL RUTA
E.2.20. Fusionar
svn merge [--dry-run] --force URL_Origen@revN URL_Destino@revM RUTA
Simular hace la misma fusin con la opcin --dry-run.
E.2.21. Exportar
svn export [-r rev] [--ignore-externals] URL RUTA_Exportacin
Esta forma se utiliza cuando se accede desde una carpeta sin versionar, y la carpeta se utiliza como el
destino.
La exportacin de una copia de trabajo a otro lugar se hace sin utilizar las bibliotecas de Subversion, por
lo que no hay lnea de comandos equivalente.
Lo que TortoiseSVN hace es copiar todos los ficheros al nuevo destino mientras le muestra el progreso
de la operacin. Opcionalmente, pueden exportarse tambin los ficheros y/o carpetas sin versionar.
En ambos casos, si se marca Omitir externos, utilice la opcin --ignore-externals.
E.2.22. Relocalizar
169
E.2.24. Aadir
svn add RUTA...
Si haba seleccionado una carpeta, en primer lugar TortoiseSVN la escanea recursivamente en busca de
tems que puedan ser aadidos.
E.2.25. Importar
svn import -m "Mensaje de registro" RUTA URL
Mensaje de registro aqu representa los contenidos del cuadro de texto Mensaje de Registro.
Puede estar vaco.
E.2.26. Autora
svn blame -r N:M -v RUTA
svn log -r N:M RUTA
Si utiliza TortoiseBlame para ver la informacin de autora, se necesita tambin el fichero de registro
para mostrar los mensajes de registro en un texto de ayuda. Si visualiza la autora como un fichero de
texto, no se necesita esta informacin.
170
Apndice F. Detalles de
implementacion
Este apndice contiene una discusin ms detallada sobre la implementacin de algunas de las
caractersticas de TortoiseSVN.
La sobreimpresin Eliminado representa el estado eliminado, donde un tem est marcado para su
eliminacin; o el estado faltante, donde un tem no est presente. Naturalmente un tem que est
faltante no puede tener una sobreimpresin sobre si mismo, pero la carpeta padre puede marcarse si uno
de sus tems hijo falta.
La sobreimpresin Aadido se utiliza simplemente para representar el estado aadido cuando un tem
ha sido aadido al control de versiones.
La sobreimpresin En Subversion se utiliza para representar un tem que est en el estado normal, o
un tem versionado cuyo estado an se desconoce. dado que TortoiseSVN utiliza un proceso de cach
en segundo plano para obtener los estados, puede llevar unos pocos segundos antes deque se actualice
la sobreimpresin.
La sobreimpresin Necesita bloqueo se utiliza para indicar cundo un fichero tiene la establecida la
propiedad svn:needs-lock. Para las copias de trabajo que fueron creadas utilizando Subversion 1.4.0
y posteriores, el estado svn:needs-lock se guarda en la cach local por Subversion y se utiliza para
determinar cundo mostrar esta sobreimpresin. Para copias de trabajo que estn en formato pre-1.4.x,
171
Detalles de implementacion
TortoiseSVN muestra esta sobreimpresin cuando el fichero tiene el estado de slo-lectura. Tenga en
cuenta que Subversion automticamente actualiza las copias de trabajo cuando las actualiza, aunque el
almacenamiento en cach de la propiedad svn:needs-lock puede no realizarse hasta que el propio
fichero se actualice.
La sobreimpresin Bloqueado se utiliza cuando la copia de trabajo local contiene un bloqueo para ese
fichero.
La sobreimpresin Ignorado se utiliza para representar un tem que est en el estado ignorado, bien por
un patrn global de ignorado, o por la propiedad svn:ignore de la carpeta padre. Esta sobreimpresin
es opcional.
172
ps xa | grep sshd
y busque trabajos de ssh.
Un punto a tener en cuenta es que si compila Subversion desde el cdigo fuente y no proporciona ningn
argumento a ./configure, Subversion crea un directorio bin bajo /usr/local y pone sus binarios
ah. Si desea utilizar el modo tnel con SSH, debe asegurarse de que el usuario que haga login via SSH
necesita ejecutar el programa svnserve y algunos otros binarios. Por esta razn, o bien ponga /usr/
local/bin en la variable PATH, cree enlaces simblicos de sus binarios en el directorio /usr/sbin
o en cualquier otro directorio que est incluido en el PATH.
Para comprobar que todo est bien, haga login como el usuario de destino con SSH y escriba:
which svnserve
Este comando le dir si se puede alcanzar svnserve.
Cree un nuevo usuario que utilizaremos para acceder al repositorio svn:
useradd -m svnuser
Asegrese de otorgar a este usuario todos los derechos de acceso al repositorio.
173
Cree una nueva cuenta de usuario de Windows svnuser que utilizaremos para acceder al repositorio.
Asegrese de otorgar a este usuario todos los derechos de acceso al repositorio.
Si an no hay fichero de contraseas, cree uno desde la consola Cygwin utilizando:
ls -l ficherodeclave*
ver dos ficheros, ficherodeclave y ficherodeclave.pub. Como puede suponer, el fichero
.pub es el fichero de la clave pblica, y el otro es el de la clave privada.
Aada la clave pblica a las que ya estn en la carpeta .ssh dentro del directorio home del usuario
svnuser:
174
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
svn+ssh://svnuser@ConexionSvn/repos
Qu significa esa URL? El nombre de esquema es svn+ssh lo que indica a TortoiseSVN cmo manejar
las peticiones al servidor. Despus de la doble barra, especifica el usuario con el que conectarse al
175
servidor, en nuestro caso svnuser. Despus de la @ proporcionamos nuestro nombre de sesin PuTTY.
Este nombre de sesin contiene todos los detalles como dnde encontrar la clave privada y la direccin
IP o DNS del servidor. Por ltimo debemos proporcionar la ruta al repositorio, relativa a la raz del
repositorio en el servidor, como se especifica en el fichero authorized_keys.
Pulse en Aceptar y debera ser capaz de navegar por el contenido del repositorio. Si es as, ahora tiene
ejecutndose un tnel SSH con TortoiseSVN.
Tenga en cuenta que por defecto TortoiseSVN utiliza su propia versin de Plink para conectarse. Esto
evita que aparezca una ventana de consla para cada intento de autenticacin, pero tambin significa que
no hay ningn lugar donde aparezcan los mensajes de error. Si recibe el error No es posible escribir
en la salida estndar, puede intentar especificar Plink como el cliente en la configuracin de red de
TortoiseSVN. Esto le permitir ver el mensajes de error real generado por Plink.
svn+ssh://ConexionSvn/repos
Esta vez slo proporcionamos el nombre de la sesin PuTTY ConexionSvn al cliente SSH que utiliza
TortoiseSVN (TortoisePlink.exe). Este cliente buscar en la sesin todos los detalles necesarios.
At the time of writing PuTTY does not check all saved configurations, so if you have multiple
configurations with the same server name, it will pick the first one which matches. Also, if you edit the
default configuration and save it, the auto login user name is not saved.
A mucha gente le gusta utilizar Pageant para almacenar todas sus claves. Dado que una sesin PuTTY
puede almacenar una clave, no siempre necesitar Pageant. Pero imagine que quiere almacenar claves
para diferentes servidores; en este caso necesitara editar todas las sesiones PuTTY una y otra vez,
dependiendo del servidor al que se intente conectar. En esta situacin utilizar Pageant tiene sentido,
porque cuando PuTTY, Plink, TortoisePlink o cualquier otra herramienta basada en PuTTY intente
conectarse a un servidor SSH, comprueba todas las claves privadas que Pageant mantiene para iniciar
la conxin.
Para esta tarea, simplemente ejecute Pageant y aada la clave privada. Debe ser la misma clave privada
que defini en la sesin PuTTY anteriormente. Si utiliza Pageant para el almacenamiento de claves
privadas, puede eliminar la referencia al fichero de clave privada en su sesin PuTTY almacenada. Por
supuesto que puede aadir ms claves para otros servidores, o para otros usuarios.
Si no quiere repetir este procedimiento tras cada reinicio de su cliente, entonces debera colocar Pageant
en el grupo de auto-inicio de su instalacin de Windows. Puede aadir las claves con las rutas completas
como argumentos de lnea de comandos de Pageant.exe
La ltima forma de conectarse con un servidor SSH es simplemente utilizando esta URL dentro de
TortoiseSVN:
svn+ssh://svnuser@100.101.102.103/repos
svn+ssh://svnuser@midominio.com/repos
Como puede ver, no utilizamos una sesin almacenada PuTTY sino una direccin IP (o nombre de
dominio) como objetivo de la conexin. Tambin proporcionamos el usuario, pero puede que se pregunte
cmo se encontrar el fichero de clave privada. Dado que TortoisePlink.exe es simplemente una versin
modificada de la herramienta estndar Plink dentro del conjunto de utilidades de PuTTY, TortoiseSVN
tambin intentar utilizar todas las claves almacenadas en Pageant.
176
Glosario
Actualizar
Aadir
Autora
Este comando es slo para ficheros de texto, y anota cada lnea para
mostrar la revisin del repositorio en la que se cambi por ltima
vez, y el autor que hizo ese cambio. Nuestra implementacin GUI
se llama TortoiseBlame y tambin le muestra la fecha y hora de la
confirmacin y ell mensaje de registro cuando mueve el ratn por
encima del nmero de revisin.
BDB
Bloqueo
When you take out a lock on a versioned item, you mark it in the
repository as non-committable, except from the working copy where
the lock was taken out.
Cambiar
Confirmar
Conflicto
Copia de trabajo
Esta es su caja de arena local, el rea donde trabaja con los ficheros
versionados, y normalmente se encuentra en su disco duro local.
Puede crear una copia de trabajo al Obtener desde un repositorio,
y devolver sus cambios al repositorio utilizando Confirmar.
Copiar
177
Glosario
Diff
Eliminar
When you delete a versioned item (and commit the change) the item
no longer exists in the repository after the committed revision. But
of course it still exists in earlier repository revisions, so you can still
access it. If necessary, you can copy a deleted item and resurrect
it complete with history.
Exportar
FSFS
Fusionar
GPO
Historial
Importar
Limpieza
Obtener
Parche
Propiedad
178
Glosario
Rama
Registro
Relocalizar
repositorio
Resolver
Revertir
Revisin
179
Glosario
revisin BASE
revisin HEAD
SVN
180
ndice
Smbolos
'copia de trabajo' no versionada, 115
A
Acceso, 33
acceso directo, 155
acciones en el lado del servidor, 110
actualizar, 53, 152
add files to repository, 42
alabanza, 107
aadir, 77
anotar, 107
Apache, 16
arrastrar con el botn derecho, 40
arrastrar-y-soltar, 40
autentificacin, 41
Autentificacin mltiple, 22
auto-props, 90
automatizacin, 160, 163
autora, 107
Autorizacin, 20
B
bloqueando, 103
C
cach de registro, 137
cambiar, 94
cambios, 154
carpeta .svn, 144
carpeta _svn, 144
case change, 83
changelist, 61
CLI,
click con el botn derecho, 38
cliente de lnea de comandos,
Columnas del explorador, 58
COM,
comparar, 73
comparar ficheros, 154
comparar revisiones, 74
comprobacin de actualizacin, 157
comprobar nueva versin, 157
concordancia de patrones, 80
configuracin, 122
confirmar, 49, 49
conflicto, 9, 55
conflictos de fusin, 101
control de errores, 117
control de versiones,
controlador de dominio, 21, 157
copia de seguridad, 35
copia de trabajo, 10
copiar, 92, 110
copiar ficheros, 78
corrector ortogrfico, 3
Crear
Cliente de lnea de comandos, 32
TortoiseSVN, 32
crear copia de trabajo, 46
crear repositorio, 32
D
desenganchar del repositorio, 156
deshabilitar funciones, 158
deshacer, 85, 153
deshacer cambio, 153
deshacer confirmacin, 153
despliegue, 157
desversionar, 116, 156
diccionario, 3
diferenciando, 60
diferenciar, 73, 106
diferenciar imgenes, 75
diff unificado, 106
dominio de Windows, 21
E
editar registro/autor, 69
eliminar, 82, 82
eliminar versionado, 156
enlace, 36
enlace de obtener, 36
entradas de men contextual, 158
enviar cambios, 49
estadsticas, 70
estado, 56, 58
estado de la copia de trabajo, 56
etiqueta, 78, 92
expandir palabras claves, 88
expansin de comodines, 80
explorador, 1
exportar, 115
exportar cambios, 74
externos, 44, 154
extraccin de versin,
F
FAQ,
ficheros especiales, 44
ficheros temporales, 42
ficheros/carpetas no versionados, 79
filtro, 70
fusionar, 95
dos rboles, 98
rango de revisiones, 96
reintegrar, 98
G
ganchos, 36
ganchos cliente, 140
181
ndice
GPO, 157
grfico, 113
grfico de revisin, 113
H
herramientas de diferenciacin, 76
herramientas de fusin, 76
historial, 63
I
iconos, 56
ignorar, 79
ignorar global, 123
importar, 42
importar en el sitio, 44
ndice de proyectos, 20
instalacin, 3
interfaz COM de SubWCRev, 148
Libro de Subversion,
limpieza, 86
lnea de comandos, 160, 163
rama, 78, 92
registro, 63, 144
registro de fusin, 101
relocalizar, 117
renombrar, 83, 110, 152
renombrar ficheros, 78
reorganizar, 152
repositorio, 5, 42
repositorios externos, 44
resolver, 55
revertir, 85, 153
revisin, 12, 113
rutas UNC, 33
manejador de arrastre, 40
marcar una entrega, 92
maximizar, 42
mensaje de registro, 152, 152
mensaje vaco, 152
mensajes de confirmacin, 63
mensajes de registro, 63
Men contextual, 38
merge reintegrate, 102
merge tracking log, 68
modificaciones, 58
mod_authz_svn, 17, 20
mover, 83
mover el servidor, 117
mover ficheros, 78
moviendo, 152
msi, 157
N
navegador de repositorios, 110
NTLM, 21
nmero de versin en los ficheros,
O
obtener, 46
obtener cambios, 53
P
packs de idioma, 3
palabras claves, 88
parche, 106
SASL, 29
scripts gancho, 36, 140
scripts gancho en el lado del servidor, 36
seguimiento de bugs, 117
seguimiento de incidencias, 117
seguir de bugs, 117
servidor movido, 117
servidor proxy, 132
shell de Windows, 1
sitio web, 36
sobreimpresiones, 56, 171
slo lectura, 103
sonidos, 122
SSL, 23
SSPI, 21
Subversion properties, 87
SubWCRev,
SVNParentPath, 18, 20
SVNPath, 18
svnserve, 26, 27
SVN_ASP_DOT_NET_HACK, 158
T
TortoiseIDiff, 75
traducciones, 3
U
Unidad de red, 33
unidades SUBST, 131
URL cambiada, 117
URL del repositorio cambiada, 117
182
ndice
V
ver cambios, 56
versin, 157
versionar ficheros nuevos, 77
ViewCS, 121
vnculo TortoiseSVN, 36
visor de repositorios, 121
visor de servidores, 110
vista web, 121
VS2003, 158
W
WebDAV, 16
183