Articles in this section

Do you support other version control systems?

Overview

A core philosophy of Upsun is Infrastructure as Code, which relies heavily on a Version Control System (VCS) to manage application configuration and deployment logic. Currently, Upsun is built natively on Git.

While Git is the only natively supported version control system, you can still use other systems (like SVN or Mercurial) by utilizing them as a "upstream" source and mirroring changes to an Upsun Git repository.


1. Primary Support: Git

Upsun uses Git not just for code storage, but as the primary trigger for its deployment pipeline. Every time you git push, Upsun initiates a build and deploy cycle.

Native Git Integrations

Upsun offers deep, native integrations with the most popular Git hosting providers. These integrations allow for automated environment creation when you open a Pull Request or create a new branch.

ProviderIntegration TypeKey Features
GitHubGitHub App / WebhooksAutomated PR environments, commit status checks.
GitLabNative IntegrationSyncing branches, merge request environments.
BitbucketNative IntegrationPipeline syncing, environment management via Bitbucket UI.

2. Using SVN, Mercurial, or Other VCS

Upsun does not natively support Subversion (SVN), Mercurial (hg), or Perforce. If your team uses these tools, you can still deploy to Upsun by following a "Mirroring" workflow.

The Mirroring Workflow

To use a non-Git VCS with Upsun, you must maintain a Git "mirror" of your repository.

  1. Develop in your preferred VCS (e.g., SVN).

  2. Convert/Sync your changes into a local Git repository using tools like git-svn or hg-git.

  3. Push the Git repository to Upsun to trigger the deployment.


3. Why Git?

Upsun's unique Branching & Cloning feature is built on the internal mechanics of Git. When you branch your code, Upsun:

  • Clones your Git history.

  • Clones your production data (databases, files).

  • Provisions an identical infrastructure environment.

This instant environment cloning is only possible due to the distributed and snapshot-based nature of Git.


4. Git Submodules

If your project depends on other repositories, Upsun fully supports Git Submodules. During the build process, Upsun will automatically attempt to initialize and update submodules if they are defined in your .gitmodules file.

Note: For private submodules, you must provide a Project SSH Key to the external repository so Upsun has permission to clone the code.


 

Summary Table: VCS Support at a Glance

FeatureSupported?Notes
GitYes (Native)The foundation of all Upsun projects.
SVNNoRequires Git-bridge or mirroring.
MercurialNoRequires Git-bridge or mirroring.
GitHub/GitLab/BitbucketYesSupported via external source integrations.
Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.