11.x release notes for 2026
Review the 2026 release notes for version 11 of Unity Version Control.
Read time 61 minutesLast updated 4 days ago
This page contains the Unity Version Control 11.x releases published in 2026, organized from newest to oldest. For other years, refer to 11.x release notes.
11.0.16.10616
New
All platforms - Command-line: Faster cm ls
on trees with many owners
cm lscm ls--treecm lsRefer to cm ls.
All platforms - Command-line: Comment counts and reviewers in cm find review
cm find reviewcm find reviewcm find mergerequest--format--xml- : every reviewer and their review status
{reviewers} - : date of the last activity
{modifieddate} - : number of comments, questions, change requests, and their replies
{comments} - : number of change requests that aren't applied and questions that aren't answered
{unresolvedissues} - and
{unresolvedchanges}: the two parts of the{unansweredquestions}count{unresolvedissues} - : the review GUID
{guid}
The count doesn't include replies that discard a change request.
{comments}cm find mergerequest "where owner='me'" --format="{id} {title} {reviewers} {comments} {unresolvedissues}"
Refer to cm find and cm showfindobjects.
All platforms - Command-line: Comment path, item, and edit date in cm find changereviewcomment
cm find changereviewcommentcm find changereviewcomment--format--xml- and
{path}give the file a comment is on. Comments that aren't on a file print an empty path and item ID.{itemid} - gives the date of its last edit.
{modifieddate}
cm find changereviewcomment "where reviewid = 1367" --format="{path}:{line} {comment}"
Refer to cm find and cm showfindobjects.
All platforms - Command-line: Machine-readable reviewers and review status
cm codereview reviewer listcm mergerequest reviewer list--xml--xml=<file>--encodingcm find reviewcm find mergerequest{codereviewstatusname}{mergerequeststatusname}--status--mergerequeststatuswherePreviously, on a code review with no reviewers did nothing. It now fails with a message that points to and .
cm codereview -e --statuscm codereview reviewer addcm codereview reviewAll platforms - Command-line: Set the review description from the command line
cm codereviewcm mergerequestWhen you create a review, or edit one with , use to set the text, or to read it from a file. To read the description from the standard input, use .
-e--description--descriptionfile--descriptionfile=-When you edit a review, replaces its description, or adds one if the review has none.
--descriptionTo clear the description, use an empty value: .
--description=cm mergerequest create /main/task001 "Add feature" --destination=/main --descriptionfile=description.mdcm codereview -e 1367 --description="Retries the token refresh once."
When you edit the description with or , the Desktop GUI now keeps showing it as the review description.
cm codereview comment editcm mergerequest comment editRefer to cm codereview.
All platforms - Command-line: Comment on deleted files and on a specific revision in reviews
cm codereview comment addcm mergerequest comment add--path--revision--revision=revid:1234--changesetRefer to cm codereview.
All platforms - Command-line: Subscribe to code review and merge request emails
cm codereviewcm mergerequestsubscribeunsubscribesubscriptionsubscription--formatcm mergerequest subscription 1367
The output looks like this:
subscribed: yesreason: owneremails: enabled
To stop receiving the emails of a review, run . After you unsubscribe, you're subscribed again automatically when you comment on the review, someone mentions you, or someone adds you as a reviewer again.
cm mergerequest unsubscribe 1367Refer to cm codereview.
All platforms - Command-line: Mark a review change request as applied
cm codereview comment applycm mergerequest comment applycomment unapply[apply-change:]cmchangecm mergerequest comment apply 27658884-5dcc-49b7-b0ef-a5760ae740a3 --changeset=cs:1520cm mergerequest comment unapply 27658884-5dcc-49b7-b0ef-a5760ae740a3
Refer to cm codereview.
All platforms - Server: Fewer server threads used by REST API downloads
The server now sends REST API downloads, such as file downloads from the Workbench or Storage downloads, asynchronously, without keeping a server thread busy for each download in progress. Previously, every active download blocked a thread while it waited for the client to receive the data. When many downloads ran at the same time, or downloads were slow because of large files or slow or distant clients, the server had to keep creating threads, which used more memory and could delay other requests while they waited for a free thread.
In internal tests with 50 simultaneous slow downloads of 20 MB each, the server used about a quarter of the threads (17 on average instead of 65) and delivered the same data in the same time.
Bug
All platforms - Command-line: cm ls
shows the owners of items in xlinked repositories
cm ls{owner}cm lscm lsRefer to cm ls.
All platforms - Command-line: cm merge --conflict-markers
now exits with code 1 while conflict markers remain
cm merge --conflict-markersWhen you run again and files from the earlier merge still have conflict markers, the command now lists those files and exits with code 1, the same as . It keeps exiting with code 1 until you resolve the markers. Previously, it printed "No merges detected" and exited with code 0, so scripts that checked the exit code treated the merge as finished.
cm merge --merge --conflict-markerscm merge --list-conflict-markersRefer to cm merge.
11.0.16.10570
New
All platforms - All clients: Token-based authentication for UPWorkingMode
Servers configured with UPWorkingMode ( and ) answer the login with a token, as LDAP servers already do. The client keeps the user and the password in or in the connection profile and caches the token in , so the password hash is no longer sent on every call. The client renews an expired token automatically, and replaces a token that the server rejects with a new one from the stored password, without asking for credentials again.
users.confgroups.confclient.conftokens.confcm configurecm profile create--token--passwordtokens.confcm configure --language=en --workingmode=UPWorkingMode --user=john --password=secret --token=<token> --server=myserver:8087
cm passwdRefer to cm configure and cm passwd.
All platforms - Desktop GUI: Toggle to turn off branch colors in the Branch Explorer
The Advanced filters & format options of the Branch Explorer now include an On/Off toggle for branch colors, in the same row as the Add inclusion, Add exclusion, and Add format buttons. When it's off, the Branch Explorer draws every branch in the default color, and keeps your format rules. Turning it on again brings the rule colors back. This helps when taking screenshots to share, since branch colors set for personal use can confuse other people.
Windows, Linux - Desktop GUI: plastic:// links open in the running Desktop GUI
When the Desktop GUI is already running, opening a link, such as a diff or file link shared in a browser or a chat, now opens it in that running instance instead of starting a new one. A file link reuses the workspace window that is already open for its repository.
plastic://All platforms - Command-line: cm patch
no longer needs GNU Diff
cm patchcm patchcm patch --applyPatches now use the git diff format, so moved files show up as renames instead of a full delete and add. Applying a patch that renames files needs GNU Patch 2.7 or later.
Changed binary files are now only listed, as , which keeps the patch small and readable. To include their content, so that applying the patch also restores the binary files, add :
Binary files a/<path> and b/<path> differ--include-binariescm patch cs:4@default --output=changes.patchcm patch cs:4@default --include-binaries --output=changes.patch
Refer to cm patch.
All platforms - Command-line: cm status --format
prints changes with a custom format
cm status --formatcm status--format--machinereadable--xmlcm status --format="{status}{tab}{size}{tab}{relativepath}"CH 1532 /src/main.cAD 240 /docs/readme.txt
--formatAll platforms - Server: Personal Access Tokens in UPWorkingMode
UPWorkingMode servers support personal access tokens (PATs). , , , and , and the REST endpoints, work once the feature is enabled in :
cm accesstoken createlistrevealrevokeserver.conf<AccessTokensSettings> <Enabled>true</Enabled> <AccessTokenLifespan>180.00:00:00</AccessTokenLifespan> <AllowedUsers>all</AllowedUsers></AccessTokensSettings>
From the client, you can use a PAT on its own as the credential, for example . Git access over HTTP with a PAT isn't available yet on UPWorkingMode servers.
cm repo list --workingmode=UPWorkingMode --token=<pat> --server=myserver:8087Bug
All platforms - Desktop GUI: Task IDs now sort by number in the task lists
Sorting the ID column of the pending tasks list, in the Create branch dialog (From task tab) and in the Select issues from dialog, compared IDs as text, so task 192 appeared after task 1243. The column now sorts IDs by their numeric value in both directions, and lists IDs that aren't plain numbers after the numeric ones.
All platforms - Desktop GUI: Fixed diff view jumping back when scrolled horizontally
In the side-by-side diff, scrolling down while the view was scrolled horizontally could make it jump back several lines when a long line left the view. The left and right panels could also end up a few columns apart until the horizontal scrollbar was dragged again. Both panels now keep their vertical position and stay aligned horizontally.
All platforms - Desktop GUI: Go to moved code now scrolls to the moved method
In the semantic diff, a method that moved within a file shows a moved icon in both panes. Choosing Go to moved code from the left pane scrolled both panes to the first line instead of to the method's new location on the right. It now scrolls to the moved method.
All platforms - Gluon: Fixed check-in failing after renaming a folder with changes inside
Checking in a folder rename together with changes to items inside that folder (renamed, modified, or added files) failed at the end of the operation with an error like "The given key '13566' was not present in the dictionary." The check-in was rolled back, and the only workaround was to split it into several check-ins. This affected both Gluon and . These check-ins now complete successfully.
cm partial checkinAll platforms - Command-line: Fixed cm shell
failing to write output to a file
cm shellWhen running with , commands that download many files, such as or , could randomly fail with "Destination is too short", or make the whole exit with "Unable to translate Unicode character ... to specified code page". This no longer happens.
cm shell--shelloutputfileswitchupdatecm shellAll platforms - Server: Fixed valid tokens refused while a repository is being deleted
While a repository was being deleted, the server could reject the authentication of a valid user or token for unrelated requests from other users of the same organization. This no longer happens.
All platforms - TeamCity plugin: Checkout rules with path transformations now applied in agent-side checkout
With agent-side checkout (Always checkout files on agent), the plugin ignored checkout rules that mapped a repository path to a different location (for example, ). These rules are now applied, so agent-side checkout produces the same directory structure as server-side checkout.
+:src => codeAll platforms - TeamCity plugin: The cloaked.conf
file is no longer deleted from the agent's workspace
cloaked.confWith agent-side checkout, the plugin deleted the file from the agent's working directory when the build configuration had no checkout rules. The file is now preserved between builds.
cloaked.conf11.0.16.10512
New
All platforms - Command-line: Resolve merge conflicts on disk with conflict markers
cm merge --conflict-markerscm checkincm merge br:/main/task001 --merge --conflict-markers
Refer to cm merge.
All platforms - Command-line: Code review comments and reviewers in cm codereview
cm codereviewcm codereviewcm cr- adds, replies to, edits, and deletes review comments, on the whole review or on a line of a file.
comment - adds, removes, and lists the reviewers of a review.
reviewer - sets your own review status, or asks reviewers to review again.
review
cm cr comment add 1367 -c="Rename this" --path=/src/foo.cs --line=42cm cr review 1367 --re-request --all
Refer to cm codereview.
All platforms - Command-line: Set reviewers and change titles with cm codereview
cm codereviewcm codereview--users--groupscm codereview -e--titleRefer to cm codereview.
All platforms - Command-line: line
field in cm find changereviewcomment
linecm find changereviewcommentcm find changereviewcommentline--linecm cr comment addThe filter accepts and .
=!=locationlinecm find changereviewcomment "where reviewid=1367 and line=106" --format="{guid} {type} line {line}"
All platforms - Command-line: Edit the comment of a branch or a label
cm branch editcommentcm label editcommentcm changeset editcommentBehavior change: is an alias for , so and now edit a comment instead of creating a branch or label named "edit". To create a branch or label, use or .
editeditcommentcm branch editcm label editcm branch create editcm label create editRefer to cm branch editcomment and cm label editcomment.
All platforms - Command-line: cm changeset editcomment
reads the comment from a file
cm changeset editcommentcm changeset editcomment-commentsfile""Refer to cm changeset editcomment.
All platforms - Command-line: Faster commands that print user names
cm findcm historycm annotatecm repo listCommands that list many objects owned by different users run several times faster. For example, listing the branches of a large repository with their owners (or with ) takes about 1.5 seconds instead of 9. The output is unchanged.
--xmlBug
All platforms - Desktop GUI: Fixed links misaligned with the surrounding text
Links in Desktop GUI messages now line up with the surrounding text.
Previously, the following were displayed below the rest of the sentence:
- The pending changes view and here links in the "Merge finished" message of the Merge view.
- The changeset link in the check-in notification.
- The shelve link in the shelve notification.
All platforms - Desktop GUI: Fixed empty tips panel
The Tips panel now closes correctly even when its view isn't visible. Previously, if a tip closed while you were in another view, going back to that view showed an empty panel with only the Disable all tips checkbox and the OK button.
For example, this happened after a check-in from the Workspace Explorer refreshed the Pending Changes view, or when a tip closed on its own after a few minutes.
All platforms - Command-line: Fixed cm changeset editcomment
changing comments when its arguments are invalid
cm changeset editcommentcm changeset editcommentFix the login timeoutPreviously, it kept only the first word, or cleared the comment.
Windows - Command-line: Fixed slow cm shell
startup on Cloud Edition
cm shellOn Cloud Edition, now executes its first command in about 0.3 seconds, even when multiple shells start at the same time. Previously, it took 3–4 seconds, or about 9 seconds with several shells. This also speeds up the startup of IDE plugins and other tools that rely on .
cm shellcm shellAll platforms - Command-line: Fixed Unity organizations shown as IDs in cm
output
cmcmrepo@MyOrg@unityPreviously, the following outputs printed them as numeric IDs ():
repo@1375488836673@cloudcm status --xmlcm status --wkconfig --csetcm history --xml- The xlink items of
cm merge --xml - The name field of
cm profile list --format - Several error messages.
The XML layout is unchanged, so tools that parse it keep working.
cm profile delete11.0.16.10484
Bug
Windows - All clients: Fixed failure when renewing an expired token in parallel
When several commands renewed an expired token at the same time, some of them failed with "The process cannot access the file '...\tokens.conf' because it is being used by another process."
This happened, for example, when a client ran several commands at startup.
cmNow, a command that saves waits while another process is reading it, so the save no longer fails.
tokens.confAll platforms - SemanticMerge: Fixed automatic merge dropping members of a new interface
An automatic semantic merge could leave a newly added interface empty by silently dropping its member declarations without reporting a conflict. This happened when the source contributor also moved a member from one interface to another.
The merge now keeps the members of the new interface.
All platforms - Server: Fixed initial check-in with a custom blobspath
blobspathBefore, the first check-in to a newly created repository failed when setting in to a path outside the server's default storage, such as a dedicated disk or a network share. The server created the repository's metadata folder but not the matching blob folder at the custom location, so it couldn't write the blob index file and the check-in failed.
blobspathjet.confThe server now creates the repository's blob folder when the repository is created, so the initial check-in succeeds with any . Repositories using the default (empty) are unaffected.
blobspathblobspath11.0.16.10468
New
Linux - Installers: New repositories for UVCS Linux packages
UVCS Linux packages are now published in new Debian and RPM repositories, which replace the legacy ones.
Some modern distributions (such as Debian 13, Fedora 43, and later) rejected installs from the legacy repositories due to deprecated signature algorithms.
The new repositories use updated signing standards and are signed under the "Unity Technologies ApS" identity.
Refer to Install Unity Version Control on Linux for updated instructions.
If you are migrating from the legacy repositories, note:
- Fedora: Use instead of
dnf upgrade.dnf install - SUSE: Pass flag to the
--allow-vendor-changecommand.zypper install
All platforms - All clients: Skip compression for well-known already-compressed file formats
Until now, check-in tried to ZLib-compress every file unless a rule excluded it, including files whose format is already compressed. Re-compressing already-compressed content makes the operation slower and consumes more resources (CPU and memory during the check-in), only to produce data that is the same size or slightly bigger.
compression.confCheck-in now automatically skips compression for well-known already-compressed formats, with no configuration needed:
- Images: .jpg, .jpeg, .png, .gif, .webp, .avif, .heif, and more
- Video: .mp4, .mkv, .avi, .mov, .webm, and more
- Audio: .mp3, .aac, .ogg, .wma, .flac, and more
- Archives: .zip, .gz, .bz2, .xz, .7z, .rar, .zst, and more
- Documents: .docx, .xlsx, .pptx, .pdf, .odt, .ods
- Packages and fonts: .unitypackage, .apk, .jar, .nupkg, .woff2, and more
These formats always skip compression, even if a rule says otherwise. Your rules keep applying to every other extension. Importing from Git already behaved this way, and the regular check-in flow now matches it.
compression.confAll platforms - All clients: --token
no longer overwrites tokens.conf
--tokentokens.confPassing on the command line made the client write the supplied token to ,
replacing the entry stored for that server and user. A one-off command run under a different
identity, such as a CI job or a service account, left its token behind in the local store.
--tokentokens.confThe client now keeps a token passed with in memory for the lifetime of that single
command and leaves alone. This applies to the default file and to one set with
. Tokens the client obtains by renewing or re-authenticating during that command
stay in memory too.
--tokentokens.conf--tokensconfcm configurecm profile createAll platforms - Desktop GUI: Show in Branch Explorer in changesets, branches and labels views
The context menu of the Changesets, Branches and Labels views now includes a Show in Branch Explorer option. It switches to the Branch Explorer and centers the diagram on the selected changeset, branch or label.
When the object is older than the current date filter, the view widens the filter automatically so the object becomes visible. If the object still cannot be displayed (for example, a branch or user filter excludes it), the previous date filter is restored and a warning dialog explains that the object is not visible with the current filters.
All platforms - Desktop GUI: The object you navigate to is centered and selected
Navigating to a changeset, branch or label in the Branch Explorer now always centers it in the diagram instead of leaving it near the edge of the visible area, selects it as if it had been clicked, and gives the focus to the diagram, so the keyboard navigation continues from that object.
The Branch Explorer also selects the object again after refreshing, so a branch or a label created or renamed from its context menus is centered and selected when the diagram reloads.
All platforms - Desktop GUI: Switch to the reviewed branch from the Code Reviews view
The context menu of the Code Reviews view now has a new Switch workspace to this branch option. It switches the workspace to the branch of the selected code review, which saves looking the branch up in the Branches view or the Branch Explorer before building or testing the changes under review.
All platforms - Desktop GUI: Review comments sorted by date in the code review window
The Review comments summary in the Review changes tab of the code review window now has a new Date modified column in the lists of change requests, questions and comments. It shows when each comment was written or last edited. The lists are sorted by this column by default, newest first, so the latest feedback is at the top. Before, they were sorted alphabetically by the comment text.
All platforms - Desktop GUI: Collapsible sidebar in the code review window
The sidebar of the code review window now shows the name of each tab, Overview and Review changes, next to its icon, in the same style as the workspace window sidebar.
The Overview tab has a new icon that better represents its contents.
A button at the bottom of the sidebar collapses it to show only the icons, and expands it again. The collapsed or expanded state is remembered, so the code review windows opened later use it.
All platforms - Command-line: Resolve merge-to file conflicts from a file
cm merge --to--fileconflictsresolutionsfile--keepdestinationcm$> cm merge br:/main/task001 --to=br:/main --merge --fileconflictsresolutionsfile=/tmp/resolutions.json
{ "resolutions": [ { "path": "/src/Player.cs", "resultFile": "/tmp/merged/Player.cs" }, { "path": "/art/logo.png", "keep": "source" }, { "path": "/README.md", "keep": "destination" } ]}
Each is the conflicting file's path as prints it in its line, including files inside writable xlinks. If any resolution is not valid, the merge stops before anything is uploaded and names the wrong entry. The option also works with and shelve sources. never changes or deletes the resolutions file or the result files.
pathcm merge --to --machinereadableFILE_CONFLICT--shelvecmAll platforms - Server: Smart Locks support moving changesets and promoting branches
Moving changesets to another branch and promoting a branch now keep Smart Locks up to date. A retained lock follows its changesets to the new branch, so it still protects the asset there. The lock is released when the changesets reach the lock's destination branch, either through the promote itself or through a later merge.
Promoting a branch also moves any locks the branch still holds to its parent, so no lock is left on the deleted branch.
Moving or promoting changesets that change an item someone has exclusively checked out is not allowed. The operation fails and lists the locked items.
Bug
All platforms - Desktop GUI: Fixed check-in failing in tree view with repeated folder names
The Pending Changes view built a wrong hierarchy when view as tree was enabled and the workspace contained a folder with the same name as one of its parent folders, such as . An extra top-level folder appeared next to the real root, one item went missing from the view, and the check-in failed with the error "An item with the same key has already been added". The only way around it was to switch back to the list view.
Assets/MyPackage/TPS/AssetsThe tree now nests those folders under their real parent, and the check-in completes.
All platforms - Desktop GUI: Fixed "Manual conflict resolution" ignored when a premerge tool runs first
Ticking Manual conflict resolution in the merge options had no effect on files whose configured merge tool chain began with a premerge tool. The chain stopped at the first tool that exited successfully, so UnityYAMLMerge running with auto-merged the file and the interactive tool at the end of the chain never opened. The conflict ended up resolved without the user ever seeing it. This affected the typical Unity setup for and files.
-p.prefab.unityWith Manual conflict resolution ticked, the merge now skips the earlier entries of the chain and runs only the last tool, so the interactive tool opens for every conflicting file. Single-tool chains and the default automatic mode behave exactly as before.
All platforms - Desktop GUI: Tabs now align text to tab stops
Text after a tab did not line up in the file viewers, because every tab moved the text a fixed distance instead of up to the next tab stop. Code or comments aligned with tabs looked misaligned compared to a code editor.
Tabs now expand to the next multiple of the configured tab size, as in a code editor. This applies to the content view in Pending changes, the diff viewer and the merge tool, whether or not the whitespace glyphs are shown.
All platforms - Desktop GUI: Code Review "Show pending to integrate" no longer ignored when switching tabs
In the Code Review window, switching from Review changeset by changeset back to Review entire
branch listed all the branch changes again, even with Show pending to integrate checked. The
button had to be unchecked and checked again to filter the list. The selected option is now kept
when switching between both review modes.
All platforms - Desktop GUI: Code Review "Show pending to integrate" changes updated on refresh
In the Code Review window, the changes shown with Show pending to integrate checked were calculated once and were not updated when the review was refreshed, so the list could keep an outdated set of changes.
Refreshing the review now recalculates the changes pending to integrate and shows them again, keeping the Show pending to integrate selection.
Switching back to Review entire branch is also faster on branches that have nothing pending to integrate. The window asked the server whether the branch had changes to integrate every time the branch changes were displayed; it now asks once per review, and again when the review is refreshed.
All platforms - Server: Fixed check-in failing for cross-organization xlinks
Previously, checking in a change to a file inside a writable xlink could fail with when the xlinked repository was in a different cloud organization from the workspace and both organizations were hosted on the same server. The server reported one identity for every organization it hosted, so the check-in resolved the xlinked repository against the workspace's organization instead of the xlink's own.
The specified repository couldn't be foundThe server now reports a distinct identity per organization, so the xlinked repository resolves against its own organization and the check-in succeeds. The fix is server side and needs no client update.
All platforms - Cloud Server: Fixed REST API token rejected if org name casing differs
REST API calls made with a token from the endpoint failed with a 401 "An invalid user api token was provided" error when the organization name in the login URL used a different casing than the stored name (for example, instead of ). The login endpoints now store the organization name with its correct casing in the token, so later calls with that token succeed.
/loginmyorgMyOrgAll platforms - Unity VCS Tray: Fixed a second agent starting when one is already running
Launching the UVCS Tray agent while another one was already running started a second agent. On Windows, both agents then tried to mount the same dynamic workspaces on the same paths. The mount failed with a "Directory moved from mount path" error and renamed the existing workspace directories, appending a "~moved1" suffix.
Starting the UVCS Tray agent with no arguments while another one is already running now does nothing. The running agent still handles commands such as opening a Cloud Drive link or starting a dynamic workspace.
11.0.16.10371
New
All platforms - Desktop GUI: Show hidden branches in the Branch Explorer
The Branch Explorer now has a new Show hidden toggle button inside the Other filter. When enabled, hidden branches appear in the diagram at reduced opacity, alongside regular ones.

