Hey everyone,
I am curious if anyone has suggestions for managing different branches and sandboxes within version control. We have 3 main sandboxes and our production org setup with their own branch:
master -> prod
training -> UAT
QA -> QA
develop -> develop
Right now, we struggle with environment specific values such as workflows email alerts with org-wide sender addresses, and custom labels. Maintaining different values across branches makes merges an absolute nightmare. We are selectively checking out individual files or cherry picking commits to move changes across branches/ orgs right now, but it feels like that is not the correct strategy.
I am also curious how folks manage individual files that touch multiple parts of the application, such as permission sets and trigger handlers. Oftentimes, there may be new functionality in a QA branch or sandbox, and only a portion of it is supposed to go to production for a release.
I know we are probably doing something incorrectly, but it seems like normal git branching and merging strategies are fundamentally at odds with the way that Salesforce sandboxes and orgs work.
Looking forward to hear from everyone's experiences and expertise - thank you!
@Mitch Spano the best way to solve it, is adopt trunk based development with scratch orgs for each change request.
For env specific metadata item, I utilize an approach detailed here.
https://dxatscale.gitbook.io/sfpowerscripts/faq/source-packages#what-are-my-options-with-source-packages