Así que ahora mismo estoy aprendiendo Ruby on Rails, y estoy trabajando en el libro "Desarrollo web ágil con rieles". También he decidido que quiero darle una oportunidad a Mercurial, porque he leído sobre SCM distribuidos, y parece una situación ideal. Todavía, sin embargo, prefiero enviar mi código de forma remota a mi VPS de Linux, solo en caso de que mi disco duro decida realizar una inmersión.Ramificación con Mercurial SCM
Por lo tanto, mi pregunta es específica a la bifurcación en Mercurial. En este momento tengo configurado un repositorio remoto y puedo realizar cambios fácilmente a través de SSH (demonios incluso configuré un sitio Nginx FastCGI que también me permite enviar datos). Lo que me gustaría hacer, sin embargo, es crear ramas para cada capítulo a medida que trabajo en ellas, de modo que pueda mantener una buena historia organizada de mi progreso a través del libro. Así que esto es lo que estoy haciendo:
$ hg branch chapter-10 (do chapter 10 stuff) $ hg commit -m "Chapter 10 complete" $ hg update default $ hg merge chapter-10 $ hg commit -m "Merging chapter 10 into default" $ hg push
Una vez que ejecute la instrucción de empuje, me sale este mensaje de Mercurial:
pushing to ssh://myserver/hg/depot searching for changes abort: push creates new remote branch 'chapter-10'! (did you forget to merge? use push -f to force)
Así que en este punto que trato de hacer un hg merge
de nuevo, y me dice que no hay nada que fusionar, lo cual es obviamente cierto porque simplemente lo fusioné. Cuando forzo el empuje con -f, todo parece estar bien, e incluso la interfaz web muestra las ramas apropiadas.
En resumen, mi pregunta es simple: ¿Lo estoy haciendo de la manera correcta? ¿Hay alguna forma más adecuada de hacer esto con Mercurial (es decir, el "camino Mercurial")? Honestamente, solo quiero que el repositorio sirva como respaldo. Soy un fanático del modelo SCM distribuido, pero a mí me parece bastante "sucio" forzar los empujes. ¡Cualquier idea es muy apreciada! Gracias por adelantado.
¿Tiene usted la intención de: a) tener una serie de puntos de control de su trabajo mientras trabaja en los capítulos ob) tener varios capítulos abiertos para editar simultáneamente en diferentes ramas? – Tarydon
La opción A es mi intención aquí, pero en un escenario de equipo también pude ver el valor en la Opción B –