The Branch Explorer with the new 'Show hidden' filter enabled and a hidden branch displayed
All platforms - Desktop GUI: Enable the merge to operation when you are not in a workspace
The Merge to operation merges a source branch, changeset, or label into a destination branch directly on the server, without loading the source into your workspace.
Until now the option was disabled in the context menus whenever no workspace was active, even though the operation does not need one. It is now available in those menus.
You can start a merge to operation from the right-click menu of the following items:
- Branches: right-click a branch and select Merge to.
- Changesets: right-click a changeset and select Merge to.
- Labels: right-click a label and select Merge to.
The same operation is available from the command line with the (or ) option:
--to--destination$> cm merge br:/main/task001@myrepo@myserver:8087 --to=br:/main/release@myrepo@myserver:8087 --mergeMerging from br:/main/task001 to br:/main/releaseMerge finished successfully.
Bug
All platforms - Desktop GUI: Diff view no longer freezes on files with a very long line
Previously, opening a diff of a file that contained a single extremely long line, such as a Unity YAML asset with an inline binary blob serialized as hex on one line, froze the application for several seconds when that line scrolled into view. The editor measured and highlighted the whole line on the UI thread.
The editor no longer processes the entire line. It renders the first few thousand characters followed by a truncation marker, so scrolling stays responsive.
All platforms - Desktop GUI: Fixed crash when a block selection crosses the diff splitter
Before, holding the block selection modifier and dragging the mouse from one pane of a
side-by-side diff across the center splitter into the other pane crashed the application.
The diff now keeps rendering correctly during the drag and the application stays open.
Hold Alt (macOS: Ctrl) and drag to make a block selection.
Both diff surfaces were affected:
-
Embedded diff: The diff shown inside the main window, for example from the Pending Changes or Changesets views.
-
Diff in a new window: The diff opened as a separate window.
All platforms - Desktop GUI: The shelves list now shows correct information
Previously, the Shelves panel in the Pending Changes tab kept showing the values it read when the list was first loaded. A shelve created the day before could still say Just now, and refreshing the view did not correct it.
The shelves list now redraws its rows every time it is refreshed, so the dates match the age of each shelve.
11.0.16.10350
New
All platforms - Desktop GUI: Show attributes in Code Review window
The Code Review window now displays the attributes of a branch or changeset next to the Conversation panel. Reviewers can read attribute values without switching to the Branch Explorer.
The attributes are shown with the same components used in the Branch Explorer, so they can be added, edited, and removed from the panel in the same way.

