Escenario: He "heredado" un programa, mantiene bajo mercurial, que sólo funciona en mi sistema con ajustes específicos a ciertos archivos que se comprueban en la Primera No quiere comprobar estos ajustes en¿Puede Mercurial hacer un parche invertido?
.. Mi solución más reciente a esto es crear un archivo de revisión mercurial (hg diff> patchfile) que contenga estos ajustes; cuando necesite verificar mis cambios, aplicaré el parche, confirmaré y volveré a aplicar el parche. (Si tuviera el control total de la fuente, movería todos estos pequeños ajustes a un solo archivo de configuración que no está bajo control de versión, poniendo un archivo de configuración de "muestra" bajo control de versión)
Desafortunadamente, parece que si bien el comando GNU patch
es compatible con el indicador --reverse
, no admite el formato diff de archivos múltiples de hg como un solo archivo de parche (o tal vez lo haga, y no conozco los conmutadores para él). OTOH, hg tiene su propio comando patch
que puede aplicar el diff, pero que no admite ningún tipo de indicador reverse
.
Así que mi pregunta es doble:
- Cómo debe hacerse esto en mercurial? Sin duda, aferrarse a un "parche de ajuste" no es la única forma de manejar esta situación. Tal vez Mercurial tiene un complemento o algo incorporado para tales cambios temporales, no modificables.
- Aparte de cómo se deben hacer las cosas , ¿hay alguna forma de aplicar de forma inversa un parche difumérico mercurial a un repositorio mercurial como este? Hay otras situaciones en las que tal funcionalidad sería útil.
Esto se ve cerca de lo que yo quiero (Voy a tener que admitir que nunca me tomé el esfuerzo de aprender MQ hasta ahora). Sin embargo, ahora que he agregado mi parche al mq e hice los cambios que deseo confirmar, 'hg ci' se queja de que" no puedo enviar más de un parche mq aplicado ". No puedo 'qpop' el parche antes de comprometerme, ya que hay cambios locales en el repositorio. Esto parece ser un punto muerto que impide de manera decisiva que MQ resuelva el problema, a menos que me esté perdiendo algo. – eternicode
@eternicode: No puede 'hg commit' un parche, pero puede' hg qfinish'. – robert
@robert Lee mi pregunta nuevamente. Yo * no * quiero comprometer el parche, nunca. I * do * quiero confirmar los cambios que hice después de que el parche esté en la cola, pero sin los cambios introducidos por ese parche. Parece que MQ no es la herramienta adecuada para esto, solo por esa razón. – eternicode