Code Lens for Git “Team Activity View”
How to contact the most knowledgeable people about some code?
Let’s assume for a minute that I’ve cloned the Entity Framework open source code, a bit more than half a year ago and started leveraging it. Recently I pulled the latest version, and I now get a bug when disposing the DbContext. I’m interested in understanding two things:
- What is the code churn in the DbContext class in the last 7 months.
- Who would be the most knowledgeable person to contact about this class.
Using CodeLens for git “when last changed” indicator in VS 2013 Update 3
In Visual Studio 2013 update 3, the author indicator, in addition to describing the latest author, and the number of additional people who have changed a code element, also displays how long ago the last change happened. I can see that indeed, some change happened in the last 6 months or so.
But the details popup that the user is getting from this combined indicator and from the changes indicator are still the same. This is a list of changes, sortable by commit id, authors, or commit date.
That’s good, but that does not really help me in answering my question.
Using the “Team Activity View”
In Dev14, we have replaced the popup triggered from the authors indicator by a new popup named the Team Activity View. This view presents the same information, but in a more graphical way and therefore it makes it easier to discover patterns in the commits, which are not obvious on the list.
This view describes:
- How many changes were done by how many authors, over which period of time
- Each commit is represented by a shape (dot or triangle), and the color represents the author
- The horizontal axis presents how many days ago the commit was done
- The vertical axis is just a way of making things more readable by avoiding the commits to graphically be drawn on top of each other
When hovering on a dot, we can see a tooltip containing the details of commit,
And then by right clicking on a shape I can use contextual actions, which are the same as for the list item that is:
- See the commit details
- Contact the author (by email, or IM if Lync is installed)
There are different kind of shapes, depending on whether the commit is an edit, or a merge.
The legend on the right maps colors to authors, the first author being the most recent. If there are more than 5 authors, we group older authors. The color representing them is gray.
As for the other Code Lens indicators, you can dock the popup, and you see that depending on the available horizontal space, the dots representing the commits will be less stacked vertically
Finally, if you prefer working with the dark theme, you’ll be amazed to see that the UX have done a great job coming-up with colors which are the same, but are perfectly readable in both themes
Coming back to my initial problem
Now that we have seen what we can do, let’s answer my initial questions. With this view, I’m able to:
- Notice that someone not so familiar with the code (his color is grey) had done a change a bit more than 6 months ago. Looking at the details of this change, I can confirm that this is a good candidate for my problem. I might contact the author.
- I’m also able to see who is very knowledgeable about this code, because the legend contains the number of changes done by someone. I can see that acjvickers, represented in purple, or the author represented in green were present early on the project, and have done recent changes. They are the people I’m going to contact.
There are more questions related to the pattern of work in the team, which can be answered with this view, and we are looking forward to hearing from you how it will help you in your work.