2010-05-25 17 views
13

Si se creó una copia de trabajo (copia local) de una rama, vamos a llamarla A. La codificación se realizó en la rama A, pero la rama A estaba "Cerrada" para commits, y se abrió la rama b ¿Cómo combino mis cambios de copia de trabajo en la Rama B y me comprometo con la rama B, sin comprometer primero mis cambios a la rama A?Copia de trabajo SVN a diferentes fusiones de filiales sin comprometerse a Copia de trabajo Sucursal

tronco -> rama A.

I checked out branch A and made changes. 
    Branch A was closed to commits. 

Nueva Sucursal creado a partir de la rama A. rama A -> B. rama

I would like to commit my working copy changes (currently pointing at Branch A into branch B without commiting to Branch A) 

Respuesta

16
  1. copia de seguridad marca de su copia de trabajo.
  2. svn switch en rama B
  3. revisar los cambios (revisión base puede ser diferente, y SVN no ciego, textual tonto combina sólo), la resolución de conflictos, en su caso
  4. cometer

haciendo cosas como esta con una Copia de trabajo con cambios no confirmados es peligroso. Si algo sale mal o si hay demasiados cambios conflictivos, retroceda a su versión respaldada, cree una rama temporal desde la revisión base de su copia de trabajo A, cambie a eso y confirme sus cambios para que estén en un lugar seguro. A continuación, fusione esa rama en B de la forma que desee y elimínela posteriormente.

Recuerde el mantra svn: Commit temprana, a menudo cometen. Si no me he comprometido con los cambios por más de un día de trabajo, me pongo nervioso. Por lo general, creo una rama de características para cualquier desarrollo que dure más de unas pocas horas. y comprometerse regularmente con eso. Cuando termine, lo fusionaré en el lugar de donde proviene y lo eliminaré luego.

+0

Esto funcionó. No necesitaba la copia de seguridad, pero era bueno tenerla porque no quería perder varios días de trabajo. ¡Me gusta el svn mantra! –

2

que tener mucho cuidado, me comprometo mis cambios a una rama privada (vamos a llamarlo C), y luego fusionar la rama C a la nueva rama-commits abierto para-B.

  1. cd al directorio de trabajo con los cambios que desea comprometerse
  2. svn copy . C
  3. cd .. a su carpeta de espacio de trabajo con las cajas
  4. svn co B
  5. cd en el directorio B
  6. svn merge la revisión de la etapa 2
  7. Revisar cambios.
  8. ¡Comprometerse!
Cuestiones relacionadas