如何从 TFS 2010 中导出包含用户、日期和完整评论(未截断)的历史记录?
例如,在团队资源管理器中:右键单击团队成员名称 > 显示签入历史记录。这将显示用户的签到历史记录,但评论会被截断。
您在这里有 3 个选项:
1 号可能是最简单的,所以我将从它开始。您可以在此处阅读 tf history 命令的文档。为了使注释不被截断,您需要使用 /format:detailed 选项。如果您想要所有历史记录,请尝试以下操作:
tf 历史 $/ /r /format:detailed /noprompt
如果您正在查找给定用户的所有变更集,请尝试以下操作:
tf 历史 $/ /r /format:detailed /user: /noprompt
这将产生大量的文本输出,您需要对其进行解析才能将其放入 excel 中。试一试,如果您对选项 2 或 3 感兴趣,请告诉我,我可以为您提供更多详细信息。
最简单的方法是从 excel 连接到 TFSWharehouse,然后从 excel 表中的源代码管理历史记录中提取数据。这真的很简单,也很强大。
你会在这里找到有用的信息:http ://www.woodwardweb.com/vsts/getting_started.html
编辑:
当您无权访问 SSAS(例如 tfspreview.com)时,使用 TFS API 枚举变更集:
TeamProjectPicker tpp = new TeamProjectPicker(TeamProjectPickerMode.SingleProject, true);
tpp.ShowDialog();
var tpc = tpp.SelectedTeamProjectCollection;
VersionControlServer versionControl = tpc.GetService<VersionControlServer>();
var tp = versionControl.GetTeamProject("MyTeamProject");
var path = tp.ServerItem;
var q = versionControl.QueryHistory(path, VersionSpec.Latest, 0, RecursionType.Full, null, new ChangesetVersionSpec(1), VersionSpec.Latest, Int32.MaxValue, false, true, false, false);
foreach (Changeset cs in q)
{
var user = cs.Owner;
var comment = cs.Comment;
var date = cs.CreationDate;
Debug.WriteLine(string.Format("[{3}] Date: {0}, User: {1}, Comment {2}", date, user, comment, cs.ChangesetId));
}
您还可以像这样使用TFS Rest API:-
https://{accountName}.visualstudio.com/{project}/_apis/tfvc/changesets?
searchCriteria.author={userName}&$top=100
这将生成一个 JSON,您可以将其上传到任何在线站点,例如https://json-csv.com/并获取 CSV。
Visualstudio.com 的比上述更简单的再现
https://{accountName}.visualstudio.com/{project}/_apis/tfvc/changesets?$top=10000&maxCommentLength=2000
您需要最大评论长度来阻止它被截断。上述工具不起作用,但这个工具起作用:http: //www.convertcsv.com/json-to-csv.htm
但是,考虑到共享,这实际上不是自动导出。
对于 VS2015,我发现更容易关注的是(大约 20 个变更集)
对所有变更集进行了上述操作并获得了我的完整列表。