1
A
回答
0
你可以試試這個博客帖子使用Excel作爲TFS報告工具,如:
http://www.woodwardweb.com/vsts/getting_started.html
PS。我在this question找到鏈接。
0
我搜索不同的方式,最後我發現,最好的辦法是使用TFS API
這裏是代碼:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;
namespace VControl
{
class Program
{
class SourceElement
{
public string filename;
public int numberOfModification;
}
static void Main(string[] args)
{
TfsTeamProjectCollection projectCollection = new
TfsTeamProjectCollection(new Uri("http://server:8080/tfs/ProjectCollection/"),
new System.Net.NetworkCredential("username", "password"));
projectCollection.EnsureAuthenticated();
Workspace workspace = null;
Boolean createdWorkspace = false;
String newFolder = String.Empty;
VersionControlServer versionControl = projectCollection.GetService<VersionControlServer>();
var teamProjects = new List<TeamProject>(versionControl.GetAllTeamProjects(false));
String workspaceName = String.Format("{0}-{1}", Environment.MachineName, "TestWorkspace");
try
{
workspace = versionControl.GetWorkspace(workspaceName, versionControl.AuthorizedUser);
}
catch (WorkspaceNotFoundException)
{
workspace = versionControl.CreateWorkspace(workspaceName, versionControl.AuthorizedUser);
createdWorkspace = true;
}
var serverFolder = String.Format("$/{0}", teamProjects[0].Name) + "/solutionFolder/";
var localFolder = Path.Combine(Path.GetTempPath(), "localFolder") + "/solutionFolder/";
var workingFolder = new WorkingFolder(serverFolder, localFolder);
// Create a workspace mapping.
workspace.CreateMapping(workingFolder);
if (!workspace.HasReadPermission)
{
throw new SecurityException(
String.Format("{0} does not have read permission for {1}",
versionControl.AuthorizedUser, serverFolder));
}
// Get the files from the repository.
workspace.Get();
string[] directories = Directory.GetDirectories(workspace.Folders[0].LocalItem);
FileStream outputFile = new FileStream("result.txt", FileMode.Create);
StreamWriter writer = new StreamWriter(outputFile);
List<SourceElement> fileLiset = new List<SourceElement>();
foreach (string dir in directories)
{
foreach (string file in Directory.GetFiles(dir))
{
string filenamae = System.IO.Path.GetFileName(file);
Item source = versionControl.GetItem(file);
System.Collections.IEnumerable history = versionControl.QueryHistory(file,
VersionSpec.Latest, 0, RecursionType.Full, null, null, null, 300, true, true, false, false);
int numberOfModification = 0;
foreach (var item in history)
numberOfModification++;
SourceElement fileElement = new SourceElement();
fileElement.filename = filenamae;
fileElement.numberOfModification = numberOfModification;
fileLiset.Add(fileElement);
}
}
var sortedList = fileLiset.OrderBy(x=> x.numberOfModification);
// Loop through keys.
foreach (var key in sortedList)
{
writer.WriteLine("{0}: {1}", key.filename, key.numberOfModification);
}
writer.Close();
}
}
}
相關問題
- 1. Git:文件「已更改但未更新」
- 2. SVN僅導出已更改的文件
- 3. 已更改文件的列表
- 4. 在Subversion中,列表文件在樹幹上已更改但未在分支上發生更改,並且已在
- 5. phpStorm在項目視圖中顯示已更改/已更改的文件
- 6. 如何使用nant從TFS獲取已更改的文件
- 7. 查看TFS中所有已更改的文件
- 8. 更改已編譯iPhone應用程序的.ipa文件圖稿
- 9. 在Excel中獲取svn中已更改文件的列表
- 10. AccessToken已更改?
- 11. Facebook.php已更改?
- 12. rspec控制器測試:「期望#計數已更改-1,但已更改0」
- 13. 僅獲取已更改的文件
- 14. 只下載已更改的文件git
- 15. Fabric.js文本︰已更改的事件
- 16. InstallShield,更新已修改的文件
- 17. 僅復原已更改的文件
- 18. 顛覆合併:未更改的文件顯示爲已更改
- 19. 回滾到遠程原點/主站,但列出所有已更改的文件
- 20. 正在更新成員變量已設置/已更改
- 21. 更改已設置的變量的值
- 22. 無法保存已更改的位圖(已更改飽和度)
- 23. Rails - 未更改的屬性已註冊爲已更改?
- 24. 文本框值已更改
- 25. Filter FileSystemWatcher已更改事件
- 26. 的Oracle APEX已更改的列值
- 27. 在iOS8中更改鍵盤上已完成按鈕的文本
- 28. 從JGit中提交獲取已更改文件的列表
- 29. 如何獲取svn中已更改文件的列表?
- 30. Facebook API已更改