api - TFVC api:如何获取文件属性(“可执行文件”和“符号链接”)
问题描述
我在 TFVC 版本控制中有一些可执行文件和其他符号链接。
当您查看 UI 中的变更集时,我们可以看到该文件具有一个属性:
VersionControl.QueryHistory()
在nuget 包中使用 TFVC API 调用时Microsoft.TeamFoundationServer.Client
,我还可以看到与添加文件相对应的更改具有一个属性:
我的问题是使用 TFVC Api,我不知道如何获取此更改的属性。
我想找到一种方法来了解变更集中包含的这种“属性”变更类型的类型。尤其是如何知道这个“属性”是“可执行”属性还是“符号链接”属性。
TFVC 似乎知道文件是符号链接,因为它显示的图标有点不同(注意箭头):
检索到的对象类型:
- 变更集:
Microsoft.TeamFoundation.VersionControl.Client.Changeset
- 改变:
Microsoft.TeamFoundation.VersionControl.Client.Change
- 文件/项目:(
Microsoft.TeamFoundation.VersionControl.Client.Item
包含名为 的集合Attributes
,Properties
或者PropertyValues
可能包含数据但为空的集合)
Internet 或 MSDN 文档在这里没有帮助:(
注意:目标是添加对git-tfs的支持
解决方案
您可以查看Libray Microsoft.VisualStudio.Services.Client中的TfvcItem类。TfvcItem 对象具有确定该项目是否为符号链接的属性。IsSymbolicLink
您可以使用TfvcHttpClient对象方法获取 ChangeSets,然后获取 TfvcItem 对象。请参见下面的示例:
string tfsurl= "http://instance/tfs/DefaultCollection";
string Project = "project";
NetworkCredential netCred = new NetworkCredential("username", @"password", "domain");
Microsoft.VisualStudio.Services.Common.WindowsCredential winCred = new Microsoft.VisualStudio.Services.Common.WindowsCredential(netCred);
VssConnection _connection = new VssConnection(new Uri(tfsurl), winCred);
TfvcHttpClient tfvcClient = _connection.GetClient<TfvcHttpClient>();
var changesets = tfvcClient.GetChangesetsAsync().Result;
foreach (var changeset in changesets)
{
var changesetRes = tfvcClient.GetChangesetChangesAsync(changeset.ChangesetId).Result;
foreach (var change in changesetRes)
{
var item = (TfvcItem)change.Item;
}
}
请参见下面的 TfvcItem 对象:
推荐阅读
- python - 如何使用熊猫从文件中提取html表?
- c# - 使用 Rx.NET 的可观察中介
- typescript - 我可以使用 DU 中的属性值合并有区别的联合和记录吗
- .net - ACE.OLEDBE.12.0 无法从某些 XLSX 文件中读取任何行
- flutter - 使用不包含 Cubit 类型的上下文调用 BlocProvider.of()
- python - 循环 LSTM 模型预测
- ruby-on-rails - 使用 AWS 签名在 HTTParty 中重新创建邮递员发布请求
- php - 我不能加载多个帖子
- mysql - mysql - 从表中创建摘要父行和子行
- java - 编译失败,JavaScanner.skipBlockComment 上由 scala-maven-plugin 驱动的 Java 1.8 (Scala 2.12.10 = Spark 2.4.6) 出现 StackOverflowError