c# – 获取TFS中工作空间的最新和差异
发布时间:2020-12-15 22:28:59 所属栏目:百科 来源:网络整理
导读:我希望获得最新的更改以及TFS的本地工作空间和服务器版本之间的区别,因为我使用了从 here获得的此代码 private static void GetLatest(string username,string password,string path_to_download,string tf_src_path) { Uri collectionUri = new Uri(PathCon
|
我希望获得最新的更改以及TFS的本地工作空间和服务器版本之间的区别,因为我使用了从
here获得的此代码
private static void GetLatest(string username,string password,string path_to_download,string tf_src_path)
{
Uri collectionUri = new Uri(PathConstants.uri);
NetworkCredential credential = new NetworkCredential(username,password);
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri(PathConstants.uri),credential);
tfs.EnsureAuthenticated();
VersionControlServer vc = tfs.GetService<VersionControlServer>();
foreach (var item in vc.GetItems(PathConstants.tfsRoot + tf_src_path,VersionSpec.Latest,RecursionType.Full).Items)
{
string relativePath = _BuildRelativePath(path_to_download,item.ServerItem);
switch (item.ItemType)
{
case ItemType.Any:
throw new ArgumentOutOfRangeException("ItemType returned was Any; expected File or Folder.");
case ItemType.File:
item.DownloadFile(relativePath);
break;
case ItemType.Folder:
Directory.CreateDirectory(relativePath);
break;
}
}
}
但是此代码从源下载所有文件并替换本地工作区上的现有文件. 有没有办法只下载本地和服务器版本之间的差异?例如如果我删除本地的任何文件/文件夹,它们也应该与与更改集关联的新文件一起下载,而不替换其他文件 解决方法
这应该更新所有本地工作空间中的所有文件.
private static void GetLatest(string username,string tf_src_path)
{
Uri collectionUri = new Uri(PathConstants.uri);
NetworkCredential credential = new NetworkCredential(username,credential);
tfs.EnsureAuthenticated();
VersionControlServer vc = tfs.GetService<VersionControlServer>();
foreach (Workspace workspace in vc.QueryWorkspaces(null,null,System.Environment.MachineName))
{
foreach (WorkingFolder folder in workspace.Folders)
{
ItemSpec itemSpec = new ItemSpec(folder.ServerItem,RecursionType.Full);
ItemSpec[] specs = new ItemSpec[] { itemSpec };
ExtendedItem[][] extendedItems = workspace.GetExtendedItems(specs,DeletedState.NonDeleted,ItemType.File);
ExtendedItem[] extendedItem = extendedItems[0];
foreach (var item in extendedItem)
{
if (item.VersionLocal != item.VersionLatest)
{
vc.DownloadFile(item.SourceServerItem,item.LocalItem);
}
}
}
}
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
