I’ve started using the next release version of TortoiseHg 1.9. Two major things are happening.
- The less interesting from a user perspective is the switch from the PyGtk UI library to the PyQt library.
- The more interesting one is the introduction of a workbench. The 1.8 and prior versions didn’t have one location for doing everything from. If you wanted to browse your history and changeset graph, you used the repository explorer. When it was time to commit, a new dialog opened (accessible by toolbar buttons), but it didn’t close afterward.
After some usage, it wouldn’t be surprising to see a number of windows open for various tasks.
The 1.9 release now has the workbench. The individual dialogs are still available, and the distinct functions still appear on the Explorer context menu, but I find myself always working in the workbench.
Multiple repositories can be open at once, shown via tabs. All the functions you want to do are easily accessible within the workbench.
When it’s time to do a merge, it’s much smarter. In the old version, if you had uncommitted changes, it would warn you, but provide no options.
The new version warns you, but from the dialog gives you all the options you could reasonably want. Discard current changes. Shelve changes. Force a merge on top of changes etc.
Another area that is drastically improved is around merge conflict handling. The previous version would do an auto-merge always, and only prompt you if there were conflicts not handled.
The new version allows you to disable/enable auto merge right in the merge dialog. If you select ‘manual’ merge, then it will let you know there are conflicts that need to be resolved. A new dialog is available, and from there, you see all the files that had conflicts, and then on a file by file basis, you can decide to do an auto merge, manual merge, take left or take right.
There are many additional workflow improvements in this release, and I’m confidently using it right now. The biggest thing to be aware of is it’s built against the latest Mercurial, so if you can’t run the latest Mercurial, I wouldn’t suggest trying it out.
I’ve even started doing some contributing by reporting issues, and suggesting enhancements. If I knew Python, I’d be attempting to contribute code as well, but…