对于我当前的项目,我需要比较程序的两个构建版本并生成一个报告,显示哪些文件发生了变化。 我自己的想法是使用文件系统运行每个文件,比较修改的日期。 但是,有人建议我找到存储在 Source Depot 中的更改列表并以这种方式进行比较。
由于不熟悉源库,我能够找到两个相关的命令 - "更改"和"更改列表"。 但是,文档在解释如何使用 SD 命令方面非常模糊,并且键入诸如"sd 更改1249191"之类的内容会导致诸如"必须创建客户端'MGURL'才能访问本地文件"之类的错误。 另一个问题是,即使我在这方面工作,使用"System.Diagnostics.Process.Start"进行调用也很可能只会将信息打印到控制台,而不会从 C# 中向我返回任何数据。
我认为我真正需要的是一个类似于 Microsoft.TeamFoundation for TFS 的库。 但是,我在网上几乎没有找到有关Source Depot的信息,更不用说通过C#与它进行交互了。 有人有什么见解吗? 你以前做过这样的事情吗?
查看内部工具箱网站以获取 Source Depot 实用程序。 像这样的源库问题也应该有一个内部电子邮件别名......
我找到的解决方案是双重的,这部分是由于我自己对该工具的研究,部分是由于同事的建议。
首先,在重新检查 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();