When developing extensions for Microsoft Dynamics 365 for Finance and Operation you will most likely use Team Foundation Version Control (TFVC). If your using Git for this process, as described in one of my previous posts, you will have to “translate” your well-known TFVC process/flow to Git process/flow. I know that the change from TFVC to Git is not only a translation of the flow, but it is more the change of a mindset. What I also know is that the term GitFlow is already assigned to a branching model for Git, created by Vincent Driessen. The “Git flow” and “TFVC flow” in this post is more meant as processes when using Git or TFVC. The branching strategy of GitFlow I will map to MSDyn365FO in one of my following posts.
In this blog I want to “simply” translate some of the well-known TFVC processes/flows to Git. After this creation of a common knowledge I want to describe the development process for a PBI or bug when using Git, in one of my next posts.
Create workspace mapping = Clone repository & create symbolic link
Before you can start developing extensions for MSDyn365FO with TFVC you have to create a workspace mapping to assign your AOS folder to your repository. With Git you will clone your repository to a folder on your environment and create a symbolic link into your AOS folder, to get the connection between the AOS folder and the repository.
Check-In changes = Commit and push changes
When you are done with your development work or when you want to bring the current version of your work to version control, you check-in your changes with TFVC. With Git you commit and push your changes.
Create code review = Create pull request
The review of the changed/added code is handled by code reviews with TFVC before the check-in and with Git via pull requests after you committed and pushed your changes.
Complete pull request
The step of completing a pull request has no direct equivalent in TFVC. By completing a pull request the changed/added code get´s merged into the target branch e.g. develop.
Exclude/include changes = Stage/unstage changes
With TFVC you exclude/include changes to compile the changes you want to check-in. With Git you stage/unstage changes you want to commit. The advantage with Git is that you can compare staged and unstaged changes per element, so stage will already save the staged state.
Get latest version = Pull
When you want to get the latest (checked-in) version, you will simply perform “get latest” on your current branch with TFVC. With Git you can pull the latest version, but because your most likly using your “private” developemt branch you have to merge the latest changes from e. g. development branch into your “private” development branch.