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