Git for the TFVC User – Workflow Investigations Part 2: Reviewing Changes (No Conflicts)
… co-authored with Dan Hellem, complementing the Version Control (ex Branching and Merging) Guide.
Continued from Part 1 – Making Changes, we would like to share our notes, NOT guidance, and invite you to give us candid feedback on our proposed walkthroughs that are related to the high-level workflow steps mentioned above:
- Part 1 – Making Changes (using centralized workflow and using topic branch workflow)
- Part 2 (this) – Reviewing Changes (No Conflicts)
- Part 3 – Reviewing Changes (with conflicts)
- Part 4 – Converting a TFVC repository
walkthrough 2.1 – reviewing changes using a Pull Request
We walk through the centralized workflow without creating merge conflicts to keep this workflow simple.
See Conduct a Git pull request on Visual Studio Online blog post for a detailed walkthrough.
We cover this portion of the Git Workflow quick reference poster:
Step |
Instructions |
||
1 Create topic branch, commit change and publish ꙱ - Done |
|
||
2 Create Pull Request ꙱ - Done |
Now that Doris has made her changes and published them to the repo, she will probably want someone on her team to review those changes. To do this, Doris will need to create a pull request.
|
||
3 View Pull Request ꙱ - Done |
Doris has completed the pull request and now Dan (or other teammates) need to review the changes Doris has introduced.
|
||
4 Comment and Respond ꙱ - Done |
… to be continued in PART 3 - Reviewing Changes (With Conflicts) |
Thoughts?
Comments
- Anonymous
April 16, 2015
Nice article. Since the 2013 Update 4 release of TFS, I now thinks it's possible to use TFS and Git in a "nice" manner. However, I really think the Git client in Visual Studio needs work. I've been using Git (and other VCSes) for a number of years and I'm working with a small tram of experienced devs who have primarily used the "old" TFSVC through Visual Studio where the majority of the workflow has been well automated. When the team started using Git, they ran into problems with conflict resolution. The IDE didn't help so I moved them over to SourceTree by Atlassian and it made life a bit easier. I guess the key scenarios that it would be great if you could cover (happy to help if you want) are when:
- Origin master has moved on since user created their local topic branch (before push/pull request)
- Origin master moves on during the pull review process (I.e. just accept merge commit and dodgy looking history, or local rebase + force push to topic branch to fixup my code review)
- Rework for issues found during review (I.e. append commit, or local squash + force push) I know that force push is an advanced topic but I always try to do fast-foward merges to keep my history linear.
- Anonymous
April 16, 2015
The comment has been removed - Anonymous
April 17, 2015
@Philippe >Not very good choice! A very opinionated statement there but I assume you meant no offence (I didn't take any). The method I described is no more "wrong" or "better" than yours. It all comes down to personal preference and the whole merge/debase issue is perhaps the most debated issue between Git users. There are advantages to my approach, just as there are to yours. I made it clear my method was a personal opinion. I'm not responding to your post to insight a "flame war". I am only doing so to ensure that readers of this article, who are probably new to Git, understand that there are multiple options available to them and that they should consider what is best for their situation. I respect your very passionate opinion.