Version 0.9.8
June 26, 2010
- Add a separate MacHg only hgrc configuration file in the directory ~/Application Support/MacHg/hgrc. This allows MacHg to not alter the users ~/.hgrc file.
- Eliminate a place where the LocalMercurial was being additionally copied into the bundled resources. This drops the installed size from 24MB back to 16.6MB
- Simplify the startup checking procedure now that the histedit and collapse extensions are part of the LocalMercurial copy.
- Switch the MacHg icon in the Help to the new icon.
- Add a preference item for allowing the user to use a different version of Mercurial with MacHg. Note, making use of this preference is in general a very bad thing to do—see the Help file entry for details. I am including support for allowing this change since some of the Mercurial developers have requested this. Thus users can now see what the feature would look like. However, I think the feature is just a really bad idea. Thus I will release it like this in 0.9.8 for people to play with but very likely will yank the feature before 1.0.0.
- Add option to include '~/.hgrc' into the HGRCPATH or exclude it from the HGRCPATH.
- Ensure that at least one of ~/.hgrc or ~/Application Support/MacHg/hgrc is in the HGRCPATH.
- Add buttons which open up the ~/.hgrc and the ~/Application Support/MacHg/hgrc files.
- Reorganize the advanced preferences a little.
- Restructure the Help pages and update them.
- Improve date handling. Now MacHg internally gets the single UTC+offset date from Mercurial which speeds data transmission slightly.
- Fix toggling of menu item Show / Hide Toolbar.
- Add toolbar operations for Commit, Revert, Update, Diff, and AddRemove. These are not included in the default toolbar layout, but the user can easily configure the toolbar to have them through the normal way users configure toolbars in Apple applications.
- A very big reorganization of the View hierarchy. Previously the main functionality of the BrowserPane, HistoryPane and DifferencesPane was included in NSViewControllers, but these controllers were not part of the NSResponder chain, so some of the validation and the action targeting was fairly tricky. Thus much of the functionality has been moved into new classes: BrowserView, HistoryView, and DifferencesView. These classes are now part of the NSRepsonder chain. Then all of the menu, toolbar and contextual menu action targets have been reorganized around this. A lot of internal work occurred doing this, but it's the right thing moving forward.
- Make aliases mhg and chg available whenever a terminal is started. mhg is an alias to the version of Mercurial shipped with MacHg. chg is an alias to the version of Mercurial shipped with MacHg expecting that the same environment variables that MacHg uses such as HGPLAIN=1, HGENCODING=UTF-8, etc are included.
- The names mhg and chg are configurable through the preference items LocalHGShellAliasName and LocalWhitelistedHGShellAliasName, although there is no GUI interface for these items.
- Add a picture of an abstract "user" to the initialization wizard.
- Make the menu commands which apply to 'all' files always visible. This fixes some issues which users found confusing.
- Make the main menu differences work in the DifferencesView, and fix the DifferencesView contextual menu.
- Add extended attribute of UTF-8 on the file encoding. This fixes FileMerge Diff's.
- Set it up so that the extended attribute of UTF-8 is only written if it is not already present. This means there are less recreated MacHg status calls due to changing attributes on files.
- Apply Martin Geisler's patch of writing the check exec and check link test to the directory .hg/fschecks instead of the working directory.
- Make MacHg respond to Martin Geisler's patch of writing the check exec and check link test to the directory .hg/fschecks by ignoring any paths FS events on this path.
- Greatly improve the patch export functionality.
- Allow the export of any mixed selection of revisions and not just a continuous range of revisions.
- Patches can now be exported in reverse order so they can be applied as a backout.
- Fix presentation of dates within the patches.
- Default to not trying to 'exact' import a patch.
- Remove switch parent option in export patches sheet.
- By default use git diff option in exporting patches.
- Change sheet button ' "Git" style diffs' -> ' "git" extended diffs'
- Wrap the exporting of patches in a delayEventsUntilFinishBlock so MacHg is not
constantly doing status refreshing while the patches are written out.
- Improve the export sheet formattedSheetMessage.
- Fix a crasher in exporting patches of revisions whose parents are not the previous ancestor.
- Fix issue 67. Keep the first responder focus in the same place.
- Occasionally, the document would initially open without displaying any files in the browser view the first time a repository was chosen. Fix this initialization problem where awakeFromNib would be called on the FSBrowser but the myDocument of say the BrowserView would not yet have been set up since the awakeFromNib of the BrowserView hadn't fired yet. Thus ensure that the FSBrowser calls the awakeFromNib of the parent, and further ensure that the parent's awakeFromNib internals will only ever fire once.
- Align popups slightly so it visually looks better.
- Make browse button stick to right side in the clone sheet.
- Fix other issues which came up
Version 0.9.7
June 12, 2010
- Fixes issues 28, 53, 55, 63, 65, 68, 69, 61, as well as other un-numbered issues.
- Important: fix for issue 28, where ssh would not work correctly in certain cases. This was due to not passing through the SSH_AUTH_SOCK environment variable to Mercurial. MacHg now passes through other environment variables, but still tightly controls which variables it passes.
- Allows the exclusion of paths in the commit sheet. This has been requested a number of times and is now possible in latest version of MacHg. (The commit sheet will further change in the future when hunk level committing inclusion / exclusion is added.)
- Now uses new Mercurial 1.5.4. The version shipped with MacHg is still modified. *However*, Martin Geisler is working on a fix to core Mercurial which would allow me to use the stock native latest version of Mercurial. This will hopefully be done in the next version.
- Makes rebase work correctly by using the --detach option. (Stefano Tortarolo added this in Mercurial 1.5 and it works really nicely.)
- Now uses HGPLAIN and HGENCODING = UTF-8. These are the settings recommended by Martin Geisler.
- Gets rid of HandleCommandDefaults, since using HGPLAIN is now the recommended way moving forward for GUI clients like MacHg. Thus HandleCommandDefaults is no longer relevant since the defaults will always be ignored.
- Uses the information one has for the display of the full message, until such time as one gets the full message. This was a suggestion of David Mitchell and works out to be quite nice.
- Provides more cases of eliminating control interaction stuff off of the main thread.
- Fixes an infinite loop that can crop up during symlink expansion, because the strings have the same values but are not the same pointers.
- Adds an NSDocumentController class so one can control the number of recent items. One needs at least one, independent of any system setting.
- cmd-M now acts to minimize a window like other Macintosh applications.
- Makes a few more changes for compliance to Apple’s HIG (Human Interface Guidelines.)
- Creates servers for all the paths present in the hgrc paths section of a repository when the repository is opened in MacHg.
Version 0.9.6
June 2, 2010
- Tidies up the code.
- Updates help pages.
- Follows Apple’s Human Interface Guidelines more closely, e.g. uses option-; instead of ..., change Ok ->OK, etc.
- Uses some new designs for the splash screen, ‘About’ box and the main icon, all of which have been provided by Rick Wong.
- Fixes issue 47. If the user has set WarnAboutBadMercurialConfiguration to false, then startup warnings are ignored.
- Fixes issue 48. By default, the first untitled document is now saved as ~/Application Support/MacHg/Repositories.mchg so that the user will not be questioned to save the document. However, the user can open other documents if they so choose, and MacHg will still open the most recently used document. It’s just that if the user wants a single document and wants to use it more like Mail, iCal, or iTunes, which really only have one document each, then they can. See the discussion in the bug report.
- Updates credits.
- Fixes issue 50. If the stringByResolvingSymlinksAndAliases returns null, i.e. the path is no longer there, then degrading is done gracefully. This issue actually only occurred after the switch to handling symlinks better.
- Fixes issue 51.
- Upgrades to RegexKitLite 4.0.
Version 0.9.5
May 23, 2010
- MacHg now stores any passwords in the system keychain. (A number of changes in this area.) Previous versions stored passwords in cleartext in the MacHg documents. (Passwords have always been transferred in an encrypted form.)
- Has the labels collapsed into the short comment. (I first saw this idea in GitX and liked it.) This gives us more space in general and a lot more space in the Differences View.
- Makes many small fixes and enhancements of a non-critical nature, which I have skipped in these notes.
- Changing the sort order in any view of the history now changes the order in all views.
- You can now also test a server URL in the terminal.
- Fixes a race condition.
- Adds a help link to visit the main web page. Fixes issue 40.
- Any changes in the preferences to the font size of the browser items are immediately reflected/active.
- Any changes in the preferences to the default column width are immediately reflected/active.
- Fixes issue 39. Now, when restoring the browser selection, we maintain the current selected path better, even if the exact files specified in the path are no longer present.
- When opening the Differences View, one sees selected in the Base and Compare panes the versions which were the extremes of the range of versions previously selected in the History View. For example, if the bottom and top versions of the interval of versions selected in the History View were versions 1600 and 2000, then when switching to the Differences View one would see 1600 selected in the Base revision pane and 2000 selected in the Compare revision pane, respectively. This fixes issue 38.
- The details in the History View now has clickable buttons to review the differences in only specific files.
- Changes ‘patches’ to color the background and not the text.
- Fixes importing patches, and provides changed user messages.
- Several users have commented that they want the buttons on the backing sheet titled "Clone a Repository" and "Create New Repository" to actually do these actions rather than just bringing up the Help About servers and repositories, and how to do things. So now, selecting ‘Clone a Repository’ first pulls up the ‘Create a Server’ reference sheet, and then after that is done, pulls up the clone sheet. Also now, selecting the "Create New Repository" pulls up the add / create local repository sheet.
Version 0.9.4
May 15, 2010
- Smaller bug fix version, mainly to allow the use of external diff tools.
- If we add a local repository in any way (through drag 'n' drop or through the sheet dialog) then the corresponding server is now added if it’s known and not present in the document.
- Works around Mercurial’s somewhat inconsistent exit codes and error messages, so we don't have errors when Mercurial issues warnings and we do have errors when Mercurial issues errors.
- Fixes error reporting from the underlying Mercurial executable. E.g., fixes issue 36.
- Underlying code changes.
- The escape key is now equivalent to ‘Cancel’ for all sheets. Fixes issue 29.
- Adds the ability to use other diffing tools besides FileMerge.
Version 0.9.3
May 13, 2010
- Builds a universal binary (32bit and 64bit Intel) by default. (It turns out that I was shipping a binary which was only 64bit.)
- Adds an option allowing the user to specify the default sort order in the History View.
- Adds a patchName column to the patches importing sheet.
- Makes MacHg work nicely with unicode. (The "LANG" environment variable was previously not set.)
- Adds a warning when the program starts if there are any warnings or error messages in using Mercurial. This will better help diagnose any problems that arise due to Mercurial being mis-configured.
- If we have a named document, auto-save the document after any change the user does.
- Uses cmd-. (instead of incorrect cmd-s) to cancel the sheet.
- Includes more error reporting and logging in the build script for getting the changeset hash key.
- Fixes several bugs involving the side bar and adding server or local repository references to the document.
- Makes the log table views in the Differences View save and restore their column positions and sorting.
- Updates the histedit extension.
- Trims the leading and trailing whitespace from the server path strings to ensure we can compare the paths to solve issue 25.
- When auto adding, the corresponding server now computes its identity.
- Removes the warning about any missing extensions from the results of doing a Mercurial execution.
- Switches preferences code from BWToolkit to DBPrefsWindowController.
- Miscellaneous bug fixes.
Version 0.9.2
May 9, 2010
This release improves exporting patches and moving labels, and fixes some minor bugs and some issues with the sidebar.
- In the exporting of patches you can now include the current revision which is not committed when exporting patches and it will issue a patch for the uncommitted changes.
- Adds a separate sheet for moving a label (tag, branch, bookmark) from one revision to another.
- Makes the drawing of the dots in the graphs look nicer and reflect the type of the entry.
- Updated credits.
- Adds a Terminal toolbar item.
- Now displays the Mercurial version and the changeset hash for the build version in the About MacHg box.
- Fixes a bug in opening a terminal window from MacHg using the ShellHere code by John Daniel of Etresoft
- Now when dragging a repository folder from the finder into the sidebar, also adds the corresponding server if the repository meta data contains a server and if the document doesn't already contain that server.
- Fixes a bug where if you added a server when you don't have any sidebar node selected, then the added node wouldn't have any parent. Then when you cloned a repository from this server, the local clone wouldn't show up in the sidebar.
- Fixes various minor bugs.
- Fixes a crash bug which could occur in situations when there were no commits in the repository.
- The repository now properly updates when you change one of the labels.
Version 0.9.1
May 7, 2010
Basic fixes for issues people have reported after the initial public release 0.9.0. It’s nice to see that MacHg came through without many problems at all. The problems that were fixed are the following:
- Fixed the sizing of the results window. Now it will not exceed the bounds of the screen, and it positions itself correctly.
- Fixed the parsing of the information about a patch when importing a patch.
- Fixed the importing of multiple patches (which was recently broken).
- Fixed XCode project. It had problems in that some paths were absolute, instead of relative.
- Removed RBSplitView from XCode search paths since it was accidentally there. (MacHg has not used RBSplitView for a long time.)
- Added contextual menu item for moving a tag, branch, or bookmark.
- Fixed looking at the history in reverse and related issues; i.e., you can look 0...tip or tip...0 and it works well in both cases.
- The force option was missing from the GUI for Add Global Tag and Add Bookmark.
- Double clicking on a selection of revisions in the History View will now as a shortcut do a diff of all the changes in those revisions.
Version 0.9.0
May 3, 2010
- Initial public release