{"id":27026,"date":"2017-01-09T06:57:46","date_gmt":"2017-01-09T14:57:46","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudioalm\/?p=27026"},"modified":"2019-02-14T15:55:55","modified_gmt":"2019-02-14T23:55:55","slug":"new-year-new-pr-goodies","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/devops\/new-year-new-pr-goodies\/","title":{"rendered":"New Year, New PR Goodies"},"content":{"rendered":"<p>In our <a href=\"https:\/\/www.visualstudio.com\/en-us\/articles\/news\/2017\/jan-05-team-services\">first release of the new year<\/a>, we&#8217;ve included a lot of great pull request features. \u00a0Let&#8217;s take a lap around them to see how they can help improve your workflow.<\/p>\n<h2>My Pull Requests<\/h2>\n<p>One of the big features in the latest release is the new, <a href=\"https:\/\/www.visualstudio.com\/en-us\/articles\/news\/2017\/jan-05-team-services#your-team-services-is-even-more-personalized\">personalized account page<\/a>, which includes a new &#8220;My Pull Requests&#8221; view. \u00a0The experience is just like the existing project scoped PR view, but provides a single place to see all of your PRs, in all projects and repos in the account. \u00a0For developers working in multiple projects and\/or repos, this view makes it significantly easier to keep track of all of your PRs.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/my-pull-requests.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/01\/my-pull-requests-1024x609.png\" alt=\"The new My Pull Requests hub shows your PRs across all repos and projects.\" width=\"879\" height=\"523\" class=\"alignnone size-large wp-image-27035\" \/><\/a><\/p>\n<p>The next feature coming to the My PRs view is the addition of the PRs assigned to the teams that you&#8217;re a member of &#8211; a feature we plan to make available in the next release.<\/p>\n<h2>Highlight updated PRs<\/h2>\n<p>In the My PRs view (and in the existing PR hub), you&#8217;ll notice another new feature &#8211; highlights about what&#8217;s new in your PRs. \u00a0At a glance, you can see which PRs have updates, as well as what&#8217;s changed &#8211; whether it&#8217;s a new comment, votes from reviewers, or newly pushed changes.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/pr-updates-list.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/01\/pr-updates-list.png\" alt=\"See what is changing in your pull requests. New comments, new votes, new code changes.\" width=\"204\" height=\"54\" class=\"alignnone size-full wp-image-27036\" \/><\/a><\/p>\n<p>Once you open a PR with updates, the Overview will highlight the changes that have occurred since you last viewed the PR. \u00a0In the example below, you can see the new vote from Mateo, and the update to the comment on Program.cs.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/pr-updates-overview.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/01\/pr-updates-overview.png\" alt=\"The pull request overview highlights the updates since your last visit.\" width=\"777\" height=\"516\" class=\"alignnone size-full wp-image-27045\" \/><\/a><\/p>\n<h2>View diffs of the latest code changes<\/h2>\n<p>When a PR has new code changes since you last viewed it, the overview will provide a link to see the diff between the latest changes and the code as you last saw it.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/pr-updates-code.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/01\/pr-updates-code.png\" alt=\"When a pull request has code changes, the Overview shows a link to view the diffs since you last saw the code.\" width=\"776\" height=\"262\" class=\"alignnone size-full wp-image-27055\" \/><\/a><\/p>\n<p>Clicking on the link will take you to the <strong>Files<\/strong> view where you can see how the code has changed while you&#8217;ve been away. \u00a0In the screenshot below, notice the &#8220;Comparing 6 to 8&#8221;, which indicates that this is a diff between pull request updates. \u00a0The list of changed files and the code diffs are scoped to just those files with changes since you&#8217;ve last viewed the PR. \u00a0This feature is really useful to see how the author has responded comments you&#8217;ve left on a PR.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/pr-updates-diff.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/01\/pr-updates-diff.png\" alt=\"View the code diffs between updates of a pull request.\" width=\"842\" height=\"340\" class=\"alignnone size-full wp-image-27065\" \/><\/a><\/p>\n<h2>Email notifications<\/h2>\n<p>Staying up to date on all of your PRs can be tough &#8211; email notifications can make that easier, especially when they&#8217;re automatically configured for you. \u00a0In the latest release, we have a <a href=\"https:\/\/www.visualstudio.com\/en-us\/articles\/news\/2017\/jan-05-team-services#out-of-the-box-notifications-preview\">preview of a new &#8220;out-of-the-box notifications&#8221; feature<\/a>, which includes notifications for your PR changes. \u00a0This feature is great for ensuring that all of the reviewers on your PRs know that you&#8217;ve asked them to review your changes &#8211; and it will help you know when your input is needed by others.<\/p>\n<p>Currently, these default notifications only work for individual reviewers &#8211; teams and groups added to reviews won&#8217;t receive emails yet. \u00a0We know this is a painpoint, and we&#8217;re working hard to improve that in an upcoming release. \u00a0In the meantime, you might try <a href=\"https:\/\/www.visualstudio.com\/en-us\/docs\/notify\/manage-team-notifications\">configuring team notifications manually<\/a>\u00a0so PRs don&#8217;t fall through the cracks.<\/p>\n<h2>Attachments<\/h2>\n<p>One of the most frequently asked for PR features has been to allow images on the clipboard to be pasted into comments &#8211; screenshots of UI changes are number one scenario. \u00a0With the addition of attachments, we&#8217;re now able to support images pasted from the clipboard.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/Attachments2.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/01\/Attachments2.png\" alt=\"Attaching a screenshot to a pull request comment.\" width=\"790\" height=\"264\" class=\"alignnone size-full wp-image-27085\" \/><\/a><\/p>\n<p>You can also attach other file types that are rendered as links in the comments. \u00a0Here&#8217;s an example of a Word doc being dragged into a comment.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/attach_files.gif\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/01\/attach_files.gif\" alt=\"Drag files into the comment box to attach them to a comment.\" width=\"698\" height=\"176\" class=\"alignnone size-full wp-image-27075\" \/><\/a><\/p>\n<p>The next feature for attachments will be to allow files to be attached to the PR description when you&#8217;re creating the PR. \u00a0As a workaround, you can edit the description after the PR is created to add your screenshots and other attachments like test plans, specs, etc.<\/p>\n<h2>Merge conflict details<\/h2>\n<p>For PRs with conflicts, we&#8217;ve made it easier to identify which files have conflicts. \u00a0When you have a PR with conflicts, the list of conflicting files and the type of conflicts will be shown in the PR overview.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/Conflicts.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/01\/Conflicts.png\" alt=\"Pull requests with conflicts show the list of conflicting files and the conflict types.\" width=\"828\" height=\"303\" class=\"alignnone size-full wp-image-27095\" \/><\/a><\/p>\n<h2>Merge strategy policy<\/h2>\n<p>Some teams care a lot about how their PRs should be merged into the target branch. \u00a0Some want to see the merge commits so they see the history of the intermediate commits, while others want a clean history graph and choose to squash. \u00a0Until now, the choice to merge or squash was a user option, and could be changed on each PR. \u00a0With the new merge strategy policy, teams can configure how PRs should be merged for each branch.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/MergeStrategyPolicy.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/01\/MergeStrategyPolicy.png\" alt=\"Configure whether PRs must be merged or squashed.\" width=\"421\" height=\"111\" class=\"alignnone size-full wp-image-27115\" \/><\/a><\/p>\n<h2>Exclude paths from required reviewer policies<\/h2>\n<p>Teams using the <a href=\"https:\/\/www.visualstudio.com\/en-us\/docs\/git\/branch-policies#require-code-reviews\">required reviewers policy<\/a> sometimes find that not all items in a given folder need review signoff from a specific team. \u00a0To accommodate this, we&#8217;ve enabled path exclusions when configuring policies. \u00a0Simply add a &#8220;!&#8221; prefix on the paths you want to exclude from the policy. \u00a0The example below shows how you might configure all files to require signoff from someone in the Contributors group, except for changes to the docs folder.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/Exclusions.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/01\/Exclusions.png\" alt=\"Paths can be excluded from policies by prefixing with an exclamation point (!)\" width=\"823\" height=\"103\" class=\"alignnone size-full wp-image-27105\" \/><\/a><\/p>\n<p>The next few releases will contain more great PR features, so stay tuned. \u00a0And if there is something we&#8217;re missing, don&#8217;t hesitate to submit ideas on the <a href=\"https:\/\/visualstudio.uservoice.com\/forums\/330519-team-services\">Team Services UserVoice site<\/a>.<\/p>\n<p>Happy coding!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In our first release of the new year, we&#8217;ve included a lot of great pull request features. \u00a0Let&#8217;s take a lap around them to see how they can help improve your workflow. My Pull Requests One of the big features in the latest release is the new, personalized account page, which includes a new &#8220;My [&hellip;]<\/p>\n","protected":false},"author":198,"featured_media":45953,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-27026","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops"],"acf":[],"blog_post_summary":"<p>In our first release of the new year, we&#8217;ve included a lot of great pull request features. \u00a0Let&#8217;s take a lap around them to see how they can help improve your workflow. My Pull Requests One of the big features in the latest release is the new, personalized account page, which includes a new &#8220;My [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/27026","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/users\/198"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/comments?post=27026"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/27026\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media\/45953"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media?parent=27026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/categories?post=27026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/tags?post=27026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}