How to check svn folder?

Dominando el SVN Checkout con TortoiseSVN

05/09/2013

Valoración: 4.96 (7651 votos)

Para cualquier desarrollador que trabaje con sistemas de control de versiones, la operación de checkout es el pan de cada día. Es el primer paso para obtener una copia local de un proyecto almacenado en un repositorio y empezar a trabajar. Si utilizas Subversion (SVN) en un entorno Windows, es casi seguro que tu herramienta de elección sea TortoiseSVN, un cliente que se integra a la perfección con el explorador de archivos. En este artículo, desglosaremos a fondo cómo realizar un checkout, explorando desde el diálogo básico hasta las funcionalidades más avanzadas que te permitirán tener un control granular sobre los archivos que descargas.

What is svn folder inside testsvn?
svn folder inside testsvn containing all the repository and revision details of the files. From the above cmd, the files inside 'testsvn' were checked out. How to use svn checkout / co command in Linux / Windows. Subversion command line tutorial with syntax and example.
Índice de Contenido

¿Dónde está el diálogo de Checkout en TortoiseSVN?

Una de las primeras dudas que surgen al usar TortoiseSVN es encontrar sus comandos. A diferencia de otros programas, no tiene una ventana principal; sus funciones están integradas en el menú contextual de Windows (el que aparece al hacer clic derecho).

Para iniciar un checkout, simplemente sigue estos pasos:

  1. Navega con el explorador de Windows hasta la carpeta donde deseas crear tu copia de trabajo local. Puede ser una carpeta vacía que hayas creado para este propósito.
  2. Haz clic derecho en un espacio en blanco dentro de esa carpeta.
  3. En el menú contextual que aparece, busca la opción SVN Checkout....

Es importante destacar una configuración por defecto que puede generar confusión. En una instalación estándar, el comando SVN Checkout... aparece directamente en el nivel superior del menú contextual. Sin embargo, también es posible que lo encuentres dentro de un submenú llamado TortoiseSVN. Si no ves el comando, revisa dentro de ese submenú. Esta ubicación puede cambiar según la configuración que hayas elegido durante la instalación o posteriormente.

¿Por qué no veo los menús de TortoiseSVN?

Si haces clic derecho en una carpeta y no ves ninguna opción de TortoiseSVN, es posible que tengas activada una opción para ocultar los menús en carpetas no versionadas. Para verificarlo, ve a TortoiseSVN → Settings → General → Context Menu y asegúrate de que la casilla "Hide menus for unversioned paths" no esté marcada.

Where is the SVN checkout dialog in TortoiseSVN?
The Checkout dialog If you enter a folder name that does not yet exist, then a directory with that name is created. In the default setting, the checkout menu item is not located in the TortoiseSVN submenu but is shown at the top explorer menu. TortoiseSVN commands that are not in the submenu have SVN prepended: SVN Checkout...

Guía Paso a Paso para un Checkout Básico

Una vez que has localizado y hecho clic en "SVN Checkout...", se abrirá una nueva ventana de diálogo. Este es el centro de mando para la operación. Veamos sus componentes principales:

  • URL of repository: Aquí debes pegar la URL del repositorio SVN del cual quieres obtener el código. Esta URL te la proporcionará el administrador del proyecto y generalmente apunta a una rama específica (como /trunk) o a un tag.
  • Checkout directory: Este campo se autocompletará con la ruta de la carpeta donde hiciste clic derecho. Puedes modificarla si lo necesitas. Si escribes el nombre de una carpeta que aún no existe, TortoiseSVN la creará por ti automáticamente.
  • Checkout Depth: Esta es una de las opciones más potentes y la exploraremos en detalle más adelante. Por ahora, puedes dejarla en su valor por defecto, "Fully recursive".
  • Omit externals: Si el proyecto utiliza "SVN externals" para vincular otros repositorios, marcar esta casilla evitará que se descarguen durante el checkout inicial.

Una vez que hayas completado la URL y verificado el directorio, simplemente haz clic en "OK". TortoiseSVN se conectará al servidor, descargará todos los archivos y carpetas, y creará la copia de trabajo. Al finalizar, verás una ventana de registro con el resumen de la operación y un botón "OK" para cerrar.

Profundidad de Checkout (Checkout Depth): Controla Exactamente lo que Descargas

Imagina que estás trabajando en un repositorio gigantesco, pero solo necesitas los archivos de un pequeño subdirectorio. Descargar todo el proyecto sería una pérdida de tiempo y espacio en disco. Aquí es donde entra en juego la opción Checkout Depth, que te permite especificar el nivel de recursividad de la descarga.

A continuación, detallamos las opciones disponibles y su utilidad:

Tabla Comparativa de Niveles de Profundidad

Opción de ProfundidadDescripciónCaso de Uso Típico
Fully recursiveDescarga el árbol de directorios completo, incluyendo todas las carpetas y subcarpetas hijas. Es la opción por defecto.Cuando necesitas trabajar en todo el proyecto o en una rama completa.
Immediate children, including foldersDescarga el directorio especificado, todos sus archivos y las carpetas hijas directas, pero deja estas últimas vacías.Para tener una vista general de la estructura del proyecto sin descargar el contenido de cada módulo.
Only file childrenDescarga el directorio especificado y solo los archivos que contiene directamente, ignorando todas las subcarpetas.Cuando solo te interesan los archivos de configuración o los documentos en la raíz de un módulo.
Only this itemDescarga únicamente la carpeta seleccionada, sin ningún archivo ni subcarpeta en su interior.Es el punto de partida ideal para un "sparse checkout" o checkout disperso.
ExcludeEsta opción no se usa en el checkout inicial, sino en la operación "Update to revision" para eliminar una carpeta de tu copia local sin borrarla del repositorio.Para "aligerar" una copia de trabajo existente, eliminando partes que ya no necesitas.