Screenshot of a Code Review window including the new attributes panel
Bug
All platforms - CLI : cm changelist add
no longer deletes the target changelist when adding a file that was checked out and changed
cm changelist addRebuilding a chagelist after adding a checked-out and changed file reset the changelists's contents. This was because files carrying the change type had two IDs: One for the entry key and one for all other uses.
CheckedOutAll platforms - Command-line : cm status --xml
reports the combined CO+RP
and CO+CP
status codes
cm status --xmlCO+RPCO+CPWhen applying a shelve to a workspace, an item can be checked out and replaced, or checked out and copied as a new file.
cm status --machinereadableCO+RPCO+CPcm status --xmlCOThe field in the XML output now carries the combined code and matches the machine-readable output. The and text output report the same codes.
Type--short--compactThe field distinguishes these states:
Type- : The item is checked out and its revision was replaced, for example after applying a shelve.
CO+RP - : The item is checked out and is a copy. That is, it's a new file.
CO+CP - : The item is checked out with local changes. This code already worked and is listed here for contrast.
CO+CH
A replaced or copied item that is not checked out still reports or .
RPCP$> cm status --xml<StatusOutput> <Changes> <Change> <Type>CO+RP</Type> <TypeVerbose>Replaced</TypeVerbose> <Path>/src/game/Player.cs</Path> </Change> <Change> <Type>CO+CP</Type> <TypeVerbose>Copied (new)</TypeVerbose> <Path>/src/game/Enemy.cs</Path> </Change> </Changes></StatusOutput>
All platforms - Desktop GUI : Render Markdown in attribute tooltip
When the Attributes panel trims an attribute with an ellipsis, hovering shows a tooltip with the full content.
Previously, Markdown-formatted attributes displayed as raw text in that tooltip. The tooltip now renders Markdown using the same preview as the edit-attribute dialog: headings, lists, links, and images all display formatted. Long values scroll inside the popup, links are clickable, and moving the cursor into the popup keeps it open.

