Я ищу графический интерфейс для системы контроля версий Mercurial. Прямо сейчас я использую TortoiseHg, который мне очень нравится, но он не имеет встроенной поддержки evolve
расширения с графическим интерфейсом (например, объединение нескольких коммитов в один). В основном я ищу что-то похожее на TortoiseHG, но с хорошей поддержкой для эволюции.
Я также использовал SmartGit, который поддерживает Hg, но, похоже, не имеет графического интерфейса для развития. Я бегло взглянул на SourceTree, но тот факт, что теперь он требует от вас входа в систему с учетной записью Atlassian, не привлекателен, и, насколько я понимаю, он все равно не поддерживает графический интерфейс для развития.
Я ищу решение, которое бесплатно и в идеале с открытым исходным кодом.
Кроме того, надеюсь, это очевидно из вопроса, но просто для ясности: я использую Mercurial . Я не хочу использовать Git. Интерфейсы Git GUI не являются решением.
В настоящее время TortoiseHg имеет некоторую интегрированную поддержку графического интерфейса evolve
: рабочая среда показывает отношения устаревания и проблемные версии, а команда «Strip» становится «Prune», когда evolve
она включена.
Он еще не поддерживает все новые команды, такие как hg fold
, или даже hg evolve
, но вы можете добавить их самостоятельно с помощью Custom Tools .
Например, попробуйте объединить это с вашим mercurial.ini
, чтобы получить команду контекстного меню для развития определенных версий и глобальную команду для развития всего в репозитории:
[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).
Кроме того, помните, что вы можете ввести любую hg
команду в панели консоли TortoiseHg, и одна команда CLI часто может заменить несколько операций графического интерфейса. Например, чтобы переупорядочить и объединить большой стек коммитов, вы можете выполнить hg histedit
один раз вместо того, чтобы перемещать и сворачивать каждый из них по отдельности.