GUI Mercurial con soporte para evolucionar

Estoy buscando una interfaz gráfica de usuario para el sistema de control de versiones de Mercurial. En este momento estoy usando TortoiseHg, que me encanta, pero no tiene ningún soporte de GUI integrado para la evolveextensión (por ejemplo, plegar varias confirmaciones en una sola). Básicamente estoy buscando algo que sea exactamente como TortoiseHG pero que tenga un buen soporte para evolucionar.

También he usado SmartGit, que admite Hg pero tampoco parece tener una GUI para evolucionar. Miré brevemente a SourceTree, pero el hecho de que ahora parece requerir que inicie sesión con una cuenta de Atlassian no es atractivo y, por lo que puedo ver, no tiene soporte de GUI para evolucionar de todos modos.

Estoy buscando una solución que sea gratuita e idealmente también de código abierto.

Además, espero que esto sea obvio a partir de la pregunta, pero para que quede claro: estoy usando Mercurial . No quiero usar Git. Las interfaces de Git GUI no son una solución.

Respuestas (1)

TortoiseHg tiene algún soporte de GUI integrado para evolveestos días: el banco de trabajo muestra relaciones obsoletas y revisiones problemáticas, y el comando "Strip" se convierte en "Prune" cuando evolveestá habilitado.

Todavía no es compatible con todos los comandos nuevos como hg fold, o incluso hg evolve, pero puede agregarlos usted mismo usando Herramientas personalizadas .

Por ejemplo, intente fusionar esto en su mercurial.inipara obtener un comando de menú contextual para evolucionar revoluciones específicas y un comando global para evolucionar todo en el repositorio:

[tortoisehg]
workbench.revdetails.custom-menu = evolve-rev
workbench.multipleselection.custom-menu = evolve-rev
workbench.custom-toolbar = evolve-any-all
workbench.pairselection.custom-menu = evolve-rev

[tortoisehg-tools]
evolve-any-all.command = hg evolve --any --all
evolve-any-all.enable = istrue
evolve-any-all.icon = hg-extensions
evolve-any-all.label = Evolve Any/All
evolve-any-all.showoutput = True
evolve-any-all.tooltip = Evolves all troubled revisions.
evolve-rev.command = hg evolve -r {REV}
evolve-rev.enable = istrue
evolve-rev.icon = hg-extensions
evolve-rev.label = Evolve
evolve-rev.showoutput = True
evolve-rev.tooltip = Evolves the selected troubled revision(s).

Además, recuerde que puede escribir cualquier hgcomando en el panel de la consola de TortoiseHg, y un comando CLI a menudo puede reemplazar varias operaciones GUI. Por ejemplo, para reorganizar y combinar una gran cantidad de confirmaciones, puede ejecutar hg histedituna vez en lugar de reorganizar y plegar cada una por separado.