Resolving NitroX Merge Conflicts
If your team is using NitroX, and more than one team member is working on the same project, creating the Test Steps and components it’s possible that you may encounter merge conflicts if use create the same FACT component. We would highly recommend that you commit often with small changes so that Git works in your favour rather than waiting to make your commit perfect, it’s better to work in small chunks and keep committing your work to minimise these issues occurring.
If you do encounter a merge conflict with NitroX we recommend you use the following steps to help you resolve the conflicts where two users have created the same component and encountered a merge conflict on the pull request. In this example, I’m merging the main branch into my feature branch change2.
Using a tool like Github, once the pull request is created and in conflict, select the Resolve Conflicts button on the pull request screen.
Above: Snapshot of Branch Conflict.
With NitroX, depending on the size of your commit and pull request you may only have 1 file affected, you may have multiple files but the key point to remember is that depending on the merging strategy you need to be consistent and consider the impact of the change decide to:
- Keep your branch’s changes: could this impact existing test
- Keep only the other branch’s changes: you’ll need to update your branch’s files
- Make a branch new change incorporating changes from both: consider the two previous two points.
Delete the conflict markers <<<<<<<, =======, >>>>>>> and make the changes you want in the final merge. In most cases, it’s advisable to Keep only the other branch’s changes and update your branch to prevent issues in files that aren’t in conflict. In the example below, I will accept the changes from main and update my files paying particular attention to the FACT component and Test Case files created.
In the following example, I have several conflicts and I’ve decided to keep the Keep only the other branch’s changes so I’ll manually remove the conflicts.
Above: Snapshot of Branch’s changes.
Once you’ve resolved all the conflicts in the file, click Mark as resolved.
Above: Snapshot of Resolved Conflicts.
If you have more than one merge conflict in your file, scroll down to the next set of conflict markers and repeat the previous steps to resolve your merge conflict.
Once you’ve resolved all your merge conflicts, click Commit merge. This merges the entire base branch into your feature branch.
Above: Snapshot of Commit merge.
Once the merge is confirmed, pull the latest changes from the remote branch and check your test is working as expected. Then commit your changes and merge to the main.
We understand that this could become quite complicated and we are working to enhance the product to improve this user experience and assist you in working with source control repositories.
To get a deeper understanding of NitroX, we recommend the following UP courses:
- Provar Automation
- System Requirements
- Browser and Driver Recommendations
- Installing Provar Automation
- Updating Provar Automation
- Licensing Provar
- Granting Org Permissions to Provar Automation
- Optimizing Org and Connection Metadata Processing in Provar
- Using Provar Automation
- API Testing
- Behavior-Driven Development
- Consolidating Multiple Test Execution Reports
- Creating and Importing Projects
- Creating Test Cases
- Custom Table Mapping
- Functions
- Debugging Tests
- Defining a Namespace Prefix on a Connection
- Defining Proxy Settings
- Environment Management
- Exporting Test Cases into a PDF
- Exporting Test Projects
- Japanese Language Support
- Override Auto-Retry for Test Step
- Mapping and Executing the Lightning Article Editor in Provar
- Managing Test Steps
- Namespace Org Testing
- NitroX
- Provar Automation
- Provar Test Builder
- ProvarDX
- Refresh and Recompile
- Reintroduction of CLI License Check
- Reload Org Cache
- Reporting
- Running Tests
- Searching Provar with Find Usages
- Secrets Management and Encryption
- Setup and Teardown Test Cases
- Tags and Service Level Agreements (SLAs)
- Test Cycles
- Test Plans
- Testing Browser Options
- Tooltip Testing
- Using the Test Palette
- Using Custom APIs
- Callable Tests
- Data-Driven Testing
- Page Objects
- Block Locator Strategies
- Introduction to XPaths
- Creating an XPath
- JavaScript Locator Support
- Label Locator Strategies
- Maintaining Page Objects
- Mapping Non-Salesforce fields
- Page Object Operations
- ProvarX™
- Refresh and Reselect Field Locators in Test Builder
- Using Java Method Annotations for Custom Objects
- Applications Testing
- Provar Manager
- How to Use Provar Manager
- Provar Manager Setup
- Provar Manager Integrations
- Release Management
- Test Management
- Test Operations
- Provar Manager and Provar Automation
- Setting Up a Connection to Provar Manager
- Object Mapping Between Automation and Manager
- How to Upload Test Plans, Test Plan Folders, Test Plan Instances, and Test Cases
- Provar Manager Filters
- Uploading Callable Test Cases in Provar Manager
- Uploading Test Steps in Provar Manager
- How to Know if a File in Automation is Linked in Test Manager
- Test Execution Reporting
- Metadata Coverage with Manager
- Provar Grid
- DevOps
- Introduction to Provar DevOps
- Introduction to Test Scheduling
- Apache Ant
- Configuration for Sending Emails via the Automation Command Line Interface
- Continuous Integration
- AutoRABIT Salesforce DevOps in Provar Test
- Azure DevOps
- Running a Provar CI Task in Azure DevOps Pipelines
- Configuring the Automation secrets password in Microsoft Azure Pipelines
- Parallel Execution in Microsoft Azure Pipelines using Multiple build.xml Files
- Parallel Execution in Microsoft Azure Pipelines using Targets
- Parallel execution in Microsoft Azure Pipelines using Test Plans
- Bitbucket Pipelines
- CircleCI
- Copado
- Docker
- Flosum
- Gearset
- GitHub Actions
- Integrating GitHub Actions CI to Run Automation CI Task
- Remote Trigger in GitHub Actions
- Parameterization using Environment Variables in GitHub Actions
- Parallel Execution in GitHub Actions using Multiple build.xml Files
- Parallel Execution in GitHub Actions using Targets
- Parallel Execution in GitHub Actions using Test Plan
- Parallel Execution in GitHub Actions using Job Matrix
- GitLab Continuous Integration
- Travis CI
- Jenkins
- Execution Environment Security Configuration
- Provar Jenkins Plugin
- Parallel Execution
- Running Provar on Linux
- Reporting
- Salesforce DX
- Git
- Version Control
- Masking Provar Credentials on CI
- Salesforce Testing
- Best Practices
- Improve Your Metadata Performance
- Java 21 Upgrade
- Salesforce Connection Best Practices
- Testing Best Practices
- Automation Planning
- Supported Testing Phases
- Provar Naming Standards
- Test Case Design
- Create records via API
- Avoid using static values
- Abort Unused Test Sessions/Runs
- Avoid Metadata performance issues
- Increase auto-retry waits for steps using a global variable
- Create different page objects for different pages
- The Best Ways to Change Callable Test Case Locations
- Working with the .testProject file and .secrets file
- Best practices for the .provarCaches folder
- Best practices for .pageObject files
- Troubleshooting
- How to Use Keytool Command for Importing Certificates
- Installing Provar After Upgrading to macOS Catalina
- Browsers
- Configurations and Permissions
- Connections
- DevOps
- Error Messages
- Provar Manager 3.0 Install Error Resolution
- Provar Manager Test Case Upload Resolution
- Administrator has Blocked Access to Client
- JavascriptException: Javascript Error
- macOS Big Sur Upgrade
- Resolving Failed to Create ChromeDriver Error
- Resolving Jenkins License Missing Error
- Resolving Metadata Timeout Errors
- Test Execution Fails – Firefox Not Installed
- Selenium 4 Upgrade
- Licensing, Installation and Firewalls
- Memory
- Test Builder and Test Cases
- Release Notes