Documentation

​
​

Development

User Acquisition

Monetization

Industry

Unity Version Control

DevOps

On-prem

Gluon

Editor plug-in

Open Unity Dashboard

Unity Version Control

​
​
Unity Version Control
  • Overview
  • Cloud Repositories organization update
  • Installation
  • Use UVCS with the Unity Editor
  • Unity Version Control plugins
  • Concepts
  • Tutorials
  • On-Prem
    • Server configuration
    • Client configuration
    • Manage On-Prem licenses
    • Stop, start, or restart server
    • Server administration console
    • Configure UVCS
    • Use server read-only mode
    • Back up and restore data
    • Archive revisions
    • Force client upgrades
    • SSL certificates
    • GitServer
      • Configure GitServer
      • Use Gitserver with partial replicas
      • Push submodules to UVCS
      • GitServer limitations
    • Use SAML authentication with Microsoft Entra
  • Gluon
  • CLI and shortcut references
  • Release Notes
  1. Unity Version Control (previously Plastic SCM)

Use Gitserver with partial replicas

Learn how to manage partial replicas when working with GitHub and Unity Version Control.
Read time 2 minutes
Last updated a year ago

Unity Version Control (UVCS) supports partial replicas, which don’t map to GitHub. Avoid or work around issues in mixed GitHub and UVCS scenarios.

Partial replicas aren’t visible to GitHub

Ensure that GitHub mappings only calculate when the correct branches are in the UVCS repository.
When GitServer indexes new changesets, it creates GitHub mappings. GitServer ignores any pushes that can alter the SHA of a changeset and potentially break synchronization with GitHub repositories that have already pulled a changeset.
For example, the following screenshot shows that you can push changeset 10, even if changeset 9 on branch
001
hasn't been pushed. GitServer recalculates the GitHub mappings without including branch
001
. If you later push the branch
001
, GitHub will ignore it because it's not part of the GitHub mappings:
A side by side screenshot of the visual branch explorer in UVCS compared with the branch explorer for the central repository (GitServer). The screenshot has annotated text that repeats the information in the previous paragraph.

A side by side screenshot of the visual branch explorer in UVCS compared with the branch explorer for the central repository (GitServer). The screenshot has annotated text that repeats the information in the previous paragraph.

Unlinked branches aren’t visible to GitHub

Because GitHub doesn’t allow partial replicas, any branches that don’t have a parent branch that links them to the
main
branch aren’t visible to GitHub:
A side by side screenshot of the visual branch explorer in UVCS compared with the branch explorer for the central repository (GitServer). The screenshot shows that a branch not directly linked to main is ignored by GitServer.

A side by side screenshot of the visual branch explorer in UVCS compared with the branch explorer for the central repository (GitServer). The screenshot shows that a branch not directly linked to main is ignored by GitServer.

Similarly, any merges to
main
from unlinked branches are ignored.

Force map unlinked branches

To make a branch available to GitHub even if it doesn’t have a parent branch or the changesets don’t meet the required conditions, add
add branch.toForceMap
entries in your
gitserver.conf
file as follows:
# branches which changesets are made visible# although they have unlinked merge sourcesbranch.toForceMap=/main

Xlinks with Gitserver

Gitserver ignores changesets with unresolved Xlinks so they aren’t visible to GitHub clients. For example, if you have a branch
main@root
that contains an Xlink to
main@xlink
, but in changeset
15
on the root branch, the Xlink points at a changeset that isn’t replicated yet:
A screenshot of the visual branch explorer that shows that changeset 15 is xlinked to a changeset that isn't replicatied or linked to the main branch.

A screenshot of the visual branch explorer that shows that changeset `15` is xlinked to a changeset that isn't replicatied or linked to the main branch.

This means that GitServer ignores changeset
15
until the changeset you replicate the changeset it Xlinks to.

Force GitServer to ignore missing xlinks

To configure GitServer to skip missing Xlinks and allow synchronization with GitHub even if you lose some content, add
unresolvedxlink.skip=true
to your
gitserver.conf
file as follows:
# skip the xlink entries that cannot be resolvedunresolvedxlink.skip=true

Copyright © 2026 Unity Technologies
LegalPrivacy PolicyCookiesDocumentation Terms of UseDo Not Sell or Share My Personal InformationYour Privacy Choices (Cookie Settings)

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S and elsewhere (more info here). Other names or brands are trademarks of their respective owners.

Some pages are machine-translated for convenience, and may contain inaccuracies. In the event of conflicting information, the English version is authoritative.

  • On this page
    • Partial replicas aren’t visible to GitHub

    • Unlinked branches aren’t visible to GitHub

      • Force map unlinked branches

    • Xlinks with Gitserver

      • Force GitServer to ignore missing xlinks


Report a problem with this page