Fortunately, this kind of branch does not require green fingers. Branches are a great tool to organize multiple versions of AL-code and keep a brigade of developers happy. This article will describe an approach for branches in a project environment.
Branches are useful in situations in which it is necessary to maintain and organize source code in multiple versions for the same production system. For Dynamics NAV-projects it is a common environment to have at least three databases: a development-, a test- and a production-database. Due to a lack of version control in the classic DEV-environment, one of the strategies for source code management is, to copy code changes from the development-database as soon as possible to the test- and production-database. Additionally, it may be necessary to check every object, because it could be that either code will be overwritten or not-yet-ready changes could be delivered into production.
Branches enabling a new way of management with a modern aspect, eliminating the above described problems by using a system-controlled version management. A Version Control-system will identify changes and force the developer to check automatically. When delivering code, the delivery can be without doubts.
For a classic project-environment three major branches are a possibility to utilize the Version Control-integration in a modern software delivery approach. The following diagram demonstrates the cooperation of a development-, test- and production-branch.
As the diagram shows, it is a possibility to merge changes of the test-branch into the development-branch. This delivery direction is, of course, an individual decision.
For the process of development (sprints!), branches are helpful also. Imagine a project with several developers working for the same client on different tasks. Each developer could easily create a personal branch of the development-branch and work undisturbed on the tasks as demonstrated in the following diagram.
The adoption of VSCode with Version Control will create new tasks for development in Dynamics NAV, but it will boost the effectivity.