¿Qué es un "cómo hacer" realmente simple para hacer ramificaciones y uniones usando TortoiseSVN?¿Cuál es la forma más simple de hacer ramificaciones y fusionarse usando TortoiseSVN?
Respuesta
Asumiendo que su directorio de trabajo está trabajando desde el tronco:
Haga clic derecho en la "carpeta de trabajo raíz" (este término se refiere siempre al Explorador de Windows) y hacer svn update
para actualizar su carpeta de trabajo para el último tronco.
Asegúrate de que lo que tienes es estable.
Haga clic derecho en la carpeta de trabajo de raíz y haga svn commit
para asegurarse de que cualquier cambio local se confirme en la línea troncal.
Haga clic derecho en la carpeta de trabajo raíz y haga svn repo-browser
.
Si aún no tiene una carpeta de ramas en el repositorio: haga clic derecho en la carpeta justo encima de la carpeta troncal y haga "crear carpeta" y cree una carpeta de ramas (por ejemplo, si su troncal es http://myserver/svn/MyRepository/MyProj/Trunk
, crear http://myserver/svn/MyRepository/MyProj/Branches
).
Haga clic derecho en la carpeta del tronco y haga Copy To:
y ponga el nuevo nombre de la carpeta para su sucursal. Por ejemplo: http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
. (No se preocupe, esto perderá mucho espacio ... esto se llama "copia barata" ... en realidad no copia el contenido de los archivos a menos que cambien).
Cerrar Repo-navegador.
Haga clic con el botón derecho en la raíz de su carpeta de trabajo y haga lo siguiente: svn switch
y elija el nombre de la carpeta de su nueva rama (por ejemplo, http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
). Deje todo lo demás en el valor predeterminado.
Ahora trabaja en tu sucursal. Cuando llegue a los hitos, haga clic derecho en la carpeta de trabajo raíz y haga svn commit
para comprometerse con su sucursal. (Esto no se verá en el maletero).
Si hay otros trabajando en la misma rama, haga periódicamente svn update
desde la carpeta de trabajo raíz. Esto se actualizará desde la sucursal. (NO obtendrá ninguna actualización desde el troncal.)
Independientemente de que otros trabajen en la misma rama, debe fusionar periódicamente los cambios desde el troncal para asegurarse de que su rama no será demasiado difícil de integrar más adelante. Para hacer la fusión periódica: haga clic con el botón derecho en la raíz de la carpeta de trabajo y haga svn merge
. Seleccione "Fusionar un rango de revisiones". En "URL para fusionar desde", elija la línea externa (por ejemplo, http://myserver/svn/MyRepository/MyProj/Trunk
). Deje Rango de revisión en blanco y deje todo lo demás solo. Haga clic en Siguiente. Deje todo solo y haga clic en Merge. Asegúrate de que todo siga funcionando ... corrígelo si no. Una vez que esté satisfecho, haga un svn update
normal desde la carpeta raíz de trabajo para actualizar desde la rama (esto es necesario incluso si usted es el único que trabaja en la rama, para satisfacer el SVN). A continuación, realice svn commit
para confirmar los cambios del tronco fusionado en la rama. Puede repetir este paso periódicamente cuantas veces quiera.
Una vez que su sucursal esté lista para integrarse, realice el paso anterior una última vez y realice su prueba final. Haz un compromiso final con la sucursal.
Haga clic con el botón derecho en su carpeta de trabajo raíz y haga otra svn switch
, esta vez cambiando a la troncal (por ejemplo, http://myserver/svn/MyRepository/MyProj/Trunk
).Esto tendrá el efecto de esencialmente "deshacer" todo el trabajo que ha realizado en su sucursal, pero no se preocupe ... recuperará su trabajo. (También informará muchas actualizaciones de archivos que no modificó en su sucursal, pero estos son solo cambios de "propiedad SVN" ... no se preocupe por ellos)
Haga clic derecho en su carpeta de trabajo y hacer svn merge
. Esta vez, elija "Reintegrar una sucursal". Para la URL, ingrese su sucursal (por ejemplo, http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
). Deje el resto solo y haga clic en Siguiente. Deje todo solo y haga clic en Merge. Ahora tiene todo el trabajo que ha realizado en su sucursal, así como el trabajo actualizado desde el troncal.
Haga una prueba final. Todo debería funcionar porque este debería ser el mismo conjunto de archivos que tenía en su última prueba en la sucursal. Haga clic derecho en su carpeta de trabajo raíz y haga un svn commit
. Comprometer todo, incluso los archivos en los que no trabajó en su sucursal (solo tienen cambios en la "propiedad SVN", pero confirmarlos ayuda a que SVN realice un seguimiento de todas las revisiones).
El maletero ahora tiene todas sus ramificaciones, así como todo el trabajo que se hizo en el maletero mientras trabajaba en su sucursal, y todo funciona. Además, SVN tiene el historial completo de todos los archivos, incluso las revisiones que se registraron mientras trabajaba en su sucursal.
Opcional: entre en el navegador Repo, haga clic con el botón derecho en su carpeta de sucursal (por ejemplo, http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
) y haga "eliminar". Esto no tendrá ningún efecto en el tronco y ya no necesitará la rama. (Incluso si eres realmente paranoico, no te preocupes, porque incluso puedes recuperar tu sucursal eliminada del navegador Repo en cualquier momento si realmente lo necesitas)
¡No dudes en comentar!
- 1. ¿Cuál es la forma más simple de usar SSH Python?
- 2. ¿Cuál es la forma más simple de crear un iterable vacío usando rendimiento en Python?
- 3. ¿Cuál es la forma más fácil de hacer 'es' en Java?
- 4. ¿Cuál es la forma más simple de encontrar la diferencia entre 2 veces en python?
- 5. Antlr: ¿La forma más simple de reconocer fechas y números?
- 6. ¿Cuál es la forma más simple de crear varias bases de datos de servidor HSQLDB?
- 7. ¿Cuál es la forma más elegante de hacer "foreach x except y" en PHP?
- 8. ¿Cuál es la forma más simple de definir una variable local en Oracle?
- 9. ¿Cuál es la forma más rápida de crear un blog simple?
- 10. Java: XML en una base de datos, ¿cuál es la forma más simple?
- 11. ¿Cuál es la forma más sencilla de llamar a Http GET url usando Delphi?
- 12. ¿Cuál es la forma más simple de disminuir una fecha en Javascript en 1 día?
- 13. ¿Cuál es el marco de WSGI más simple/más liviano?
- 14. ¿Cuál es la implementación más simple de RTTI para C++?
- 15. ¿Cuál es la forma más simple de obtener sangría XML con saltos de línea de XmlDocument?
- 16. ¿Cuál es la forma más simple de trazar un árbol de descomposición en Mathematica?
- 17. ¿Cuál es la forma más fácil de animar una línea?
- 18. ¿Cuál es la forma más simple de ejecutar una clase Java cada 30 segundos?
- 19. ¿Cuál es la forma más liviana de hacer una gran cuadrícula de ajedrez?
- 20. ¿Cuál es la forma más común de crear un diálogo de selección de carpeta usando Delphi?
- 21. ¿Cuál es la puerta de enlace de pago más simple posible para implementar? (usando Django)
- 22. ¿La forma más simple de incrementar una fecha en PHP?
- 23. C#: ¿cuál es la forma más fácil de restar tiempo?
- 24. Java: ¿Cuál es la forma más rápida de inyectar campos usando la reflexión?
- 25. ¿Cuál es la forma más eficiente de hacer matrices de bytes inmutables en Scala?
- 26. ¿Cuál es la mejor/más segura forma de reinstalar Homebrew?
- 27. ¿Cuál es la forma más elegante de usar procedimientos almacenados?
- 28. ¿Cuál es la forma más fácil de hacer la negación en los desencadenantes?
- 29. ¿Cuál es la forma más eficiente de hacer tabla de consulta en C#
- 30. ¿La forma más rápida de compilar una aplicación Symbian simple?
725 palabras es simple? – RedFilter
Dije "más simple" no "simple" :) – JoelFan
¡Esto ha sido muy útil, gracias! – Funka