What do you need help with?

Version Control & Merging Changes

Follow

The Flosum Trial Experience

Index

CHAPTER

FIVE

Concepts

An Overview of Version Control

Version control is the management of changes to the source code and other collections of artifacts. Version control is essential for collaboration on multi-developer projects and it allows multiple projects to be run in parallel.
 
Version control happens at both the Repository and the Branches.
  • The Repository tab represents the master branch, also known as the trunk for version control. It is the one source of truth for your source code. We can see the most recent updates to the version control here: what changes were made, who made the change, and when the changes were made.
  • The Branches tab represents multiple streams of development where developers can collaborate with one or more members to stage development before the code is merged to the Repository.
Version control systems are most commonly run as stand-alone applications that require installation, integration and continued management. With Flosum, version control is fully embedded with no administrative overhead. It is ready for you to use with a few simple clicks. You do not have to learn any complex commands or install any plug-ins to use it.
 

Two Options for Version Control

Flosum’s Version Control is a complete standalone tool, but it can also be integrated with Git, SVN, TFS, and VSTS if desired. 
 
In the integrated approach, Flosum's front end can be used with Git in the background. When synched, any changes made to either side create the mirror images of each other in the opposing interface. So for example, any change on the Flosum side is replicated to git and vice versa.
 

Flosum's Native Version Control

Flosum's native version control is designed and developed with Salesforce and it's customers in mind. Flosum has an extensible architecture to solve the problems of release management in the Salesforce cloud. It is completely built on the force.com platform and has no external footprint. It has the same service level agreements (SLAs) as Salesforce, requires no special maintenance and comes with the same level of security and certification as Salesforce.
 

Key Benefits of Flosum's Native Version Control

Built entirely on the force.com platform, Flosum's native implementation of version control provides a fully integrated and secure repository within Salesforce. Below are the key highlights that make Flosum's Version Control Stand out: 
 
Declarative version control with intuitive user experience: While Git has a powerful distributed architecture and provides a rich set of commands for version control, its adoption has been an uphill battle for the Salesforce developer community. The primary reason for this is a steep learning curve for every user with its complex architectural constructs, the problematic terminology of established source control concepts and an increased number of commands. Flosum's easy-to-use Click-not-Code design makes it simple to administer and use by all developers. It can be adopted within minutes!
 
Deployments are easy and fast: The Flosum Repository is contained within Salesforce. Deployment-manifests are easy to construct from the Repository and can be reused to deploy to other orgs. This is a big differentiator over deployments with Git which is cumbersome and painful as it involves using a combination of the Force.com Migration Tool (FMT) or Eclipse and Ant build scripts to fetch from Git branches and deploy to target organizations. 
 
Robust architecture and rich feature set: Flosum's version control has an architecture that allows multiple developers to collaborate and manage multiple streams of development. Its integrated solution is robust and removes the complexities of installation, management and maintenance of external tools. It does not require additional skilled resources needed to orchestrate, administer and maintain a stable release for scaling the Git built infrastructure and release management activities. Flosum has all the key features that Git provides and more. 
 
Compliance and security: Flosum is built on Salesforce and, hence, adheres to the highest level of security and compliance that the Salesforce platform provides out of the box. All storage is maintained and managed within Salesforce unlike the external footprint needed for Git.
 
Reduced Total Cost of Ownership: Git requires a high total cost of ownership with its build servers, client machines, third-party plug-ins, installation, integration, on-going maintenance, and dedicated personnel for integration and release management. Because of Flosum's integrated design, there is no additional capital and operational expense to manage the infrastructure. Flosum's version control integrates seamlessly with other features of Flosum, like Continuous Integration and deployment, to provide a full and compelling Release Management solution.

What are Branches? 

A branch isolates risk in the development of a feature or project. It allows multiple developers to share code before committing it to the Repository. Branches also allow the development of multiple releases in parallel.
 
When a new branch is created, the branch is empty. As the developers complete the development and testing of their code during the development cycle, the modified components are committed into the branch.
 
After the feature is fully developed, and the code is tested, the branch can be merged with the Repository. Flosum allows developers to keep multiple versions of the code at the branch level.  
 
Now, You Try It!

