Update Sets or Branches?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-09-2022 02:15 PM
I have a general question about the process for creating applications in ServiceNow. I am new to the software development field (been in IT for years) and struggle with best practices in terms of issues, changes/modifications, installation. For the 20+ years I have been in IT, I know that there are multiple ways to attack an issue, it all depends on personal preference, as long as you follow the overall process. This is where development has me lost a bit. What is a better way to do things in ServiceNow in terms of deploying new capabilities or fixing bugs found in applications?
One way is to use Update Sets. Create a new update set, make the changes that need to be made, test those changes and then complete the update set in Development environment. Then go to production, import the completed update set and then apply the remote update set to the production environment.
Another way is to use Studio and link to a remote repository (in my case GitHub). Once I have done that I can use branches and pull requests to update the code and then install the update in my production environment.
1. What are the benefits of using update sets versus branches and vice versa.
2. If using branches, do I need to worry myself with update sets since each change request should have its own branch.
I have come up with a flow like this. I am the sole developer for my application so there really is no need to use GitHub other than I want it stored somewhere other than in ServiceNow.
If (changeRequest=true) {
createBranch(newbranch)
createUpdateSet(newUpdateSet)
makeModifications()
var Test=true
test = completeTesting(blah blah blah If good return true, else return false)
If (!test){
makeModifications()
} else {
commitChange()
completeUpdateSet(newUpdateSet)
createPullRequest(newBranch)
mergePullRequest(newBranch)
installNewVersion()
}
- Labels:
-
Scoped App Development
-
Studio

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-09-2022 02:33 PM
Hi Aaron,
Update set is where ServiceNow started with for deployments.
In addition to moving changes for an enhancement via one update set, one can also use Batching of update sets (multiple update sets grouped and deployed in an order) and Merging of update sets (combining multiple update sets into 1).
While the former comes in handy when update sets should be deployed in a certain order, the latter helps with combining multiple update sets (say you move update set 1 from DEV to TEST, where a few defects are observed and create update sets 2 and 3 to fix those, these can be merged into a single update set in TEST before they are deployed to the next instance in line).
Coming to Github and branches, CI / CD is where ServiceNow wants to move ahead with the deployment approach. Although there are teams that have adopted this, there are still many that rely on the update set approach for deployment.
Hope this helps.
Thanks,
Arav
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-09-2022 02:56 PM
So utilizing CI/CD, would one use update sets or just stick to commits/branches (CI/CD)?