Unity Version Control 11.0.16.10468
46 documented changes.
- Version
- 11.0.16.10468
- Product
- Unity Version Control
Unity Version Control 11.0.16.10468
New
- Deprecation
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.
- Linux
- Improvement
Linux - Installers: New repositories for UVCS Linux packages: Refer to Install Unity Version Control on Linux for updated instructions.
- Linux
- Change
Linux - Installers: New repositories for UVCS Linux packages: If you are migrating from the legacy repositories, note:
- Linux
- Change
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 `compression.conf` 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.
- Change
All platforms - All clients: Skip compression for well-known already-compressed file formats: Check-in now automatically skips compression for well-known already-compressed formats, with no configuration needed:
- Change
All platforms - All clients: Skip compression for well-known already-compressed file formats: These formats always skip compression, even if a `compression.conf` 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.
- Change
All platforms - All clients: --token no longer overwrites tokens.conf: Passing `--token` on the command line made the client write the supplied token to `tokens.conf` , 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.
- Change
All platforms - All clients: --token no longer overwrites tokens.conf: The client now keeps a token passed with `--token` in memory for the lifetime of that single command and leaves `tokens.conf` alone. This applies to the default file and to one set with `--tokensconf` . Tokens the client obtains by renewing or re-authenticating during that command stay in memory too.
- Change
All platforms - All clients: --token no longer overwrites tokens.conf: `cm configure` and `cm profile create` still write the token, because storing credentials is what those commands are for.
- Change
All 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.
- Change
All platforms - Desktop GUI: Show in Branch Explorer in changesets, branches and labels views: 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.
- Change
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.
- Change
All platforms - Desktop GUI: The object you navigate to is centered and selected: 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.
- Change
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.
- Change
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.
- Change
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.
- Change
All platforms - Desktop GUI: Collapsible sidebar in the code review window: The Overview tab has a new icon that better represents its contents.
- Change
All platforms - Desktop GUI: Collapsible sidebar in the code review window: 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.
- Windows
- Fix
All platforms - Command-line: Resolve merge-to file conflicts from a file: `cm merge --to` takes the resolution of each conflicting file from a JSON file with the new `--fileconflictsresolutionsfile` option, without asking. For each file, the resolution either keeps the source or destination revision, or uses the content of a file that is already merged. Conflicts not listed in the file are resolved as before, for example with `--keepdestination` . This lets tools that resolve conflicts in their own UI finish a server-side merge with `cm` .
- Change
All platforms - Command-line: Resolve merge-to file conflicts from a file: Each `path` is the conflicting file's path as `cm merge --to --machinereadable` prints it in its `FILE_CONFLICT` 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 `--shelve` and shelve sources. `cm` never changes or deletes the resolutions file or the result files.
- Change
All 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.
- Change
All platforms - Server: Smart Locks support moving changesets and promoting branches: Promoting a branch also moves any locks the branch still holds to its parent, so no lock is left on the deleted branch.
- Change
All platforms - Server: Smart Locks support moving changesets and promoting branches: Moving or promoting changesets that change an item someone has exclusively checked out is not allowed. The operation fails and lists the locked items.
Linux - Installers: New repositories for UVCS Linux packages
- Change
Fedora: Use `dnf upgrade` instead of `dnf install` .
- Change
SUSE: Pass `--allow-vendor-change` flag to the `zypper install` command.
All platforms - All clients: Skip compression for well-known already-compressed file formats
- Change
Images: .jpg, .jpeg, .png, .gif, .webp, .avif, .heif, and more
- Change
Video: .mp4, .mkv, .avi, .mov, .webm, and more
- Change
Audio: .mp3, .aac, .ogg, .wma, .flac, and more
- Change
Archives: .zip, .gz, .bz2, .xz, .7z, .rar, .zst, and more
- Change
Documents: .docx, .xlsx, .pptx, .pdf, .odt, .ods
- Change
Packages and fonts: .unitypackage, .apk, .jar, .nupkg, .woff2, and more
Bug
- Fix
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 `Assets/MyPackage/TPS/Assets` . 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.
- Fix
All platforms - Desktop GUI: Fixed check-in failing in tree view with repeated folder names: The tree now nests those folders under their real parent, and the check-in completes.
- Fix
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 `-p` 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 `.prefab` and `.unity` files.
- Fix
All platforms - Desktop GUI: Fixed "Manual conflict resolution" ignored when a premerge tool runs first: With 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.
- Fix
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.
- Change
All platforms - Desktop GUI: Tabs now align text to tab stops: 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.
- Change
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.
- Improvement
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.
- Improvement
All platforms - Desktop GUI: Code Review "Show pending to integrate" changes updated on refresh: Refreshing the review now recalculates the changes pending to integrate and shows them again, keeping the Show pending to integrate selection.
- Improvement
All platforms - Desktop GUI: Code Review "Show pending to integrate" changes updated on refresh: 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.
- Fix
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 `The specified repository couldn't be found` 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.
- Fix
All platforms - Server: Fixed check-in failing for cross-organization xlinks: The 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.
- Fix
All platforms - Cloud Server: Fixed REST API token rejected if org name casing differs: REST API calls made with a token from the `/login` 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, `myorg` instead of `MyOrg` ). The login endpoints now store the organization name with its correct casing in the token, so later calls with that token succeed.
- Fix
All 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.
- Windows
- Fix
All platforms - Unity VCS Tray: Fixed a second agent starting when one is already running: 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.