2009-02-24 7 views
51

Tengo una aplicación de software y he alcanzado un hito importante, la versión 2.0.¿Qué es una copia de trabajo y qué significa "cambio" para mí en Tortoise SVN?

Decidí que quería etiquetar esta versión como "Versión 2.0", por lo que he denominado esta instantánea. También creé una rama "Versión 2.0" en caso de que necesite arreglar algo y fusionarlo de nuevo en mi troncal.

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

¿Qué significa esto?

Actualmente, tengo:

/proyecto/trunk/
/proyecto/Etiquetas/
/proyecto/Ramas/

Todo el check out. Entonces, ¿cuál sería el sentido de "cambiar"? Actualmente, solo voy a la carpeta/trunk y hago mi trabajo. Y cuando hice mi etiqueta y mi rama, creó carpetas en mi carpeta/Tags/y/Branches/después de que hice una actualización.

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

¿Alguien me puede explicar el concepto de "Copia de trabajo" y "Cambio"? ¿Qué me estoy perdiendo? ¿La gente en general no tiene todo el repositorio revisado, es eso?

Respuesta

41

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

Puede alternar entre ramas (o copias más correctas) del mismo elemento primario con el interruptor svn. Esto básicamente dirá, qué es diferente entre la copia de trabajo actual y la rama a la que me cambio. A continuación, realiza una actualización en su copia de trabajo actual a la revisión de la rama a la que se cambia.

Así que la copia de trabajo es su pago, pero se obtuvo.

El cambio solo está cambiando la rama a la que se compromete su copia de trabajo. Piense en ello como cambiar el puntero en el repositorio donde irán sus compromisos. Con la ayuda de adquirir cualquier diferencia de la rama a su área de trabajo.

+4

pero esto no responde la pregunta, King pregunta si la gente generalmente no tiene todas las carpetas revisadas. como si entro en la carpeta /Branches/Experiemental-v3.0/ y hago algunos cambios, ¿los cambios se comprometerán con esta misma carpeta en una confirmación? a quién le importa la copia de trabajo y el directorio "cambiado a". Lo que dices significa que el usuario solo tiene una copia desprotegida a la vez. – shabby

+0

Tener todas las carpetas desprotegidas no significa que tengas una réplica de svn repo. Puedo tener una carpeta que se eliminó de una sucursal, pero al realizar cualquier cambio aquí, puedo enviar las confirmaciones a una sucursal diferente si hubiera hecho un cambio de svn. – mtk

+5

Te sugiero que no temas trabajar de la manera en que te encuentras y que tengas todas tus sucursales en tu máquina local. Así es como hemos trabajado durante más de 5 años y hace la vida más simple. Beneficiarse de usar el conmutador y trabajar solo en una sucursal desprotegida, sin embargo, quería contribuir con que es totalmente correcto no hacerlo, y que todo el lote se revise, y eso funciona bien para nosotros. –

1

Su copia de trabajo es cualquier carpeta en su disco duro que haya utilizado para verificar un proyecto de subbversion. Puede "cambiar" a un proyecto diferente para esa copia de trabajo, de modo que los contenidos versionados se asemejen a los contenidos de ese otro proyecto.

Esto es útil para cambiar de troncal a sucursal, sin tener que retirar 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 ni cambian.

de Dave

3

Copia de trabajo es su copia del código, que ha obtenido. Normalmente, debería verificar solo/Project/trunk /, no toda la estructura del repositorio. El cambio está cambiando la raíz de su copia de trabajo. La forma en que trabajas con SVN no es cómo debería hacerse.

1

Ha consultado el árbol completo del proyecto; probablemente esto no es lo que quiere. Para el trabajo de enlace, revise una copia enraizada en 'trunk', no desde la raíz del proyecto. Del mismo modo, para el trabajo de la sucursal, eche un vistazo únicamente a la sucursal que desee.

17

En general, no es necesario tener todo el repositorio desprotegido. Las ramas y etiquetas en subversión están destinadas a ser baratas, es decir, no crean copias de archivos idénticos, solo hacen referencia a ellos. Cuando tiene todo el repositorio revisado, cuando alguien ramifica o etiqueta por alguna razón, de repente multiplica el espacio utilizado en su disco duro local.

Puede tener tantas partes del repositorio prestadas como necesite. Por lo tanto, podría tener una carpeta llamada 'trunk' que es una copia de trabajo de solo el tronco, otra 'versión2' que sería una copia de trabajo de su sucursal. De esta forma, las etiquetas adicionales que se crean no se verifican.

O puede tener un checkout llamado 'proyecto', y si está apuntando originalmente a la troncal, puede cambiarlo a una de las ramas o etiquetas - es una forma de volver a utilizar la caja original para que no lo haga Tengo que volver a tener todo de nuevo.

Puede ser muy útil para hacer esto, estás trabajando en el tronco y de repente te das cuenta de que debes enviar los cambios a una sucursal, tal vez porque se volvieron demasiado experimentales. Para hacer esto, bifurque desde su copia de trabajo, cambie a la nueva bifurcación y luego comprométase y sus cambios irán a la bifurcación en lugar de a la troncal.

+0

En mi humilde opinión esto debería ser la respuesta aceptada. Es mucho mejor que el actualmente aceptado, ya que este realmente aborda la pregunta. –

Cuestiones relacionadas