1

对于我当前的项目,我需要比较一个程序的两个构建版本并生成一个报告,显示哪些文件已更改。我自己的想法是使用文件系统运行每个文件,比较修改的日期。然而,有人建议我改为查找存储在 Source Depot 中的更改列表并以这种方式进行比较。

由于不熟悉 Source Depot,我能够找到两个相关的命令——“changes”和“changelist”。但是,文档对如何使用 SD 命令的解释非常模糊,并且键入诸如“sd changes 1249191”之类的内容会导致诸如“必须创建客户端'MGURL'以访问本地文件”之类的错误。另一个问题是,即使我有这方面的工作,使用“System.Diagnostics.Process.Start”进行调用很可能只会将信息打印到控制台,而不会从 C# 中向我返回任何数据。

我认为我真正需要的是一个类似于 Microsoft.TeamFoundation for TFS 的库。但是,我在网上几乎没有找到关于 Source Depot 的信息,更不用说通过 C# 与它交互的方法了。有人有任何见解吗?你以前做过这样的事情吗?

4

2 回答 2

1

我找到的解决方案是双重的,这部分是由于我自己对该工具的研究,部分是由于同事的建议。

首先,在重新检查 sd 命令列表时,我发现我没有查看正确的命令来获取我想要的信息。

其次,没有办法直接与源代码库交互,但我可以使用 RedirectStandardOuput 将控制台的输出重定向回我:

Process process = new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.FileName = "sd.exe";
process.StartInfo.Arguments = string.Format("describe {0}", newChangelist);
process.Start();

// read strings from process.StandardOutput here

process.WaitForExit();
于 2015-01-02T22:27:43.300 回答
1

查看 Source Depot 实用程序的内部工具箱网站。对于像这样的 Source Depot 问题,还应该有一个内部电子邮件别名......

于 2014-12-30T00:21:14.537 回答