El Poder del "Sparse Checkout" (Checkout Disperso)

El concepto de Sparse Checkout se basa en la flexibilidad que ofrece la profundidad de checkout. Te permite crear una copia de trabajo "hueca" y luego "rellenarla" selectivamente solo con las carpetas y archivos que te interesan. Es la técnica definitiva para manejar repositorios masivos.

Para realizar un checkout disperso, puedes usar el botón "Choose items..." en el diálogo de checkout. Esto abrirá una nueva ventana que muestra la estructura de carpetas del repositorio, permitiéndote marcar y desmarcar exactamente qué elementos quieres incluir en tu copia de trabajo. Los elementos que no marques no se descargarán.

Where is the SVN checkout dialog in TortoiseSVN?

Un Caso Práctico: Creando un Checkout Disperso

Supongamos un repositorio con 99 carpetas de proyectos (Project01, Project02, ..., Project99), y tú solo necesitas trabajar en Project03, Project25 y en una subcarpeta específica llamada SubProj dentro de Project76.

  1. Crea una carpeta local vacía, por ejemplo, C:\MisProyectosSVN.
  2. Haz clic derecho dentro y selecciona SVN Checkout....
  3. Introduce la URL del repositorio padre (el que contiene todas las carpetas de proyectos).
  4. En "Checkout Depth", selecciona "Only this item". Haz clic en OK. Ahora tendrás una carpeta MisProyectosSVN vacía pero versionada.
  5. Haz clic derecho sobre esta nueva carpeta y elige TortoiseSVN → Repo-browser. Esto abrirá el explorador del repositorio.
  6. En el Repo-Browser, busca la carpeta Project03, haz clic derecho sobre ella y selecciona Update item to revision.... En el diálogo que aparece, deja las opciones por defecto (profundidad "Fully recursive") y haz clic en OK. TortoiseSVN descargará completamente el contenido de Project03 en tu copia local.
  7. Repite el paso anterior para la carpeta Project25.
  8. Ahora, navega dentro del Repo-Browser hasta Project76/SubProj. Haz clic derecho sobre SubProj y selecciona de nuevo Update item to revision....

El resultado es una copia de trabajo muy eficiente. En tu disco duro, tendrás las carpetas Project03 y Project25 completas. También tendrás una carpeta Project76 que solo contiene la subcarpeta SubProj (totalmente poblada), pero no el resto de los archivos que pudieran existir en Project76. SVN ha creado las carpetas intermedias necesarias sin descargar su contenido.

Preguntas Frecuentes (FAQ)

¿Qué es la misteriosa carpeta .svn?

Al realizar un checkout, notarás que en cada directorio de tu copia de trabajo aparece una carpeta oculta llamada .svn. ¡Nunca la borres! Esta carpeta contiene toda la metadata que Subversion necesita para funcionar: la URL del repositorio, la revisión de cada archivo, información sobre cambios locales, etc. Es el "cerebro" de tu copia de trabajo.

How to check out SVN repository?
If you want to know more details about the repository, then run the info command. SVN server supports checkout with its functionality. To check out a repository or file, right-click on it and select SVN checkout. Click Ok to continue for the checkout operation. Consider the below image: The SVN Checkout option will open a new window.

¿Cómo obtengo una copia limpia sin las carpetas .svn?

A veces necesitas una copia de los archivos del proyecto sin toda la metadata de SVN, por ejemplo, para empaquetar una versión para producción. Para esto, no uses "Checkout". En su lugar, haz clic derecho y selecciona TortoiseSVN → Export.... Esta operación descarga los archivos tal como están en el repositorio, pero sin crear una copia de trabajo, es decir, sin las carpetas .svn.

Mi servidor SVN es muy antiguo, ¿afecta esto?

Sí. La funcionalidad de "Checkout Depth" fue introducida en la versión 1.5 de Subversion. Si te conectas a un servidor más antiguo, aunque TortoiseSVN te muestre las opciones, el servidor no las entenderá. En la práctica, el servidor podría enviar el árbol de archivos completo, y sería el cliente (TortoiseSVN) el encargado de filtrar lo que no se necesita. Esto puede resultar en un tráfico de red innecesariamente alto. Si es posible, se recomienda actualizar el servidor.

¿Existe una alternativa por línea de comandos?

Absolutamente. Aunque TortoiseSVN es una herramienta gráfica, Subversion tiene un cliente de línea de comandos muy potente. La operación equivalente a un checkout se realiza con el comando:
svn checkout URL_DEL_REPOSITORIO CARPETA_LOCAL
O su abreviatura:
svn co URL_DEL_REPOSITORIO CARPETA_LOCAL

Dominar la operación de checkout en TortoiseSVN es fundamental para un flujo de trabajo eficiente. Al comprender y utilizar las opciones de profundidad y los checkouts dispersos, puedes adaptar tus copias de trabajo a tus necesidades exactas, ahorrando tiempo, ancho de banda y espacio en disco, especialmente en proyectos de gran envergadura.

Si quieres conocer otros artículos parecidos a Dominando el SVN Checkout con TortoiseSVN puedes visitar la categoría Guías.

Subir