tag subversion entre diferencia create crear con como branches svn tortoisesvn

subversion - svn manual



Dejar de lado en TortoiseSVN? (6)

Pasé de TFS a SVN (TortoiseSVN) con mi empresa actual. Realmente echo de menos la característica "Shelve" de TFS. He leído varios artículos sobre cómo "dejar de lado" con SVN, pero no he leído nada que brinde una experiencia muy simple para "dejar de lado" el trabajo.

Idealmente, me gustaría añadir elementos adicionales al menú contextual de TortoiseSVN - "Dejar de lado" y "Unshelve". "Estantería" eliminaría el conjunto de estante actual y cargará el directorio de trabajo en una ruta adecuada definida por las opciones del usuario. "Unshelve" fusionaría el conjunto con la copia de trabajo.

Existe algo como esto? ¿Alguien puede sugerir alguna forma de "piratear" esta característica en la GUI?

Nota: El siguiente enlace realmente no logra la experiencia del usuario que estaba buscando:

Subversión de estanterías

Una de las mejores cosas de TFS Shelve es lo fácil que es usar ...


Las estanterías en SVN comienzan a desplegarse con la versión 1.10, consulte las Notas de la versión


No creo que SVN tenga esta característica integrada en el producto del servidor. Tampoco creo que algo así se emule en ningún cliente que haya utilizado, incluido TortoiseSVN.

Para evitar este problema, he recurrido al uso de un DVCS como Git o Mercurial , para permitirme ramificar / fusionar / archivar localmente antes de volver a enviar el contenido a SVN. Podría decirse que es un poco complicado, pero funciona muy bien.


Otra opción es utilizar el recurso ''Crear parche'' en TortoiseSvn para crear un archivo de parche y revertir los cambios. El archivo de revisión se puede volver a aplicar más adelante para volver a donde estaba.

Sin embargo, puede terminar con algunas fusiones pegajosas si tiene que actualizar la revisión de copia de trabajo.


Puede usar un DVCS, pero de alguna manera es un kludge. ''Estanterías'' en un DVCS almacena sus cambios solo localmente. Solo es útil si desea realizar un checkpoint de su trabajo para deshacerlo si lo rompe con más trabajo, pero preferiblemente desea guardar su trabajo en el servidor.

Una forma de hacer esto en SVN sin un comando shelve explícito es cambiar su copia de trabajo a una ubicación svn diferente y confirmar allí en lugar de en su repositorio principal. Esto es efectivamente como crear una sucursal temporal y trabajar en eso durante la duración de su trabajo. No creo que tengas que unirte ya que SVN lo hará por ti cuando cambies, ya que se mantendrán las modificaciones locales.

Lamentablemente, no puede cambiar a una ubicación inexistente, por lo que la primera vez que haga esto, tendrá que crear la ''rama'' para guardarla. Supongo que todo podría ser automatizado.


Si usted entiende cómo funcionan las ramas de SVN, emular a Shelve en SVN es una obviedad:

  1. Crear una rama en el repositorio (en el servidor)
  2. Cambia tu copia local a ella
  3. Confirme sus cambios a la nueva rama
  4. Cambia tu copia local al tronco

Cuando esté listo para volver a sus cambios archivados ("unshelve"), simplemente combine la rama de la estantería con su copia local.

Si usted no conoce el SVN de la línea de comando ni el SVN de Tortoise lo suficiente como para hacer lo anterior, aquí hay una instrucción paso a paso muy detallada sobre cómo hacerlo en Tortoise SVN:

  1. Realice la "Actualización de SVN" para actualizar su copia de trabajo a la última versión del enlace troncal. De esta forma, las únicas diferencias entre su copia local y el troncal son sus cambios.
  2. En el menú contextual, seleccione "Sucursal / Etiqueta"
  3. La opción "HEAD version in the repository" está seleccionada por defecto. Guarda eso.
  4. Cambie "A la URL" para especificar el nombre de la rama, por ejemplo, http://server/repository/project1/branches/shelf1
  5. Marca la casilla "Cambiar copia de trabajo a nueva rama / etiqueta"
  6. Haga clic en Aceptar para crear la rama y cambiar a ella
  7. Haga "SVN Commit ..." y envíe sus cambios a la rama recién creada
  8. En el menú contextual, selecciona "Cambiar ..."
  9. Cambie el "A URL" a la URL troncal ej. http://server/repository/project1/trunk
  10. Haga clic en Aceptar para volver al tronco

Consulte este enlace para obtener más detalles y el equivalente en línea de comandos de lo anterior:
Estantes en Subversion