An attribute with the tooltip showing Markdown content
Bug
All platforms - Desktop GUI - CLI : Xlink conflict dialog resolves the target changeset ID instead of showing the raw GUID
When merging two branches that both changed a read-only Xlink, the Xlink conflict view used to show each side's target as a raw changeset GUID. The Keep-source and Keep-destination buttons carried the same GUID. This made it hard to know which changeset each side pointed to.
The dialog now resolves the GUID to the changeset ID when the target is reachable. If the target changeset was purged or the target repo can't be reached, the dialog still shows the raw GUID.
Cloud Server: Editing a running mergebot duplicated it
Previously, editing a running cloud mergebot from the dashboard registered a duplicate in-memory instance each time it was saved. Every duplicate reacted independently to the same branch-resolved event, so each resolve triggered multiple merge attempts: one real merge and the rest reporting .
MergeNotNeededNow, the start/stop lifecycle is handled in a single place, so editing a running mergebot results in exactly one stop and one restart.
11.0.16.10330
New
All platforms - Desktop GUI : Markdown support in attribute values

Markdown support in attributes
Attribute values now carry Markdown. The Apply Attribute dialog picks the layout based on the content:
-
Plain text: keeps the compact single-line dropdown.
-
Markdown (existing value, pasted value, or default template): flips into a side-by-side raw editor and live preview that updates as you type.
Admins can seed a Markdown skeleton in the attribute's comment field so anyone applying it lands in the editor with the template preloaded.
Example:
default: # What changed## Motivation## How to test - -
Values now go up to 5,000 characters (was 1,000).
All platforms - Desktop GUI : confirm before deleting an attribute from an object
The X button on an attribute pill in the object details panel used to delete the value silently. Now the button asks for confirmation before deleting.
The confirmation dialog shows a preview: a one-line snapshot of the value being deleted so you can double-check it's the correct one. It offers two options:
-
Yes: removes the attribute value from the object.
-
No / close: makes no changes.
This change applies to every attribute-value deletion in the Desktop GUI. There's nothing to configure.
All platforms - Command-Line: cm attribute set
now accepts a file parameter for the attribute value
cm attribute setcm attribute set--valuecontents=<file>?&Example:
$> cm attribute set att:Status br:/main --valuecontents=AttributeValue.txt
Bug
Cloud Server : Updating an existing trunkbot could break the mergebot
Previously, updating a trunkbot from the dashboard without including the internal field would delete the missing field on the server side.
bot_userThe mergebot then failed to start. The server log showed "The mergebot cannot be started since its user ApiKey [] doesn't exist".
Now, if the field is missing from the update request, the server now preserves its from the existing configuration.
All platforms - Command-Line: cm attribute set
can't set values with wildcards
cm attribute setFixed an issue where attribute values containing or characters were incorrectly treated as file wildcards, causing the command to fail and show the command usage.
?*Example of a command that previously failed and now works:
$> cm attribute set att:url br:/main "https://myservice.com/api/list?querymode=default"
11.0.16.10303
New
Windows - Desktop GUI: Unity Smart Merge available as a merge tool option
When you add a merge tool under Preferences > Merge tools > Add, you can now select Unity Smart Merge (UnityYAMLMerge). Previously, this shortcut only existed on macOS; Windows users had to locate and enter the tool path manually. The path is detected automatically for Unity 6 and earlier.
Bug
All platforms - All clients: Fixed disk move detection for identical files
When multiple tracked files had the same content but different names and were moved only on disk (not with Unity VCS or ), pending changes and might pair them incorrectly and suggest incorrect renames. Move detection now prefers the candidate with the same file name when hashes match or similarity scores tie, so moves keep the correct names after the operation.
cm mvcm statusThe behavior applies as follows:
-
Desktop GUI: Wherever local moves are calculated and Find moved and renamed files and directories is enabled in Pending changes options.
-
Command-Line: In a full, where local move detection is active unless you limit change types.
cm status
All platforms - Desktop GUI: Scrollbar missing when viewing an added file's contents
Previously, the diff viewer didn't show a draggable scrollbar when displaying the contents of an added file: scroll worked with the mouse wheel but not by dragging the scrollbar. This happened in the Pending changes view, the Diff window, and code reviews. The scrollbar is now shown and works correctly when viewing the contents of an added file.
All platforms - Desktop GUI: External tool not updated when selecting a row in the Merge tools table
When selecting a row in the merge tools table under Preferences > Merge tools, the External tool field didn't update to show the tool configured for that row. The field now correctly reflects the external tool of the selected row.
11.0.16.10275
New
All platforms - Desktop GUI: Switch to the reviewed branch from a code review
Added a Switch workspace to this branch to the Code Review window's header. Click it to switches the active workspace to the branch under review.
If the review was opened without an active workspace, for instance from a Plastic link, clicking the button first opens an existing workspace for the reviewed repository, or shows a dialog to create one if none exists locally.
Bug
All platforms - Desktop GUI: Fixed misalignment of the "Resolved in cs:X" link in the code review conversation panel
Previously, the changeset link inside the Resolved in cs:X badge in the code review conversation panel was misaligned with the surrounding text. The link now aligns correctly with the Resolved in label.

