v0.10.0 for Squeak 6.0, 5.3 and Trunk
New features:
- To save new commits in Cypress/FileTree projects is much faster now because not all files are deleted and rewritten. Only changes are written out.
- In Tonel projects, Squeak change stamps (e. g. timestamps on methods) can be optionally stored in the method properties #300
- Tonel package properties are now preserved in the image
- "Revert this commit" action (like
git revert
) #320 - "Tag commit" action finally implemented and added a "Browse tags" action on projects to manage tags. #375
- Annotation pane in the save, load, merge dialogs, to see method timestamps and categories. Thank you @LinqLover! #336
- Co-Authors button in the Save (Commit) dialog. It facilitates adding pair-programming co-workers to the commit message for attribution. Thank you @ShirleyNekoDev and @LeonBein for contributing this extension! #334
- Automatically exclude method changes where only the timestamp of the method is different #368 #315
- Branch and tag names are shown as [decorations] in the commit list (similar to
git log --decorate=short
) - Warn when the chosen directory for a cloning operation is not empty (possibly the wrong directory was chosen, or users were not aware that they have to create a new subdirectory by themselves). #326
- After changing the self-update branch, users are now asked whether they want to update immediately. Thank you @LinqLover! #358
- Support for UI scaling introduced in Squeak 6.0 #361
Changes:
- When adding a project or cloning, ask for the directory or URL before asking for the project name. The directory name can be recommended as the project name, and when cloning fails for some reason, there is no point in choosing a name first. #307
- Commits that were not created in the current year will show the year number instead of the time of day in the commit list. #84
- Remote-tracking branches are visually distinguished from normal local branches in the branch list. #250
- If a merge is ongoing, this is displayed in the title bar of the Git Browser as long as the project is selected.
- When committing while a merge is ongoing, users are informed about this.
- Improved help text on the Branch button
- After cloning a new project, it is selected immediately.
- Artifacts (e. g. packages) get UUIDs assigned now. For now you can ignore this, but in the future it may help to detect package renames, or when the directory of a package changes due to switching from FileTree to Tonel or the other way around.
Fixes:
- New Tonel packages did not get added with the correct directory names
- Differences in package metadata are now accounted for during saves, loads, merges #302
- Issues when adding new packages that have similar names to already tracked packages (e. g. Collections and CollectionsTests) #295
- If a cloned repository does not use "master" as the main branch name, do not create a non-existent "master" branch, but start from the actual main branch of the remote repository. #293
- Cloning of empty repositories (freshly initialized) did not work.
- Restore behavior of pushing a branch immediately after choosing an upstream branch, when none had been set previously and a push was attempted. #321
- An error appeared when cancelling the dialog that appears when authentication at the remote repository has failed. #333
- Issues when displaying merges where there are conflicts in class definitions.
- BoxedFloat64 objects were not treated as value objects in 32 bits images.
- Errors during committing were not shown in a debugger. #341
- Catch error when users try to create a branch with a name that is already a directory for other branches (e. g. "feature" when there are already branches like "feature/xyz"). #354
- Missing "added" or "removed" decorations on metaclasses when browsing through changes. #322
- When resetting a branch, the additional parent commits introduced by a previous yet-uncommitted merge were not discarded. #207
- Branch name encoding issues in the packed-refs file and in communication with remotes #319
- When switching between branches with different packages, unsaved changes to such packages could be silently overwritten. #364
- When browsing through the commit list, the view jumped back to the selected commit every few seconds #369
- Commit list was incomplete if the commits shown had at least four commits that were rebased. This was because such commits all have the same committer timestamps (unless
git rebase
takes long). - When excluding a whole package during a merge, plain additions and removals without conflicts were not excluded.
- Various menus showed errors when the Git Browser was freshly installed and did not have any projects yet, which puts it in the rare situation that no project is selected.
- PackageInfos for mere class categories were silently registered when using the "Add or remove packages" dialog, without actually adding these categories to the project. #314
- The "Repository disappeared" indicator in the branch list was selectable and selecting it caused errors. Now it is not selectable anymore, just like the "Branches" label at the top of the list. #359
- Performance improvements in the Git operations (e. g. avoid reading the size of a tree entry when it is not required, avoid rehashing of objects that were just retrieved by their hash from the repository)
- Other performance improvements (e. g. avoid to search for packages after a new commit has just been saved)
Refactorings:
- Mirrors and references used for reflecting on objects when they are captured, materialized or compared. See SquotMirror and SquotReference subclasses.
- Custom inspector for object diffs
- Ongoing compatibility with deprecations in Squeak 6.0 and previously Squeak Trunk