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 Flow. These backups are useful if you perform a backup and restore operation of your FME Flow (including as part of an upgrade), because version history is not maintained in the restored FME Flow.

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 Flow.

Getting Started with Version Control

To use version control, you must enable it. Once you enable version control, any time you upload (from FME Flow) or publish/republish (from FME Form to FME Flow) 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 Flow, and from the Publish... dialog of the Publish to FME Flow wizard in FME Form. (For more information about publishing from FME Form to FME Flow, see Publishing to FME Flow.)

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 > Version Control on the Web User Interface sidebar, and move the Enabled 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 Flow configuration, such as when upgrading your installation, the restored FME Flow 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 Flow.

Note  FME Flow currently supports only GitHub as a Git repository.
  1. On the sidebar, select System Configuration > Version Control.
  2. Move the Enabled slider to the right.
  3. Under Remote Settings, enter:
    • The Remote Repository URL for the Git repository where you want to commit additions and changes.
    • Tip: You can find this value in GitHub, under the Code menu of the applicable repository.

      Mouse-over to view screenshot:

    • The Remote Token generated by GitHub.
    • 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).

      If your organization uses Security Assertion Markup Language (SAML) single sign-on (SSO) to authenticate with GitHub, you must authorize the token. For more information, see the GitHub Help.

  4. Click Save.

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 Flow.

  1. On the sidebar, select System Configuration > General.
  2. Expand Version Control.
  3. Click Push To Remote.
  4. FME Flow 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.
  5. 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 Flow.
Note  You can view updates only for repositories you have added to your FME Flow, and on which you have Read permission. For more information, see Users or Roles.
  1. On the sidebar, select System Configuration > General.
  2. Expand Version Control.
  3. Click Fetch From Remote.
  4. FME Flow 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.
  5. If the fetch is successful, a message appears at the top of the Version Control page.