Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以编程方式删除TFS分支_Tfs_Tfs Sdk - Fatal编程技术网

以编程方式删除TFS分支

以编程方式删除TFS分支,tfs,tfs-sdk,Tfs,Tfs Sdk,我想以编程方式删除TFS中自动创建的分支 现有的方法“ICommonStructureService.DeleteBranchs”应该可以完成这项工作。 我的问题是,该方法需要一个参数“string[]nodeUris”,该参数指定要使用vstfs://... “乌里和我只是不知道如何为我的分支机构得到这些 我需要的是: var projectCollection=tfstreamprojectcollectionfactory.GetTeamProjectCollection(新Uri));

我想以编程方式删除TFS中自动创建的分支

现有的方法“ICommonStructureService.DeleteBranchs”应该可以完成这项工作。 我的问题是,该方法需要一个参数“string[]nodeUris”,该参数指定要使用vstfs://... “乌里和我只是不知道如何为我的分支机构得到这些

我需要的是:

var projectCollection=tfstreamprojectcollectionfactory.GetTeamProjectCollection(新Uri));
var cssService=projectCollection.GetService();
var project=cssService.GetProjectFromName();

但是如何从那里获取分支Uri呢

在版本控制中删除分支就像删除任何其他版本控制项一样。您需要在
项上挂起删除

与版本控制完全无关,它是TFS的一部分,TFS控制可分配给TFS工作项的“”


简而言之,无法对公共结构服务执行任何类型的版本控制操作。您可以通过针对
VersionControlServer
创建
工作区来删除分支,该工作区将暂停删除,然后签入暂停更改。

在版本控制中删除分支与删除任何其他版本控制项类似。您需要在
项上挂起删除

与版本控制完全无关,它是TFS的一部分,TFS控制可分配给TFS工作项的“”


简而言之,无法对公共结构服务执行任何类型的版本控制操作。您可以通过针对
VersionControlServer
创建
工作区来删除分支,挂起删除,然后签入挂起的更改。

与此同时,我找到了一个解决方案。用于删除我正在使用的分支

versionControl.Destroy(新的ItemSpec(myBranchPath,RecursionType.Full),VersionSpec.Latest,null,DestroyFlags.KeepHistory);
这正是我需要的。
versionControl属于VersionControlServer类型,必须使用团队集合初始化,同时我找到了一个解决方案。用于删除我正在使用的分支

versionControl.Destroy(新的ItemSpec(myBranchPath,RecursionType.Full),VersionSpec.Latest,null,DestroyFlags.KeepHistory);
这正是我需要的。
versionControl属于VersionControlServer类型,必须使用团队集合初始化

我同意Edward Thomson使用Destroy命令。所以我听从了他的建议,提出了以下建议:

public void delete分支(字符串路径)
{
var vcs=GetVersionControlServer();
var itemSpec=new itemSpec(路径,RecursionType.Full);
var itemSpecs=new[]{itemSpec};
var workSpace=GetOrCreateWorkSpace(vcs);
尝试
{
Map(路径@“c:\Temp\tfs”);
var-request=new-GetRequest(itemSpec,VersionSpec.Latest);
Get(请求,GetOptions.GetAll | GetOptions.Overwrite);
PendDelete(路径,RecursionType.Full);
var pendingchanges=workSpace.GetPendingChanges(itemSpecs);
签入(pendingchanges,“删除分支”);
}
最后
{
if(工作区!=null)
{
workSpace.Delete();
}
}
}
如果有一个整洁的方式做同样的事情,我期待着它。这有点慢,因为它做的事情太多了

  • 创建临时工作区
  • 获取对此的所有更改
  • 对整个更改集执行删除
  • 登记
  • 清理工作区

我同意爱德华·汤姆森关于使用销毁命令的意见。所以我听从了他的建议,提出了以下建议:

public void delete分支(字符串路径)
{
var vcs=GetVersionControlServer();
var itemSpec=new itemSpec(路径,RecursionType.Full);
var itemSpecs=new[]{itemSpec};
var workSpace=GetOrCreateWorkSpace(vcs);
尝试
{
Map(路径@“c:\Temp\tfs”);
var-request=new-GetRequest(itemSpec,VersionSpec.Latest);
Get(请求,GetOptions.GetAll | GetOptions.Overwrite);
PendDelete(路径,RecursionType.Full);
var pendingchanges=workSpace.GetPendingChanges(itemSpecs);
签入(pendingchanges,“删除分支”);
}
最后
{
if(工作区!=null)
{
workSpace.Delete();
}
}
}
如果有一个整洁的方式做同样的事情,我期待着它。这有点慢,因为它做的事情太多了

  • 创建临时工作区
  • 获取对此的所有更改
  • 对整个更改集执行删除
  • 登记
  • 清理工作区

谢谢您的回答,但是因为有“ICommonStructureService.deleteBranchs”方法,所以应该有一个使用它的选项。对于通用结构服务分支,有一个使用它的选项,但不适用于版本控制分支<代码>http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.server.icommonstructureservice.deletebranches(v=vs.90).aspx
。我不完全理解你所说的“公共结构服务分支”是什么意思。你的链接似乎对我不起作用…我试图澄清我的答案。如果您有问题,请告诉我。谢谢您的回答,但是因为有“ICommonStructureService.DeleteBranchs”方法,所以应该有一个使用它的选项。对于通用结构服务分支,有一个使用它的选项,但不适用于版本控制分支<代码>http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.server.icommonstructureservice.deletebranches(v=vs.90).aspx
。我不完全理解你所说的“公共结构服务分支”是什么意思。你的链接似乎对我不起作用…我