changelog
Jul 23, 2024

UCM version 0.5.25 is here

Rebecca Mark

This release has some far-reaching changes and big quality-of-life improvements for managing codebase state:

New project-based scoping for UCM commands

Prior to the 0.5.25 release, the Unison Codebase Manager (UCM) had a global log for undoing codebase changes. We’ve revamped the core experience of managing codebase history so that the updated UCM commands are scoped to a project or named appropriately.

🪵 reflog aka branch.reflog shows the history of the current branch.

⏪ reset #someHash /optionalBranch resets a branch to the given state.

🗂️ project.reflog shows reflog entries across all branches in the project.

🌐 global.reflogshows reflog entries across all projects in the codebase.

New features and improvements

🔝 Absolute paths now refer to the root of the project

🌳 More commands now accept paths/names from other branches in the form /branch:path.in.project

🏎️ Increased scratch file parsing speed (faster watch expressions!)

✍️ Error message improvements

Warnings - please read

🏗️ This deprecates the old non-project workspace (it used to be accessible from an absolute path like .old.legacy.stuff) Everything in the non-project legacy code space will be moved to a project called “legacy” for you. (Thanks UCM!)

✋ After upgrading to the newest version of the UCM, your reflog will look empty (since it's now a log of something based on the project, not the global scope).

👽 The old reset-root command is deprecated. Using it could lead to weird codebase states.

🪿 This version will perform a codebase migration

Community Contributions

🏆 With gratitude to new UCM contributor Eduard and the continued hard work of the UCM team!

Share the news