以编程方式确定VSS数据库中最近的签入



我正在进行从VSS到TFS的迁移。我正在迁移的安装使用了多个VSS数据库(很多)。

我正在寻找一种简单的方法来确定,对于每个vss数据库的日期和最后签入的时间,这样我就可以知道我是否需要刷新已经在TFS中的代码。

在高层次上,我想写一个这样的方法:

DateTime GetLatestCheckIn(string pathToVssDatabase) {}

是否有一种方法来完成这与VSS COM API?

我想我明白了!

这是一个非常粗略的剪辑,只是一个控制台应用程序,显示最近的更新和更新日期。这不是很高效——现在我知道该怎么做了,我将取消排序,只做一次传递,比较最近的项目,但是,这里是它的要点:

<>之前 class Program { static void Main(string[] args) { //Environment.CurrentDirectory = @"c:Program Files (x86)Microsoft Visual SourceSafe Upgrade"; IVSSDatabase db = new VSSDatabase(); db.Open(@"ThePathsrcsafe.ini", "Admin", "ThePassword"); IVSSItem rootFolder = db.get_VSSItem("$/", false); var versions = new List(); foreach (IVSSVersion item in rootFolder.get_Versions((int)Microsoft.VisualStudio.SourceSafe.Interop.VSSFlags.VSSFLAG_RECURSYES)) { versions.Add(new VersionInfo() { ItemName = item.VSSItem.Name, ItemFullPath = item.VSSItem.Spec, ItemVersionDate = item.Date, ItemVersionNumber = item.VersionNumber }); } // echo all var versionInfo = versions.OrderByDescending(i => i.ItemVersionDate).First(); Console.WriteLine("{0} {1}", versionInfo.ItemFullPath, versionInfo.ItemVersionDate); Console.ReadLine(); } } class VersionInfo { public string ItemName { get; set; } public string ItemFullPath { get; set; } public DateTime ItemVersionDate { get; set; } public int ItemVersionNumber { get; set; } }

最新更新