usuario tortoise subir puerto proyecto por documentacion desvincular defecto carpeta cambiar svn sparse-checkout svn-update

tortoise - Cambiar la profundidad en la copia de trabajo de SVN existente sin volver a descargar



tortoise svn pdf (4)

Tengo una copia de trabajo de un repositorio completo de SVN, pero quiero convertirlo en una copia de trabajo dispersa debido a problemas de espacio en el disco.

Una forma de hacer esto sería:

svn up --set-depth immediates projects svn up --set-depth infinity projects/project1 svn up --set-depth infinity projects/project2

Sin embargo, eso primero eliminaría project1 y project2 , luego project2 descargarlos. Esto es realmente inconveniente, porque son muy grandes y la velocidad de carga del servidor es muy baja. Intenté esto (con otro, más pequeño, parte del repositorio, como experimento):

svn up --set-depth infinity projects/project1 svn up --set-depth infinity projects/project2 svn up --set-depth immediates projects

Pero luego el último comando simplemente deshace los primeros 2.

¿Cómo puedo configurar la profundidad de una copia de trabajo sin que la actualicen o cambien de manera inmediata, para que pueda tener la oportunidad de configurar correctamente los subdirectorios primero?

¿O hay otra forma de lograr lo que quiero, por ejemplo, copiando project1 y project2 a un lugar seguro primero?


No hay nada como revivir una vieja pregunta SO.

He estado trabajando con un problema muy similar donde me ramifico desde trunk para crear un paquete de lanzamiento, pero debido a limitaciones tengo que clonar archivos que solo están destinados para desarrolladores.

asset └── js └── some └── directories ├── assets │   ├── files ... ├── dev **<------------ This folder needs to be empty** │   ├── apis │   ├── campaign │   ├── features │   ├── modules │   ├── main.js │   └── tags └── release ├── apis    ├── data    ├── features    ├── modules    ├── main.js    └── tags

Decidí que excluiría los archivos dev para eliminar la tentación de aplicar un parche a una corrección en la rama de publicación en el directorio incorrecto.

Hago muchos rastreos dispersos para evitar grandes carpetas en el maletero, pero nunca lo he hecho de forma retrospectiva en una copia de trabajo. Parece que esto es bastante directo.

Para modificar la copia de trabajo para que asset/js/some/directories/dev esté vacío, simplemente puede ejecutar el comando svn co nuevamente en la copia de trabajo.

En mi caso, los siguientes trabajos

svn co --depth empty ^/branches/releases/latest/asset/js/some/directories/dev / asset/js/some/directories/dev

Básicamente está ejecutando un pago parcial en su copia de trabajo preexistente y esto funcionará en cualquier nivel. En el caso original, simplemente ejecutaría lo siguiente.

svn co --depth immediates ^/branches/mybranch/projects projects svn co --depth immediates ^/branches/mybranch/project1 project1 svn co --depth immediates ^/branches/mybranch/project2 project2

Para aquellos que no conocen el cursor ^ es la abreviatura de la raíz del repositorio, por lo que funciona como una ruta relativa en su repositorio, un poco como ../some/location .

La clave aquí es que no está creando una nueva copia de trabajo para solucionar su problema. Está ejecutando estos comandos en su copia de trabajo existente y restablece la profundidad de sus directorios elegidos.


Terminé pirateándolo:

  • Edite manualmente la configuración de profundidad en "inmediatos" para projects *.
  • Hard delete (no SVN delete) todos los hijos de projects excepto project1 y project2
  • svn up projects

[*] Para hacer esto, abre projects/.svn/entries en un editor de texto y cambia

b125e325-6f7c-4931-9942-d1ea1ea1441a X

dentro

b125e325-6f7c-4931-9942-d1ea1ea1441a immediates X

Nota: Esa línea que parece UUID probablemente sea diferente por repo, y X es en realidad el valor hexadecimal 0x0C que no puedo mostrar aquí en SO.


Tuve el mismo problema, pero lo que escribiste no parece ser posible en SVN 1.7, ya que el formato de los metadatos es diferente.

Esto es lo que terminé haciendo (usando los directorios en su situación). Primero, copié project1 y project2 en un lugar seguro.

svn co --depth immediates svn_url/projects

Esto verifica los projects con los directorios vacíos project1 y project2 . Luego elimino las carpetas vacías y coloco los directorios reales en su lugar. SVN me da algunos mensajes raros, pero parece funcionar y me permite comprometerme. (No funciona con --depth empty y luego copiando las carpetas, pero immediates parece funcionar).

Estoy de acuerdo en que esta situación no es ideal, ¡pero es por eso que me estoy cambiando a Git para proyectos futuros! He usado SVN durante mucho tiempo, pero está yendo más allá de toda esperanza.


Woo hoo, tuve este problema, y ​​TortoiseSVN ha admitido soluciones para agregar y eliminar un elemento de la caja dispersa. http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-checkout.html

1.Para agregar: En el explorador de Windows, haga clic con el botón derecho en la carpeta desprotegida, luego use TortoiseSVN? Repo-Browser para abrir el navegador del repositorio. Encuentre la subcarpeta que le gustaría agregar a su copia de trabajo, luego use el menú contextual? Actualizar el elemento a revisión ....

2. Para borrar; Desde su raíz, haga clic derecho / Repo-Browser / Actualizar elemento para la revisión; luego selecciona ''Excluir''.