¿Cuál es el uso correcto de las carpetas de trabajo y los marcadores en Versiones (Cliente de Subversion) para los repositorios locales?

2

He estado utilizando Versions, el popular cliente de Subversion para OS X, para conectarme a los repositorios remotos de Subversion. Estos repositorios remotos se guardan como marcadores en la barra lateral izquierda. Sin embargo, cuando se trata de repositorios locales, debo admitir que todavía estoy un poco desorientado. Veo que Versiones tiene además de marcadores, el concepto de carpetas de trabajo. No estoy seguro de si las carpetas de trabajo están destinadas a ser utilizadas por separado de los marcadores o si las carpetas de trabajo están destinadas a colocarse dentro de los marcadores. ¿Cuál es la forma correcta de configurar y revisar un repositorio local?

¿Se supone que la carpeta A del repositorio local se mantenga separada de la carpeta B que contiene los archivos que deseo mantener bajo el control de versiones? ¿Puede la carpeta B ser una subcarpeta de A? Además, en cuanto a cómo funciona internamente: ¿Dónde se guardan las versiones anteriores de los archivos en el sistema de archivos?

Creé un repositorio local usando Versiones y vi en mi sistema de archivos que muchos archivos y carpetas del sistema Subversion se crearon en la carpeta del repositorio local. En ninguna parte vi las "ramas", "etiquetas" y "troncales" habituales que normalmente encuentro en los repositorios remotos que ya se han creado. ¿Son los creados a mano?

Se agradecería alguna aclaración sobre los fundamentos básicos de los repositorios locales. Espero encontrar el flujo de trabajo correcto desde la configuración hasta comenzar con mi primera revisión. Gracias.

    
pregunta Christian Correa 29.09.2011 - 22:42

2 respuestas

4

He usado versiones, pero prefiero Cornerstone 2. Es un cliente mucho más robusto.

Un repositorio es una carpeta almacenada en una computadora (local o remota). Contiene todos los datos relacionados con el control de versiones de un conjunto de archivos, almacenados en una estructura de datos que la mayoría de las personas no necesitan entender.

Una carpeta de trabajo es una carpeta en su sistema local que contiene una copia de los archivos que se almacenan en la estructura de datos locos que es el repositorio.

Entonces, si tiene un repositorio local, esa carpeta se almacena en su disco duro. No debería nunca acceder a esto desde el Finder o la Terminal, o bien, por cualquier otro medio que no sea a través de su cliente SVN (Versiones).

Para trabajar con los archivos almacenados en ese repositorio local, use Versiones para "Retirar" una copia de trabajo de los archivos. Estos archivos irán a una segunda carpeta en algún lugar de su sistema de archivos. Estos archivos a los que puede acceder directamente con cualquier aplicación que flota en su barco. Después de realizar cambios en los archivos, vuelve a Versiones y verifica los archivos en el repositorio. Esta acción crea una segunda versión de los archivos dentro de la estructura de datos locos que es su repositorio.

Usando versiones, puede moverse hacia adelante y hacia atrás a través de estas diferentes versiones de sus archivos. Cualquiera que sea la versión en la que quiera trabajar, entonces se carga en su copia de trabajo o , puede retirar una segunda copia de trabajo si desea trabajar con una versión diferente de los archivos, mientras mantiene su directorio de trabajo actual como bien.

Aquí es cómo organizo mis repositorios SVN y directorios de trabajo.

Primero: todos los repositorios se almacenan en ~ / svnroot. Tengo un par de tipos de proyectos para los que uso SVN, por lo que la estructura se ve así.

~/svnroot/scripts/project1
~/svnroot/scripts/project2
~/svnroot/documentation/project3
etc etc etc

Tenga en cuenta que en cada ejemplo anterior, la última parte de la ruta anterior es el repositorio real.

Segundo: Luego creo copias de trabajo de estos repositorios. Los guardo en la misma estructura en mi directorio personal. Se parece a esto.

~/scripts/project1
~/scripts/project2
~/documentation/project3
etc etc etc    

Tenga en cuenta la ausencia del directorio svnroot en estos ejemplos ... Además, tenga en cuenta que la última parte de la ruta anterior es el directorio que está bajo el control de versiones, también denominado Copia de Trabajo. Estos son los archivos que puede editar al contenido de su corazón.

Luego, para mantener las cosas organizadas, creo los scripts y los directorios de documentación en la barra lateral de Versiones y coloco las entradas de los directorios y repositorios en funcionamiento aquí.

Intentaré recordar proporcionar una captura de pantalla cuando llegue a casa esta noche.

Tercero: Ahora, coloque los archivos que desea bajo el control de versiones en las carpetas de Working Copy en el Finder. Volver a las versiones y comprobar los archivos en el repositorio. Ahora estás listo y deberías poder trabajar.

Las versiones no generan etiquetas, ramas y enlaces troncales. Si desea utilizarlos en su proyecto, cree cada carpeta en la Copia de trabajo y luego insértelos en el repositorio. Para crear una etiqueta o una rama, deberá consultar el sitio web de Versiones. Su documentación de ayuda cubre ese elemento ... y debe hacerse en la vista de repositorio, no en la vista de copia de trabajo.

enlace

Ah, y "Marcadores" es solo el término que utiliza Versiones para realizar un seguimiento de tus repositorios y copias de trabajo en la barra lateral de la ventana principal.

    
respondido por el TheWellington 29.09.2011 - 23:40
2

He estado utilizando Versiones durante un par de años, pero nunca le presté atención a la idea de "marcadores", a pesar de que lo he usado tanto en repositorios locales como en repositorios remotos con copias de trabajo locales. Por lo tanto, lo busqué.

Parece que "marcadores" es solo la lista de contenido de Versions.app a la que te has conectado, ya sea un recurso svn remoto para navegar, o una copia local de algo en lo que estás trabajando de forma remota. Hay algunos consejos & Trucos para configurar Versiones para enlazar & organiza con qué estás trabajando y puedes consultar eso en la ayuda (Ayuda > Versiones Ayuda > Flujo de trabajo de las versiones > Marcadores).

Entonces, el resto de la respuesta a su pregunta es un consejo estándar de svn, y lo que @TheWellington escribió aquí parece correcto en ese tema. Las "carpetas de trabajo" son copias locales de algún aspecto de su repositorio remoto. Por lo general, el código se encuentra en un servidor remoto o en un "repositorio local" en otro lugar de su disco que no toca directamente. Usted crea una "carpeta de trabajo" cuando realmente desea hacer cambios. Esto puede vincularse al "troncal", o una "rama" del proyecto. Le sugiero que lea el libro de SVN para conocer las "mejores prácticas" relacionadas con estos. Puede comenzar con estos enlaces:

Como señaló @VxJasonxV, depende de usted crear la estructura de directorio svn estándar (troncal, etiquetas, sucursales) a mano, y es un buen consejo para hacerlo. Eso hace que sea mucho más fácil retroceder en el tiempo, explorar rutas alternativas y saber exactamente qué código / datos están asociados con una cosa en particular que has liberado en el mundo salvaje.

Finalmente, para que quede claro, nunca debe interactuar con los archivos del "repositorio local" directamente en el disco. Trátelo como una caja negra muy críptica (que es), y use el cliente svn (Versions.app o línea de comandos) para acceder a sus datos, examinar el historial, etc.

    
respondido por el Michael H. 29.09.2011 - 23:54

Lea otras preguntas en las etiquetas