gpt4 book ai didi

c# - 以编程方式确定 VSS 数据库中的最近 checkin

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:57 25 4
gpt4 key购买 nike

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

我正在寻找一种简单的方法来为每个 vss 数据库确定上次 checkin 的日期和时间,以便我可以知道是否需要刷新 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(@"ThePath\srcsafe.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; }
}

关于c# - 以编程方式确定 VSS 数据库中的最近 checkin ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15124128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com