【发布时间】:2017-04-07 05:02:21
【问题描述】:
我在我的 C# 代码中使用 tf.exe 在 TFS 中创建新分支。我就是这样做的:
public static bool TFBranch(string projectPath, string originName, string branchName)
{
string branchedProject = projectPath + "\\" + branchName;
string projectToBranch = projectPath + "\\" + originName;
string path = Environment.ExpandEnvironmentVariables(@"branch " + projectToBranch + " " + branchedProject);
path = path.Replace("\\", "/");
return ExecuteProcess(path);
}
private static bool ExecuteProcess(string path)
{
MyProcess proc = new MyProcess();
var currentDirectory = WorkspaceHandler.GetLocalWorkspace();
var command = @"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\tf.exe";
Directory.SetCurrentDirectory(currentDirectory);
proc.FileName = command;
proc.Arguments = path;
try
{
proc.Execute();
}
catch (Exception e)
{
_Logger.Error("Could not execute TF.exe. Exception: " + e.ToString());
return false;
}
return true;
}
除了它之外,几乎所有东西都像我一样工作。我从一个已经包含分支的目录分支,所以新分支也包含一个分支。但有时 tf.exe 会创建一个文件夹,而不是一个分支。这是来自 tf.exe 的错误,还是我做错了什么?
例子:
这是一个分支命令的样子:
-- 编辑--
这是我手动操作的方法:
- 我使用菜单分支 Templates/BranchSource/Folder/Main:
- 在对话框中我定义了“目标分支名称”:
- 结果是我期望得到的:
这与我使用代码执行此操作时得到的结果相同。唯一的区别是代码有时会创建一个文件夹。
【问题讨论】:
-
您是否手动使用 tf 分支命令进行测试?我用 TFS 2013.5+VS2013.5 测试过,tf branch 命令只能创建文件夹图标,不能创建分支图标。
-
我也试过了。无论我是手动尝试还是使用我的代码,它总是会创建一个分支图标。只是有时它会创建一个文件夹,我无法重建这种行为。我似乎只是随机发生的。
-
你的环境和我一样吗?我总是在我身边得到文件夹图标。
-
是的,我也使用 TFS 2013 和 VS 2013 Update 5。
-
当我“手动”执行时,我只是添加了我所做的事情。