Как получить git как статистика из TFS
Я работаю с TFS уже несколько месяцев и хочу получить базовую статистику и сделать ее доступной для нашей команды. В git я могу получить статистику по "commit by author" и "commit by date" и т.д.
Я хотел бы показать аналогичную статистику из TFS (или из TeamCity).
Возможно ли это?
Ответы
Ответ 1
Самый простой способ найти в статистике TFS - играть с отчетами Excel - вы можете опираться на все, что только можете себе представить. Для руководства по началу работы взгляните на это сообщение в блоге, я написал:
http://www.woodwardweb.com/vsts/getting_started.html
TFS предоставляет полный хранилище данных в верхней части данных обычного репозитория для вас.
Ответ 2
Вы можете использовать TFS API для создания любых запросов. Вы можете легко перебирать все изменения, которые ищут все коммиты определенного автора, или фиксируются в определенную дату:
TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri("http://tfsserver:8080/"));
tpc.EnsureAuthenticated();
VersionControlServer vcs = tpc.GetService<VersionControlServer>();
int latest = vcs.GetLatestChangesetId();
DateTime earliestDate = new DateTime(2011, 1, 1);
do
{
var changeset = vcs.GetChangeset(latest);
if (changeset.CreationDate < earliestDate)
{
break;
}
// do analysis of the changeset here,
// e.g. use changeset.Committer or changeset.Changes
} while (latest-- > 0);
Ответ 3
Здесь вы можете найти некоторые запросы, которые вы можете выполнить в базе данных TFS, чтобы получить некоторую статистику.
-- Change this to the name of your collection DB. You’ll need to run these queries for each of your collection DBs.
USE Tfs_DefaultCollection
GO
-- Recent Users
select count(distinct IdentityName) as [Recent Users] from tbl_Command with (nolock)
-- Users with Assigned Work Items
select count(distinct [System.AssignedTo]) AS [Users with Assigned Work Items] from WorkItemsAreUsed with (nolock)
-- Version Control Users
select COUNT(*) AS [Version Control Users] from [Tfs_Configuration].[dbo].tbl_security_identity_cache as ic JOIN tbl_Identity as i ON i.TeamFoundationId=ic.tf_id where ic.is_group = 0
-- Total Work Items
select count(*) AS [Total Work Items] from WorkItemsAreUsed with (nolock)
-- Areas and Iterations
select count(*) AS [Areas and Iterations] from tbl_nodes with (nolock)
-- Work Item Versions
select count(*) AS [Work Item Versions] from (select [System.Id] from WorkItemsAreUsed with (nolock) union all select [System.Id] from WorkItemsWereUsed with (nolock)) x
-- Work Item Attachments
select count(*) AS [Work Item Attachments] from WorkItemFiles with (nolock) where FldID = 50
-- Work Item Queries
select count(*) AS [Work Item Queries] from QueryItems with (nolock)
-- Files
select count(*) as [Files] from tbl_VersionedItem vi with (nolock) join tbl_Version v with (nolock) on v.ItemId = vi.ItemId where VersionTo = 2147483647
-- Compressed File Sizes
select (sum(convert(bigint,OffsetTo - OffsetFrom + 1)) / (1024 * 1024)) AS [Compressed File Sizes] from tbl_Content with (nolock)
-- Uncompressed File Sizes
select (sum(FileLength) / (1024 * 1024)) AS [Uncompressed File Sizes] from tbl_File with (nolock)
-- Checkins
select max(ChangeSetId) AS [Checkins] from tbl_ChangeSet with (nolock)
-- Shelvesets
select COUNT(*) AS [Shelvesets] from tbl_Workspace with (nolock) where type='1'
-- Merge History
select SUM(st.row_count) AS [Merge History] from sys.dm_db_partition_stats st WHERE object_name(object_id) = 'tbl_MergeHistory' AND (index_id < 2)
-- Pending Changes
select count(*) AS [Pending Changes] from tbl_PendingChange pc with (nolock) join tbl_Workspace w with (nolock) on pc.WorkspaceId = w.WorkspaceId where w.Type = 0
-- Workspaces
select COUNT(*) AS [Workspaces] from tbl_Workspace with (nolock) where type='0'
-- Local Copies
select SUM(st.row_count) AS [Local Copies] from sys.dm_db_partition_stats st WHERE object_name(object_id) = 'tbl_LocalVersion' AND (index_id < 2)
-- Command Counts
select Command, count(*) as [Execution Count] from tbl_Command with (nolock) WHERE Command IN ('QueryWorkitems', 'Update', 'GetWorkItem', 'Get', 'VCDownloadHandler', 'Checkin', 'Upload', 'Shelve') GROUP BY Command, Application ORDER BY [Application],[Command]
Ответ 4
Я обнаружил, что в Visual Studio Team System Web Access есть представление с настройками изменений на вкладке "источник". Выбранный желаемый проект и выберите историю версий из раскрывающегося списка проекта.
Этого достаточно для моих нужд.
Ответ 5
Существует TFT Performance Report Pack, который даст вам информацию, но это не совсем запрошенная вами информация.
- Резюме времени выполнения
- Состояние сервера - очередь запросов контроля версий
- Состояние сервера - Лучшие пользователи, обходящие прокси.
- Состояние сервера - исторические тренды производительности
- Состояние сервера - последние тенденции производительности