Version Control
Select System Configuration > Version Control.
Version control allows you to access previous versions of your Repositories files. Optionally, when you configure version control with a remote Git repository on GitHub, you can maintain backups of your versions outside of FME Server. These backups are useful if you perform a backup and restore operation of your FME Server (including as part of an upgrade), because version history is not maintained in the restored FME Server.
Note that version control does not, by itself, enable you to update your local working copy of Repositories files. Instead, version control allows you to download previous versions. Once downloaded, you can update your working copy by republishing to FME Server.
Getting Started with Version Control
To use version control, you must enable it. Once you enable version control, any time you upload (from FME Server) or publish/republish (from FME Desktop to FME Server) a new or existing file, you have the option to commit a version of the file to your local system. This option is provided on the Commit dialog when you upload a workspace directly from FME Server, and from the Publish... dialog of the Publish to FME Server wizard in FME Desktop. (For more information about publishing from FME Desktop to FME Server, see Publishing to FME Server.)
Alternatively, you can save individual workspace versions directly from the Repositories page.
Note: To use version control, once enabled, you must explicitly commit files.
You can view all versions from the Repositories page (History), and download them as desired.
To enable version control, select System Configuration on the Web User Interface sidebar. Under General, move the Version Control slider to the right.
Note: You must belong to the fmesuperuser security role to enable version control initially. Once enabled, version control permissions can be granted to others on the Users page or Roles page. A user with Manage permission in Version Control can disable or enable version control.
Configuring Version Control with a Remote Git Repository
If you perform any type of Backup & Restore operation of your FME Server configuration, such as when upgrading your installation, the restored FME Server does not maintain version history. However, if you push your file versions to a remote Git repository on GitHub, you maintain backups of them outside of FME Server.
Note: FME Server currently supports only GitHub as a Git repository.
- On the sidebar, select System Configuration > General.
- Expand Version Control.
- Under Remote Settings, enter:
- The Remote Repository URL for the Git repository where you want to commit additions and changes.
- The Remote Token generated by GitHub.
- Click Save.
Tip: You can find this value in GitHub, under the Clone or download tab of the applicable repository.
Mouse-over to view screenshot.
Tip: For information about generating a token, see the GitHub Help. Under Article versions, select the GitHub version applicable to your account (personal or GitHub Enterprise).
If the remote Git repository is private, specify scope repo ("Full control of private repositories").
If the remote Git repository is public, specify scope repo ("Full control of private repositories") or public_repo ("Access public repositories", under repo).
Pushing Updates
When you configure version control with a remote Git repository, you must push your latest file updates to the repository if you want to maintain backup copies outside of FME Server.
- On the sidebar, select System Configuration > General.
- Expand Version Control.
- Click Push To Remote.
- FME Server attempts to update the remote Git repository with your additional versions. However, if there are versions on the remote repository that occurred subsequent to the versions you want to push, and you have not yet fetched them, an error displays, with an option to Force Push. If you choose Force Push, your revision history overwrites the revision history on the remote repository. Otherwise, click Cancel.
- If the push is successful, a message appears at the top of the page.
Fetching Updates
When you fetch updates from the remote Git repository, you update the latest history of revisions from other team members who have pushed updates. You should perform a fetch before you perform a push to ensure your history is current.
Note: Fetching updates does not change your working copy of any Repositories files. To update your working copy, download a revision, and republish it to FME Server.
Note: You can view updates only for repositories you have added to your FME Server, and on which you have Read permission. For more information, see Users or Roles.
- On the sidebar, select System Configuration > General.
- Expand Version Control.
- Click Fetch From Remote.
- FME Server attempts to update your version history with any additional versions from the remote Git repository. However, if your version history shows previous versions that no longer exist on the remote repository, an error displays, with an option to Force Fetch. If you choose Force Fetch, your version history is overwritten to match the versions on the remote repository. Otherwise, click Cancel.
- If the fetch is successful, a message appears at the top of the Version Control page.