TortoiseHg for Apple Silicon: Current Status and Plans

18 views
Skip to first unread message

desar...@penalara.com

unread,
Jun 23, 2026, 10:23:07 AMJun 23
to thg...@googlegroups.com

Hi,

I recently asked about the future of TortoiseHg on macOS following Apple's announcement that Rosetta 2 will be removed in macOS 28.

I was pleased to learn that an ARM64 build is being worked on, and that the likely path forward is a Qt6-based version for Apple Silicon.

Just to make sure I understood the current situation correctly:

  • The goal is to provide a native ARM64 build based on Qt6/PyQt6.

  • A universal (Intel + ARM64) application is unlikely.

  • Intel/macOS support may eventually be phased out in favor of Apple Silicon.

Is that an accurate summary?

Also, while I understand there may not be any firm dates yet, is there any rough estimate of when an ARM64 test build might become available, even in an experimental state?

Thank you for your work on TortoiseHg and for continuing to support macOS users.

Matt Harbison

unread,
Jun 23, 2026, 12:00:53 PMJun 23
to TortoiseHg Developers
Yes that's basically it.  There is some utility that I could use to fuse the arm64 and arm64 wheels together to make a universal build, but is anybody using Intel macs at this point?  So we'll see how that goes.

I don't really have an ETA on it.  Part of this is I'm waiting for a device at work to free up, and part is moving to Qt6 (which will have a few more bugs, though I don't see the Linux users complaining about much).

If you have a mac handy, I pushed a topic "macos-qt6-deps" with the changes needed to build a universal app (I'm fairly certain it was working back then) and a "macos-pep517" topic that may be needed with some of the recent build modernization.  I've not tried either recently.  The setup is just clone the thg repo, and in contrib/packaging/macos/src (you need to create "src"), create a symlink to the repo root named "thg".  Then clone Mercurial into contrib/packaging/macos/src with the name "hg" and checkout the desired revision.  Aside from that it's just running contrib/packaging/macos/build_py3.sh to do the build.

Ross Boylan

unread,
Aug 13, 2026, 5:05:34 PM (2 days ago) Aug 13
to TortoiseHg Developers
How do I find out what "topics" are and how to use them?  

I can see them in the main repo (assuming the "branch" dropdown entries like topic/stable/xxx are them), but they don't seem to have made it into my clone.

The documentation I've found is either missing (e.g., https://www.mercurial-scm.org/doc/evolution/tutorials/topic-tutorial.html) or self-consciously saying it is [out of date](https://wiki.mercurial-scm.org/UsingExtensions), and one notes most of the functionality of the related package `evolve` has [moved into the core](https://wiki.mercurial-scm.org/EvolveExtension).

Various sources say to enable the extensions in the `[extensions]` section of, e.g., `.hgrc`.  When I do so I just get a warning that it can't find the module.  I'm using the `TortoiseHg` app bundle on a Mac, and so I can't easily add the modules.  In fact, one of the things I haven't discovered is where they live.

BTW, does the GUI for `thg` have any facilities to handle topics?  Since I'm on the Mac I'm using 7.0.1.

Thanks.
Ross

Please reply to the group; my email on this message won't work.

Matt Harbison

unread,
Aug 13, 2026, 9:59:00 PM (2 days ago) Aug 13
to TortoiseHg Developers
On Thursday, August 13, 2026 at 5:05:34 PM UTC-4 ross....@ucsf.edu wrote:
How do I find out what "topics" are and how to use them?  

I can see them in the main repo (assuming the "branch" dropdown entries like topic/stable/xxx are them), but they don't seem to have made it into my clone.

By default, if you don't have the topic extension enabled, clone and pull will ignore those commits.
 
The documentation I've found is either missing (e.g., https://www.mercurial-scm.org/doc/evolution/tutorials/topic-tutorial.html

I think this was the one I would have pointed you towards.  The easiest thing might be to jump on #mercurial on IRC or Matrix and just start asking questions.  I'm pretty sure that link contained web pages that could be generated from artifacts in the hg-evolve repository, so you might be able to read it without the (helpful) diagrams:

https://mercurial-scm.org/repo/evolve/
 
or self-consciously saying it is [out of date](https://wiki.mercurial-scm.org/UsingExtensions), and one notes most of the functionality of the related package `evolve` has [moved into the core](https://wiki.mercurial-scm.org/EvolveExtension).

Basically a lot of the underlying mechanics have been migrated into core Mercurial, but you still need the extensions to get the commands that initiate the operations.
 
Various sources say to enable the extensions in the `[extensions]` section of, e.g., `.hgrc`.  When I do so I just get a warning that it can't find the module.  I'm using the `TortoiseHg` app bundle on a Mac, and so I can't easily add the modules.  In fact, one of the things I haven't discovered is where they live.

The thg app on macOS is currently bundled with Python 3.9.  If you have python 3.9 installed on the system, you can run `python3.9 -m pip install --user hg-evolve`, and it will install the latest evolve extension (which tends to be backward compatible with 8-10 previous versions of hg/thg).  The thg app has a hook in it that specifically allows looking at the user-site for additional modules, so any extensions can be installed this way.  (IDR where that is, but I suspect it's in `~/Library` somewhere, and Python X.Y specific).

If you don't have python installed on the system, the same command might work if there's a python executable in `TortoiseHg.app/Contents/MacOS`, but I'm not sure.  Alternately, you can clone the repository, and in your `[extensions]` stanza, put `evolve = /path/to/hg-evolve/hgext3rd/evolve` (or whatever the path to the __init__.py is), and do the same for the topic extension.
 
BTW, does the GUI for `thg` have any facilities to handle topics?  Since I'm on the Mac I'm using 7.0.1.

Yes, but they're hidden until the extension is enabled.  You can set/clear a topic from the commit tree context menu, and you can set/clear the working directory topic on the commit widget banner, next to the branch name.  The tree also shows the topic labels next to each (non-public) commit.  The context menu in the tree also gains `pick` and `prune` commands.
Reply all
Reply to author
Forward
0 new messages