Screenshot
All platforms - Desktop GUI: Fixed misaligned comment in the Attributes view details panel
The comment inside the Details panel of the Attributes view appeared vertically centered instead of aligned to the top. The comment is now top-aligned again, matching the previous layout.
All platforms - Desktop GUI, Gluon: Fixed directories not expanding or collapsing when double-clicked
Double-clicking a collapsed directory didn't expand it, and double-clicking an expanded directory didn't collapse it. This affected tree views in several panels, including the Workspace Explorer view, Pending Changes view, and Browse Repository panels. Directories now expand and collapse correctly when double-clicked.
macOS - UVCS tray agent: An edge case could cause two instances to run
In version 11.0.16.10255, we removed the permission prompt for adding the UVCS Tray agent at user logon. Instead, we use a LaunchAgent plist file deployed in .
System Events.app$HOME/Library/LaunchAgentsHowever, several reboots could result in two UVCS Tray agents running at user logon. We fixed this race condition in this version: the system now checks whether the UVCS Tray app is configured through either System Settings > General > Login Items & Extensions or the presence of the file.
$HOME/Library/LaunchAgents/com.codicesoftware.unityvcstray.plist11.0.16.10255
New
All platforms - Desktop GUI: Branch Explorer labels stay visible at lower zoom levels
The Branch Explorer now keeps changeset numbers (on hover), changeset comments, and branch captions visible down to 50% zoom. Below that threshold the three labels hide together, since the text is no longer legible at that scale.
Previously, changeset numbers and comments started hiding below 80% zoom even while still readable, and branch captions remained visible at any zoom level.
All platforms - Desktop GUI: Clickable changeset and branch links in diff and code review panels
The Diff changeset by changeset detail panel now shows the full changeset properties panel in both the Branch Diff window and the Code Review branch view.
Previously, this panel showed a plain text header. Now, the changeset number is a clickable link with:
- A right-click context menu (options: Copy, Copy link, Copy spec, Open).
- A Copy GUID button.
- A responsive details layout.
- The changeset comment.
This matches the changeset properties shown in the Branch Explorer.
The Code review panel's Review entire branch and Single changeset views now use the same properties panel, so the branch or changeset name is a clickable link with the same context menu and Copy GUID button.
The Single changeset view no longer shows a gray box with a double border.
All platforms - Desktop GUI: Reviewer group members can now mark a code review status
The Mark Review button in the Code Review panel is now enabled for users who belong to a reviewer group assigned to the review, even if they are not explicitly listed as individual reviewers. Previously, the button was only enabled for users directly added to the reviewer list.
When a reviewer group member sets their status, the server adds them to the reviewer list automatically and updates the reviewer group status accordingly.
This behaviour requires an up-to-date server. When connected to an older server, if users are not already in the reviewer list, the desktop GUI shows an error message.
All platforms - Desktop GUI: Automatic handling of .meta files during Add operations
When adding assets to source control in Unity projects, ancestor folders' .meta files are now automatically included in the operation. This prevents orphaned private .meta files when adding nested folder structures.
What changed:
-
The setting Rename .meta files automatically has been renamed to Handle .meta files automatically (found in Preferences > Other options).
-
When enabled, the Add operation now includes .meta files for all ancestor folders being added to source control.
-
The setting continues to control automatic .meta file handling for rename operations.
Note: This setting is enabled by default. Disabling it reverts to the previous behavior where only the asset and its ancestor folders are added, without their corresponding .meta files.
macOS - UVCS tray agent: Removed System Events.app
permission prompt
System Events.appPreviously, the UVCS installation on macOS Tahoe ended with a prompt asking the user to enable this permission to start the UVCS tray agent on user login:
"PlasticSCM.app" wants to control "System Events.app"
The use is no longer prompted for permission. The UVCS tray agent is enabled on user login through a LaunchAgent plist file deployed in .
$HOME/Library/LaunchAgentsBug
All platforms - Desktop GUI: Fixed External tool not found error when selecting a default tool
In Preferences > Diff/Merge tools, selecting the Default tool no longer fails to save with an External tool not found error.
The path-validation check now correctly recognizes the built-in Plastic GUI diff/merge tool as a valid choice.
All platforms - Server: Fixed client-side triggers not running for User-role members
In Unified Organizations, client-side triggers (such as before-clientcheckin) were silently skipped when the operating user's role was User instead of Owner or Manager.
The trigger list returned to the client is no longer filtered by view permission, so configured client-side triggers now run for every authenticated user in the organization. Trigger administration and single-trigger lookups continue to require the relevant permissions.
11.0.16.10216
New
All platforms - Desktop GUI: Context menu on object links
Right-click a changeset, branch, or label link in the Properties panel header to show a context menu with four new options:
-
Copy: Copies the full text shown in the link to the clipboard.
-
Copy link: Copies a shareable "Plastic Link".
-
Copy spec: Copies the full spec of the selected object.
-
Open: Navigates to the selected object.
The menu is available wherever these links appear, including the Branch Explorer, Branches and Changesets views, diffs of objects and history revisions.

