GitServer limitations
Manage potential issues or differences in expected behavior when you use GitServer.
Read time 2 minutesLast updated 21 days ago
If you use GitServer, there are restrictions on some GitHub operations ,such as fast-forward, rebase, and commit deletion, and how GitServer doesn't enforce security. This page also covers important configuration options, such as to disable deltification on your GitHub repository, and functional limitations such as the lack of support for shallow clones and progress indicators for
git pushAvoid fast-forward, rebase, and deleting GitHub commits
Rebasing and deletion of commits are already restrictions when you push to a regular GitHub server. The fast-forward restriction is caused by the fact that in GitHub, a single commit can be in more than one branch. In UVCS, every changeset links to a single branch, and can’t be on more than one branch simultaneously.Security isn’t enforced in GitServer
GitServer doesn’t perform security checks for exported repositories. GitHub clients can download the entire repository content and push changes to the repository. To restrict the repositories that are visible to GitServer, use theexport.repogitserver.confDisable deltification on Git repositories
GitServer doesn’t support deltified GitHub packages. This is a performance restriction to speed up metadata and data conversion between the two systems. To disable deltification on the Git side, run the following command on your Git repository:If GitServer receives a pack with deltas during a push, GitServer displays the following error message:git config --global pack.window 0
The message includes clear instructions on how to repack the Git repository to disable deltas:git deltas are not supported. Please, set the 'pack.window 0' config variable or run an 'git repack -a -f -d' command
git repack -a -f -d
GitServer doesn’t support shallow clones
GitServer doesn’t support shallow clones. Depending on the Git client version, the following error message will be displayed:> git clone git://localhost/default --depth=1Cloning into 's'...fatal: Server does not support shallow clients
The GitHub push command doesn’t show progress
Thegit pushAnnotated tags
Annotated tags import correctly to UVCS, but if you clone them again from GitServer into GitHub, they export as lightweight tags.Branch names and hierarchies
Branch names with multiple levels can be different in GitHub and UVCS. For example, a branch named/main/Fix-5.0/scm003 converts to Supported GitHub protocols
You can access GitServer through bothgit://http://Storage restrictions
When you export a repository with GitServer, you duplicate the file contents of that repository so it exists both in the UVCS format inside the database, and the GitServer storage folder.Recreate the GitServer mapping folder
If you need to recreate the GitServer mappings folder, the new GitHub SHAs might not match the old ones. The following actions are examples that create new GitHub SHAs that don’t match the old ones:- Edit a changeset comment.
- Perform a replica that affects any of the mapped changesets, such as adding a new merge link.