Version Control

Document created by DPM Admin on Jul 20, 2017
Version 1Show Document
  • View in full screen mode

As of SOASTA 57, the new version control feature allows you to manage versions of your SOASTA assets.

Version control provides the following benefits:

  • Puts a local git repository right in the CloudTest.
  • Allows source control of test assets at the level of clip, composition, target, script, dashboard, and widget.
  • Clones a remote repository (such as a repository stored in github) into a local repository.
  • Pushes changes from the local repository to the remote repository.
  • Allows for “who updated what" and "when and how do I see the prior version” for critical test assets.
  • Supports team coordination across separate CloudTest tenants or instances

Icons

The following table displays a list of icons marks and the different states of a SOASTA asset:

Icon MarksDescriptionPossible Available Commands

The folder without a mark indicates that this folder is currently not under version control. Clone a Git Repository and Create a Local Repository

The question mark indicates that the asset is currently not under version control, but it is under a folder that is under version control.

Add

The blue square mark indicates that the asset is currently under version control and it has not been modified.Checkout Revision. Note that Pull and Push are available only at the folder that was cloned.

The orange square mark indicates that the asset is currently under version control and it has been modified.Commit and Reset

The exclamation mark indicates that the asset is currently under version control and it has a conflict. Note that folders containing the object in conflict are marked as conflicted.Resolve Conflict

 

 

Version Control Options

Go to Central > Library.

 

 

Clone a Git Repository

Clones a repository. 
Right-click on the main folder, and choose Clone a Git Repository.

Provide the URL, name, user, password, and destination. Click Clone.

Note that the user and password may be optional depending on the remote repository that is being cloned.

 

 

 

Create a Local Repository

Creates a local repository that does not have a remote repository attached to it.

Right-click on the folder that you want to use, and choose Create a Local Repository.

Provide the name and destination. Click Create.

 

 

Add

Starts versioning on assets that are currently not under version control.

As a result, the system displays the changes in a message box. Click Close

The icon mark changes to indicate the new state (see table above).

 

 

Commit

Writes or merges the changes made in the working copy back to the repository.

Choose the assets that you want to commit, and write a comment in the message box. Once you finish your comments, and click OK.

As a result, the system displays the changes in a message box. Click Close

The icon mark changes to indicate the new state (see table above).

 

 

Reset

This option is only available when you have an asset that is currently under the versioning system, and it has changes that have not been committed yet.

 

Choose the assets that you want to reset, and click OK.

As a result, the system displays the changes in a message box. Click Close

The icon mark changes to indicate the new state (see table above).

 

 

Checkout Revision 

You have the following checkout revision possibilities:

  • Checkout the entire repository to a specified commit
    This checkout allows you to restore all the objects in your repository to the state at the specified commit. All objects in the repository will be marked as modified, and you need to make an explicit commit to save the changes.
  • Checkout a single object to a specified commit
    This checkout allows you to restore the selected object in your repository to the state at the specified commit.This object in the repository will be marked as modified, and you need to make an explicit commit to save the changes.

Right-click on the repository, and choose Checkout Revision.

From the provided list, select the commit to be checked out.

As a result, the system displays the list of the changed objects.

 

 

Pull

Fetches data from a remote repository.

Right-click on the repository, and choose Pull.

 

As a result, the system displays a progress bar. Click Pull.

 

 

Push

Pushes data into a remote repository.

Right-click on the repository, and choose Push.

 

As a result, the system displays a progress bar. Click Push.

 

 

Resolve Conflict

Sometimes you have merge conflicts when pulling from a branch. While in conflict, the system displays the exclamation mark to point the assets in conflict.

Conflicting items come in pair, one with the original asset name, which represents the user's version of the asset, and the asset name with the ".remote" suffix represents the version that came from the remote repository.

The following screenshot is an example of an asset in conflict:

To resolve a conflict, choose the desired asset that you want to keep, and right-click to see the Resolve Conflict option.

Depending on which asset you choose to keep, the system deletes the other corresponding asset. 

If you choose to keep the local version, the system deletes the remote file (.remote).

If you choose to keep the remote version, the system deletes the local file and renames the remote file to the original name.

 

 

Update Repository Information

1. You can update the version control information by double-clicking the Version Control option under Settings.

2. Double-click the repository that you want to update.

 

3. Update the information, and click OK.

 

 

 Workflow for Creating a New Repository

 

1. Right-click on the folder that you want to start versioning, and choose Create a Local Repository.

2. Make the changes that you desire, such as editing, adding assets to versioning, and committing the changes.

3. To convert the local repository to a remote repository, follow the Update Repository Information section.

Note: The remote repository that you are entering must be a newly created (uninitialized) Git repository that does not have anything in it.

Multiple Branch Support within Version Control

 There is very limited support for multiple branches in V1 of Version Control. If GitHub (or equivalent) is used to fork off of master, a user can clone that branch from the product version control workflow. The user can then work on that branch and commit, push, and pull changes from that branch only. Interactions among different branches, such as switching branch and merging branches, is not supported. If a Merge Request is created in GitHub (or equivalent) to merge changes from this branch into another as a way to get around the restriction, unfortunately we will not be able to support in product versioning of these branches.

 

FAQ

SOASTA Version Control FAQ 

Attachments

    Outcomes