New context menu options
All platforms - Desktop GUI: Embedded diff viewer in Branches and Changesets views
The Branches view and Changesets view can now show file diffs inline in their Details panel, matching the experience already available in the Branch Explorer. Select Differences in the Details panel to reveal the embedded viewer below the diff tree. Select a file in the tree to refresh its content.

Embedded diffs
All platforms: Upgrade Plastic Desktop and Gluon to Avalonia 11.3
Upgraded our GUI applications so now they use Avalonia 11.3, which provides UI improvements and fixes.
Bug
macOS - Gluon: Cmd+X (cut) now works in the Workspace Explorer
Previously, pressing Cmd+X in the Workspace Explorer view on macOS did nothing. The shortcut now performs the cut action correctly.
11.0.16.10181
New
All platforms - Desktop GUI: Difference list and diff viewer in Branch Explorer and Query view details
In the Branch Explorer and Query view, the Details panel now has a Differences list. The list is visible when selecting a branch, changeset, or label. For branches, you can view either the entire branch diff or the changeset-by-changeset diff.

Screenshot
The Branch Explorer also has an embedded diff viewer.
To open the viewer, double-click a file in the Details Differences list, or pick Diff from the file's context menu.
The Differences list context menu also has a new Diff in a separate window option, which opens the standalone diff window.

Screenshot
All platforms - Desktop GUI: Show repository tree for selected labels
Updated the Labels view details panel and the Branch Explorer details panel to show the repository tree at the labeled changeset when you select label. This provides a meaningful snapshot of the tree at that point in history.
Previously, both views showed the diff of the labeled changeset, which is not useful for a single label. You can still see the change this way by selecting a changeset or branch in the Branch Explorer.
Right-click menu actions on items in the tree work the same as in the standalone Browse repository view. The label name in the Properties header is no longer clickable in the Labels view details panel.
All platforms - Desktop GUI: Changeset color configuration and changeset number in Branch Explorer
Changeset color configuration options for the Branch Explorer are now in the dedicated Settings window as a new tab. You can color changesets by user or replication source, or both at once.
User avatars can also be displayed independently from the changeset colors. When avatars and colors are both active, the colors are displayed in the ring around the avatar.

Screenshot
Also in the Branch Explorer, a changeset number label appears above the node when you hover over a changeset in.

Screenshot
This feature is enabled by default. You can disable it from the Branch Explorer display options.
All platforms - Desktop GUI: Properties panel shows repository and replication source
Updated the Properties panel in the Details view to display the repository name and the replication source.

Screenshot
All platforms - Desktop GUI: Added vertical separator between attribute badge action buttons
Added a vertical separator between the Edit and Delete buttons on each attribute badge, drawn in the same color as the badge border, along with extra spacing for a cleaner look and better usability.
All platforms - Desktop GUI: Design changes in the Branch Explorer
Moved the Settings button in the Branch Explorer to the bottom-left corner of the panel, next to the Zoom Out button, to prevent accidental clicks.

Screenshot
Updated the home icon in the Branch Explorer changeset shape to fill the shape when contributor avatars are disabled, and to display as a small overlay in the corner when avatars are enabled. In either case, the checked-out changeset continues to use the larger home glyph.