Create a Branch 

 
  1. Click on the Branches tab
  2. At the top right of the screen, click the "New" button
  3. Name your Branch "B1" 
  4. In the repository box, type "Default" and select it
  5. Push "Save" at the bottom right of the popup box

Commit the Changes from a Snapshot to the Branch

  1. Go to the "Orgs" Tab and select your first source org
  2. Select your "Feature 1" Snapshot
  3. Click the "Commit to Branch" on the top right of the screen
  4. In the "Commit to Branch" box, use the spyglass to select "B1"
  5. In the components section, select the components (Visualforce Page and Custom Object) that you just created in the source organization.
  6. Click on "Continue Commit to Branch" button at the top right the screen
  7. On the branch Commit screen, select the branch name NewFeature
  8. The Commit To Branch: Status Page will appear with three segments:
    • Components that have conflicts
    • Components that are safe to commit
    • Components that will not be committed
  9. The selected components should be in the "Components that are safe to commit" section. Utilize the blue checkboxes to select these components and click the "Continue Commit to Branch" button located at the top left of the screen.
Result: This new branch has the components that you committed.
 

Create a Second Branch

  1. Follow the steps 1-9 to create a second Branch. Use the "Feature 2" snapshot you created previously, and name this Branch "B2."

Congratulations!!! You have completed 60% of the trial!!

Merge/Integration Branches

Now, let's assume two different developers created these branches in an isolated fashion. Developer 1 created "B1" and Developer 2 created "B2." These developers are unaware they are working on the same components. Flosum allows teams to create Integration/Merge Branches that intelligently combine developer's work. By utilizing this feature,  Developer 1 and 2 will become aware that they are working on the same component, and Flosum will allow them to easily merge their work ensuring no valuable code will be overwritten or lost. 
 
Now, You Try It!

Create an Integration Branch 

  1. Click on "Branches" Tab
  2. At the top right of the screen, click the "New" button
  3. Name your Branch "Integration Branch 1" 
  4. In the repository box, type "Default" and select it
  5. Push "Save" at the bottom right of the popup box
  6. Go back to the main Branches Tab at by selecting "Branches" at the top of the screen
  7. Select your B1 Branch
  8. At the top right of the screen, select the "Merge to Existing Branch" box and use spyglass tool to Search for "Integration Branch 1." At the bottom of the screen, Flosum's Merge Conflict Logic will appear. Because the components are new and do not yet exist in the target destination they are listed as "Components that will be merged." 
  9. Utilize the blue checkboxes to select your components and select the "Merge to Branch" button at the top right of the screen.
Result: Now, when you click on Integration Branch 1, you'll see the components are present. 
 

Merge Integration Branch 

  1. Go back to the "Branches" tab and select "B2"
  2. At the top right of the screen, select the "Merge to Existing Branch" box and use spyglass tool to Search for "Integration Branch 1." At the bottom of the screen, Flosum's Merge Conflict Logic will appear. This time, you'll see at the right some of the components say "Autoresolve" or "Conflict." This is because Flosum has automatically compared the two components and detected where conflicts exist between them. 
  3. Now click on the green "Autoresolve" button and a pop-up will appear that will show the conflicts that Flosum has detected.  The source branch is viewable on the left, and the target branch is viewable on the right.
Result: What you will see here will vary, depending on the changes you made to code within your pages. However, to get a feel for this functionality, take a look at a few areas: 
  1. At the top left, you can see how many conflicts were detected and color coding boxes that show new boxes in green and deleted boxes in red. 
  2. You'll also see two black up and down arrow buttons which allow you to scroll through the differences. Utilize these buttons to scroll through your conflicts. 
  3. In the center, between the versions, there are also left/right arrow buttons that allow you to pull code from side to side. Click these buttons to merge your code. 
  4. Also note, that there is an "Undo" button located at the top to undo any changes you have made.
  5. Next, click on the "Manual Edit" button located at the top to see Flosum's manual edit functionality which allows developers to make changes to code text directly within Flosum. Here you can make a manual change and click "Save" or push "Cancel" at the bottom of your screen.
  6. Once you are done making your changes, push the "Save" button at the bottom.

Congratulations, you're 75% of the way there! Just one more step to complete the trial!!

Print Friendly and PDF
Was this article helpful?
0 out of 0 found this helpful

Have Any Feedback or Questions?
Let Us Know What You Think So Far.