2012-03-20 2 views
0
내가 SharpSvn을 가지고 노는거야

을 가진 파일의 생성 날짜를 확인하고 저장소
에 폴더를 분석하고 난 일부 파일이 생성 될 때 알아야 할,
하지 마지막으로 수정 한 날짜, 그러나 때 만든,SharpSvn

그 방법을 알고 있습니까?

나는 다음과 같이 시작 :

Collection<SvnLogEventArgs> logitems; 
    var c = client.GetLog(new Uri(server_path), out logitems); 


    foreach (var i in logitems) 
    { 
     var properties = i.CustomProperties; 
     foreach (var p in properties) 
     { 
      Console.WriteLine(p.ToString()); 
      Console.WriteLine(p.Key); 
      Console.WriteLine(p.StringValue); 
     } 
    } 

그러나 나는 거기에 어떤 생성 날짜가 표시되지 않습니다.
다른 사람이 어디에서 정보를 얻을 수 있는지 알고 있습니까?

답변

0

나는 그렇게 할 수없는 것처럼 보입니다. 다음은이 문제를 해결 한 방법입니다. SvnChangeAction.Add 인 경우 시간이 있습니다. 이전보다

public static List<SvnFile> GetSvnFiles(this SvnClient client, string uri_path) 
{ 
    // get logitems 
    Collection<SvnLogEventArgs> logitems; 
    client.GetLog(new Uri(uri_path), out logitems); 

    var result = new List<SvnFile>(); 

    // get craation date for each 
    foreach (var logitem in logitems.OrderBy(logitem => logitem.Time)) 
    { 
     foreach (var changed_path in logitem.ChangedPaths) 
     { 
      string filename = Path.GetFileName(changed_path.Path); 
      if (changed_path.Action == SvnChangeAction.Add) 
      { 
       result.Add(new SvnFile() { Name = filename, Created = logitem.Time }); 
      } 
     } 
    } 

    return result; 
} 
0

약간 다른 코드 :

private static DateTime findCreationDate(SvnClient client, SvnListEventArgs item) 
    { 
     Collection<SvnLogEventArgs> logList = new Collection<SvnLogEventArgs>(); 
     if (item.BasePath != "/" + item.Name) 
     { 
      client.GetLog(new Uri(item.RepositoryRoot + item.BasePath + "/" + item.Name), out logList); 
      foreach (var logItem in logList) 
      { 
       foreach (var changed_path in logItem.ChangedPaths) 
       { 

        string filename = Path.GetFileName(changed_path.Path); 
        if (filename == item.Name && changed_path.Action == SvnChangeAction.Add) 
        { 
         return logItem.Time;        
        } 
       } 
      } 
     } 
     return new DateTime(); 
    } 
여기에 코드입니다 (SvnFile하지 SharpSvn에서 내 자신의 클래스이다)
관련 문제