Screenshot
All platforms - Desktop GUI: Toggle hidden-branch changesets in Changesets view
Added a toggle to the Changesets view to show or hide changesets from hidden branches. You can now inspect those changesets without first unhiding branches. By default, this option is disabled.
All platforms - Desktop GUI: Clickable changeset links in the merge Xdiff header
The Xdiff window opened from Diff source with destination during merge conflict resolution now displays clickable changeset links.
Click a link to open the changeset diff window with all the changes in that changeset. This is the same view as the existing changeset link in the History view.
All platforms - Desktop GUI: Details panel remembers open/closed state and width
Updated the Branch Explorer, Branches, Changesets, Labels, and Attributes views to persist the details panel visibility and width across sessions.
The Details panel width in the Branch Explorer is also preserved between sessions.
All platforms - Command-line client: New subcommand to set the repository hashing algorithm
To set the hashing algorithm used by a repository, use the subcommand in the command-line client.
admin hashalgorithmcmOnly the server administrator can execute this command; non-admin callers are rejected with the standard admin-only error.
cm admin hashalgorithm <repspec> (md5 | sha1)
Previously, the per-repository hashing algorithm could only be configured through an in-process server shell command that required raw organization and repository IDs. Operators can now set it through the regular CLI using a human-readable repository spec.
cmThe new algorithm applies to data hashed by the server from this point on. Changing the algorithm on a repository that already contains data is supported, but operators should consider the implications before doing so.
All platforms - Command-line client: Hash algorithm available as format token
Added a output format token to , , and . This output returns the algorithm name (MD5, SHA1) used to produce the revision's value.
{hashalgorithm}cm findcm historycm ls{hash}The WebAdmin Find JSON endpoint exposes the same field as when explicitly requested.
hashalgorithmThe default output formats are unchanged; the token is opt-in with the option (or the fields list, for the JSON endpoint). Revisions without a hash render an empty value.
--formatcm find "revisions where date >= '1 weeks ago'" --format="{hash}|{hashalgorithm}|{owner}|{path}"
All platforms - Command-line client: cm patch supports --clean and --integration options
Added and options to . These were previously only available in .
--clean--integrationcm patchcm diffUse the options to:
- : Generate patches that exclude merge content.
--clean - : Generate patches that show only the changes pending integration into the parent branch.
--integration
These options make it easy to get a focused diff of a task branch for code review or AI-assisted workflows.
All platforms - Server: Unlimited lifespan for Personal Access Tokens
Added support for unlimited (never-expiring) lifespans for Personal Access Tokens (PATs). The previous limit was 180-day maximum for CI/CD and automation use cases that require long-lived credentials.
Server-side, the maximum PAT lifespan is controlled by the setting in , inside the block. If not explicitly configured, the default maximum lifespan is 180 days.
AccessTokenLifespanserver.confAccessTokensSettingsEnable unlimited PAT lifespans
To enable unlimited PAT lifespans, set to :
AccessTokenLifespaninfinite<AccessTokensSettings> <Enabled>true</Enabled> <AccessTokenLifespan>infinite</AccessTokenLifespan></AccessTokensSettings>
Client-side, the lifetime argument now accepts the keyword:
infinitecm accesstoken create "My automation token" infinite
Create unlimited PATs with the REST API
When creating PATs using the REST APIs, the lifetime field in is now optional. When omitted, the server's default lifespan applies.
POST /api/v1/personal-access-tokensTo request a token with no expiration, omit the lifetime field and ensure the server is configured with an unlimited lifespan:
POST /api/v1/personal-access-tokens{ "description": "My automation token"}
Windows, macOS — New unified desktop agent
Unified PlasticFS and Cloud Drive into a single desktop agent: .
unityvcstrayThis update simplifies startup and background service management.
Backward compatibility is preserved through legacy entry points/wrappers ( and ) that now route to the unified app.
plasticfsunityclouddriveAdditional notes:
-
Currently, PlasticFS is available only on Windows.
-
Cloud Drive remains in beta. If you have never used it before, enable it by creating anfile in your
enableclouddrivetray.tokenconfig folder.plastic4
Bug
All platforms - All clients: Fix exception when diffing a replicated branch whose parent changeset was not replicated
When a branch was replicated without its parent changeset, viewing its differences in the Desktop GUI or fetching its history from caused a crash with an unhandled error.
cmNow the diff view returns an empty result, and the branch history returns a clear error message indicating that the parent changeset couldn't be found.
All platforms - All clients: EOL and compression filter rules now support paths with spaces
Previously, EOL and compression filter rules that contained paths with spaces were not applied correctly. This is now fixed.
Compression sample:
none /db/backup/blob.dat
EOL sample:
auto /src/client/my script.ps
All platforms - Desktop GUI: Apply Branch Explorer options immediately
Fixed Branch Explorer settings to take effect without requiring a restart.
All platforms - Desktop GUI: Fixed outdated branch diff from the Branches view
Now using the current branch head from the server instead of branch information from when the tree was last loaded. This fix applies to Diff branch, Diff with another branch, and the embedded diff in the Branches view details panel.
New changesets from another workspace or client now appear without refreshing the list. The same fix applies when creating a top-level branch from the Branches view while new changes exist on the selected branch.
All platforms - Desktop GUI: Don't show attributes for checkout changeset
The Branch Explorer details panel was showing the Attributes section and the Add attribute button when selecting the checkout changeset. Because this is a virtual changeset that doesn't exist on the server, the attributes panel is no longer displayed for it.
All platforms - Desktop GUI: Bring changes on Switch option moves Added files to Default changelist
Files with Added status assigned to a user-defined changelist now remain in the correct changelist when switching branches with the Bring Changes on Switch option.
All platforms - Gluon: History panel doesn't update selected items
Fixed the History panel to select only the relevant revisions after operations that previously resulted in additional unwanted selections.
11.0.16.10042
New
All platforms - Desktop GUI
All platforms - Desktop GUI: Rebrand to Unity Version Control
Unity DevOps Version Control product has been rebranded to Unity Version Control.
All platforms - Desktop GUI
All platforms - Desktop GUI: Enhanced properties panel
- Redesigned the properties panel that is displayed at the side of the Branch Explorer and other query views (Changesets, Branches, Labels and Attributes).
- The selected object information is shown in a more compact way, including an icon or avatar with the object's owner.
- The comments panel saves the edited comment when you switch from one object to another.
- The Attributes panel shows each attribute in a small colored badge.

Redesigned properties and attributes panels
- Removed the Branch Explorer settings from this side panel, to leave space for the selected object differences, which will be included in a following release.
- Moved the settings for display options and conditional formatting to a dedicated dialog window. To open it, select the Settings button in the Branch Explorer view.

New Branch Explorer settings window
All platforms - Desktop GUI
All platforms - Desktop GUI: Enhanced branch explorer search box UI
The branch explorer search box's Next and Previous button are now inside the text areas.
Added a search match counter (current vs. total).

Branch Explorer search box control
All platforms - Desktop GUI
All platforms - Desktop GUI: JetBrains plugin removed from client installers
The JetBrains plugin bundle is no longer included in the client installation package. Install the plugin directly from the JetBrains Marketplace.
Bug
All platforms - Desktop GUI
All platforms - Desktop GUI: Fixed changelist assignments lost after switch with Bring changes
Files assigned to custom changelists (for example, "Ignore this") are no longer moved to the Default changelist after switching revisions with Bring changes enabled. Changelist assignments are now correctly preserved across switch operations.
All platforms - Desktop GUI
All platforms - Desktop GUI: Smaller font for labels in the Branch Explorer
Reduced the Branch Explorer label caption font size so label names show more characters before ellipsis, improving readability.
11.0.16.9998
New
All platforms - Desktop
All platforms - Desktop: Show user avatars in the Branch Explorer
The Branch Explorer view now displays the changesets using the owner's avatar instead of a solid color circle. This allows to easily see who committed each changeset without the need of configuring user colors.
This feature can be enabled by toggling the "Display user avatar in changesets" in the Branch Explorer's display options

Screenshot
All platforms - Desktop GUI
All platforms - Desktop GUI: Changeset comment captions in the Branch Explorer
Changeset comments are now displayed in the Branch Explorer below each changeset as a small caption, expanding on hover to show the full comment.
Tooltips in the Branch Explorer have been removed, as this information is now shown directly in the canvas.
You can enable the changeset comment captions in the "Display options". Make sure to have enough zoom applied to the Branch Explorer to see them, as they are only visible until a certain level.

