In the release
v2.0.10032.1, we made a change to the whitespace when deploying to DX format git repos:
What this change is
Previously Gearset was adding an extra 4 spaces to each line within the components of object files:
We now no longer add these extra spaces:
Why did we make this change?
We made this change to be consistent with the whitespace in files when you run
force:source:retrieve using the SFDX CLI.
The extra spacing was causing merge conflicts for users who used Gearset in conjunction with the SFDX CLI.
Which files does this change affect?
- This will only have an effect if you are using a DX format repo.
- This will affect components in Custom Objects, including:
Weblinks. For example the
Custom Fieldsfiles in the
objects/OBJECT_NAME/fields/folder will show this change.
- It will affect all components for the file if you have a change within the
How will this change show up?
As this is a change to Gearset's behaviour, if you have previously deployed just using Gearset, this will show up as a whitespace change on existing files:
In the short term this means your next deployment to each custom object will
result in some extra noise in the form of whitespace changes, but going forwards the XML will be more consistent with what the SFDX CLI produces and so provide a better experience for users of different tools across your teams.
Tips for ignoring whitespace changes in git
If you want to ignore the whitespace changes in a comparison in GitHub, you can select
Hide whitespace changes in the settings for a comparison or a Pull Request:
You are also able to do this by adding a
?w=1 to the url (or just adding
w=1 if you already have a
? in your url). This also works for most other source control systems such as GitLab, and Bitbucket.
How you can sync all these whitespace changes at once
These changes will happen for all components in an object, when the object or a component of the object gets deployed. If you want to copy all these changes at once, you can follow these steps:
Create a new branch off
master in your repo, called something like
On your machine: select all the files and folders in the
objects folder and delete them.
Commit these deletions to the branch and push the branch to the repository.
Run a comparison in Gearset between the Salesforce org (Source) and the
sync-custom-object-whitespace branch for just the
Custom Objects (ensuring
Include managed packages is set to
Select all the new items
Then deploy them
Create a pull request
View the pull request and hide the whitespace changes (see section above)
The changes should show only whitespace changes
Once this is merged in, you should not see any whitespace changes on the components in future deployments.