2013-02-27 3 views
2

VSS에서 TFS 로의 마이그레이션 작업을하고 있습니다. 마이그레이션 할 설치는 여러 VSS 데이터베이스를 사용하고 있습니다.VSS 데이터베이스에서 가장 최근의 체크인을 프로그래밍 방식으로 확인하십시오.

각 VSS 데이터베이스에 대해 마지막 체크인 날짜와 시간을 쉽게 확인할 수 있으므로 이미 TFS에있는 코드를 새로 고쳐야하는지 알 수 있습니다.

DateTime GetLatestCheckIn(string pathToVssDatabase) {} 

에서 VSS COM API를 사용하여이 작업을 수행 할 수있는 방법이 있나요 : 높은 수준에서

,이 같은 방법을 쓰고 싶은 것?

답변

0

나는 그것을 얻었습니다!

여기에는 가장 최근의 업데이트와 업데이트 날짜를 표시하는 콘솔 앱만 있습니다. 이것은 매우 효율적이지 않습니다. 이제는 무엇을해야 할지를 알았으므로 정렬을 제거하고 단일 항목을 비교하여 가장 최근 항목을 비교합니다. 그러나 여기에 요점이 있습니다 :

 

    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; } 
    }