Screenshot
All platforms - Desktop GUI
All platforms - Desktop GUI: Hover style and animations in the Branch Explorer
Added new visual effects to the Branch Explorer when moving the mouse over the changesets, branches and labels

Screenshot
Bug
All Platforms - Desktop GUI
All Platforms - Desktop GUI: Page Up works correctly in lists
In all the views displaying a list or tree (Items, Pending Changes, Branches, etc ...) pressing Page Up now moves the selection to the top item within the currently visible list area, instead of jumping to the very first item (as if Home was pressed).
11.0.16.9973
New
All platforms – Plugin for JetBrains IDEs
All platforms – Plugin for JetBrains IDEs: Show recommended cm version and download link in Configuration view
The Configuration view now displays the recommended cm version for the current plugin build, with a clickable Download link that downloads the matching cm client bundle directly from the IDE. The download runs in the background with a progress indicator and saves the file to the user's Downloads folder.
All platforms
All platforms: The server can now dictate the repository hashing algorithm to the client.
UVCS currently supports two file hashing algorithms: SHA1 and MD5. The hashing algorithm in use depends on the flag defined both in and .
FIPSCompliantclient.confserver.confHowever, both client and server had to have the flag configured to the same value for hashing to work. Misconfigurations could result in repositories storing hashes in one format whilst the clients expected the hashes in a different format, and the other way around.
Now, the hashing algorithm can only be configured from the repository server. If both server and client are using this UVCS version or newer, the client honors the configuration set on the server regardless of the setting.
client.confFIPSCompliantFor newer clients working against older servers, or the other way around, the client's flag is still in use, to ensure backwards compatibility.
FIPSCompliant11.0.16.9943
New
All platforms - Gluon
All platforms - Gluon: Skip update report message after applying a shelved added file
Before, updating the workspace after applying a shelve that contained an added file showed the following report message:
The item won't be unloaded because it is already changed (checked-out, locally changed, deleted, moved or reverted) in the workspace: 'file.txt'. Please undo or checkin the local change and retry the operation.
This scenario is now improved and no message is reported since there is no collision with server changes.
11.0.16.9925
Bug
All clients
All clients: Fixed comment truncation from GitSync or fast-import
When truncating long comments during GitSync or fast-import operations, if the truncation point fell exactly at a high surrogate character (part of a Unicode surrogate pair used for emojis and other special characters), the surrogate pair would be split. This caused later serialization to fail with an "Unable to translate Unicode character" error.
We now check if the character at the truncation point is a high surrogate and reduce the length by one character to avoid splitting the pair.
All platforms – Plugin for JetBrains IDEs
All platforms – Plugin for JetBrains IDEs: Compare with same repository version not working for Replaced files
The "Compare with Same Repository Version" context menu option now correctly displays differences for Replaced files. Previously, this operation would show a "Cannot get revision content" error when comparing Replaced files created during branch merges.
All platforms - Desktop GUI
All platforms - Desktop GUI: An item with the same key added error in tree view
Fixed an issue in the Pending Changes tree view where multiple changes to the same file could trigger an "An item with the same key has already been added" error.
Now, multiple changes are displayed correctly.
11.0.16.9915
New
All platforms – Command line client
All platforms – Command line client: Revision ID available in status command output
The command now supports an optional flag that, when used with , includes the revision ID for each change in the output. The revision ID is added as an additional field after the directory flag and before the merges information.
cm status--includeRevId--machinereadableThis enables plugins and integrations to obtain revision information directly from the status command without additional operations.
Bug
All platforms – Plugin for JetBrains IDEs
All platforms – Plugin for JetBrains IDEs: Diff not loaded for replaced files
The diff view now correctly loads and displays differences for files with "Replaced" status. The plugin now retrieves parent revision IDs directly from the status command output, which eliminates the need for additional commands and ensures reliable diff loading for all file change types, including replaced files.
macOS – Plugin for JetBrains IDEs
macOS – Plugin for JetBrains IDEs: Fixed server list failing to load on macOS
Fixed an issue on macOS in which the attempt to clone a Unity Version Control repository from Rider's welcome window would result in the server list never populating. An error in the logs would indicate that the command could not be found. Now, the Clone Repository dialog correctly initializes Unity Version Control and loads the server list on first access, regardless of whether a project is open.
cm11.0.16.9890
New
All platforms - Desktop GUI and Gluon
All platforms - Desktop GUI and Gluon: Automatic .meta file renaming
Added support for automatically renaming .meta files when renaming files or directories in the workspace.
Enable this feature in Preferences > Other Options > Miscellaneous > Rename .meta files automatically. When enabled, the GUI will automatically rename associated .meta files alongside the main file or directory, and prevent conflicts if the destination .meta file already exists.
This is a GUI-only setting and is enabled by default.

Screenshot
All platforms - Desktop GUI
All platforms - Desktop GUI: Added filter to the diff changeset by changeset panel
When viewing the diff of a branch in changeset by changeset mode, you were only able to see the list of changesets. For big branches with a lot of changesets, it could be difficult to find a specific one by its comment, so we added a filter to be able to search in this list

Screenshot
All platforms – Plugin for JetBrains IDEs
All platforms – Plugin for JetBrains IDEs: Organization/Server selection added to Clone Repository workflow
Users can now select from all available Unity Version Control (UVCS) organizations or servers when cloning a repository, not just the default workspace server. The server list is populated based on the current user's configured profiles, and the repository list updates automatically when a different org/server is selected. If no additional profiles are configured, only the default org/server will be available. This enhancement improves flexibility and usability for users working with multiple orgs/servers.
11.0.16.9872
New
All platforms - Plugin for JetBrains IDEs
All platforms - Plugin for JetBrains IDEs: Configuration panel available in IDE settings
The UVCS configuration panel is now available again in the IDE settings view. The panel has been adjusted to align with other VCS plugin panels, and the cm path field now auto-detects the default UVCS installation path when left empty, matching the behavior of Git and Mercurial plugins.
Bug
All Platforms - All Clients
All Platforms - All Clients: Resolved a compatibility error when deleting an empty branch
Previously, compatibility was not maintained when attempting to delete an empty branch using a newer client (e.g., 11.0.16.9213) with an older server version (e.g., 11.0.16.7504).
The operation failed with an incorrect message indicating that the server needed an upgrade, despite the server being fully capable of deleting empty branches.
All platforms - Gluon
All platforms - Gluon: Fixed endless search dialog progress when no results are found
The "Searching..." message and spinner now disappear when a search completes with no matches. Previously, they remain visible indefinitely.

Screenshot
All platforms - Plugin for JetBrains IDEs
All platforms - Plugin for JetBrains IDEs: File history revisions now displayed in correct order
The file history view previously listed revisions in reverse order, with the oldest entry at the top. This caused confusion when comparing changes between revisions. Now, revisions are displayed from newest to oldest, making it easier to understand file evolution and compare changes as expected.
All platforms – Plugin for JetBrains IDEs
All platforms – Plugin for JetBrains IDEs: Improved error handling in VCS operations
Error handling in VCS operations has been updated to use Messages view notifications instead of blocking dialog popups. This change prevents multiple error dialogs from appearing in batch operations, resolves thread safety issues, and improves user experience by avoiding intrusive popups.