¿Qué es una copia de trabajo y qué hace "switching" por mí en Tortoise SVN?


Tengo una aplicación de software y he alcanzado un hito importante, la versión 2.0.

Decidí que quiero etiquetar esta versión como "Versión-2.0", así que he nombrado esta instantánea. También creé una rama "Version-2.0" en caso de que necesite arreglar algo y fusionarlo de nuevo en mi tronco.

Después de leer el archivo de ayuda SVN de Tortoise, me informa que puedo cambiar mi "copia de trabajo" a una rama recién creada.

¿Qué significa esto?

Actualmente tengo:

/Project / Trunk /
/ Project / Tags /
/ Project / Branches /

Todos se retiraron. Entonces, ¿cuál sería el punto de "cambiar"? Actualmente, solo voy a mi carpeta / trunk y hago mi trabajo. Y cuando hice mi etiqueta y rama, creó carpetas en mi carpeta/ Tags /y/ Ramas / después de hacer una actualización.

¿Por qué no iría a /Branches/Experiemental-v3.0/ y haría mi trabajo allí si quisiera?

Puede alguien explicar el concepto de "Copia de Trabajo" y "Cambio" para mí? ¿Qué me estoy perdiendo? ¿La gente generalmente no tiene todo el repositorio revisado, es eso?

Author: Montag451, 2009-02-24

5 answers

Una copia de trabajo es la copia que ha enviado a su área de trabajo. No importa si es una rama o del tronco. Es en lo que estás trabajando.

Puede cambiar entre ramas (o más correctamente copias) del mismo padre con svn switch. Esto básicamente dirá, lo que es diferente entre la copia de trabajo actual y la rama estoy cambiar a. Luego realiza una actualización en su copia de trabajo actual a la revisión de la rama a la que cambia.

So copia de trabajo es su pago, sin embargo, se obtuvo.

Cambiar es simplemente cambiar la rama a la que su copia de trabajo se compromete. Piense en ello como cambiar el puntero en el repositorio donde irán sus commits. Con la ayuda de adquirir cualquier diferencia de la rama a su área de trabajo.

 41
Author: ng.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-09 06:51:41

Generalmente no es necesario tener todo el repositorio revisado. Las ramas y etiquetas en subversion están destinadas a ser baratas - es decir, no crean copias de archivos idénticos, solo hacen referencia a ellos. Cuando tienes todo el repositorio revisado, cuando alguien ramifica o etiqueta por cualquier razón, de repente está multiplicando el espacio utilizado en tu disco duro local.

Puede tener tantas partes del repositorio como necesite. Así que usted podría tener una carpeta llamada 'tronco' que es una copia de trabajo de solo el tronco, otra 'version2' que sería una copia de trabajo de su rama. De esta manera, las etiquetas adicionales que se crean no se revisan.

O puedes tener un checkout llamado 'project', y si originalmente apunta a trunk, puedes cambiarlo a una de las ramas o etiquetas - es una forma de reutilizar el checkout original para que no tengas que volver a tener todo de nuevo.

Puede ser muy útil para hacer esto que está trabajando en el tronco y de repente te das cuenta de que necesitas enviar tus cambios a una rama, tal vez porque se volvieron demasiado experimentales. Para hacer esto, ramifica desde tu copia de trabajo, cambia a la nueva rama luego commit y tus cambios irán a la rama en lugar de a trunk.

 18
Author: Jim T,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-24 10:35:46

La copia de trabajo es su copia del código que ha comprobado. Normalmente, echarías un vistazo solo a / Project / trunk/, no a toda la estructura del repositorio. Cambiar es cambiar la raíz de su copia de trabajo. La forma en que trabaja con SVN no es cómo debe hacerse.

 3
Author: vartec,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-24 10:28:04

Has revisado todo el árbol del proyecto - esto probablemente no es lo que quieres. Para el trabajo de trunk, echa un vistazo a una copia arraigada en 'trunk', no desde la raíz del proyecto. Del mismo modo, para el trabajo de rama echa un vistazo solo a la rama que desea.

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-24 10:32:26

Su copia de trabajo es cualquier carpeta en su disco duro que haya utilizado para comprobar un proyecto de subbversión. Puede "cambiar" a un proyecto diferente para esa copia de trabajo, de modo que el contenido versionado se asemeje al contenido de ese otro proyecto.

Esto es útil para cambiar de trunk a branch, sin tener que revisar una nueva copia. Por ejemplo, puede ahorrarle algo de tiempo de compilación, ya que los archivos no versionados (sus objetos compilados, bibliotecas, ejecutables) no se eliminan o cambiar.

Dave

 1
Author: Dave Van den Eynde,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-24 16:19:27