2009-06-12 25 views
11

Tôi đang sử dụng SharpSvn để tương tác với kho lưu trữ svn của mình qua mã C#. Tôi đang sử dụng mã này để truy xuất các mục nhập nhật ký svn:Sử dụng SharpSvn để truy xuất các mục nhập nhật ký trong phạm vi ngày

Collection<SvnLogEventArgs> logitems; 
var uri = new Uri("http://myserver/svn/foo/bar.txt"); 
client.GetLog(uri, out logitems); 
foreach (var logentry in logitems) 
{ 
    string author = logentry.Author; 
    string message = logentry.LogMessage; 
    DateTime checkindate = logentry.Time; 
} 

Điều này hoạt động tốt, nhưng bây giờ tôi muốn giới hạn các mục nhật ký được trả về theo ngày sửa đổi. Đây là điều có thể được thực hiện thông qua dòng lệnh svn với một cái gì đó như

svn log "http://myserver/svn/foo/bar.txt" --revision {2008-01-01}:{2008-12-31} 

Tôi dường như không thể tìm ra khả năng song song trong SharpSvn. Ai đó có thể chỉ cho tôi đi đúng hướng?

Trả lời

24

Bạn có thể thử nó như thế này:

DateTime startDateTime = // ...; 
DateTime endDateTime = // ...; 
SvnRevisionRange range = new SvnRevisionRange(new SvnRevision(startDateTime), new SvnRevision(endDateTime)); 
client.GetLog(uri, new SvnLogArgs(range), out logitems); 
+0

Cảm ơn! Tôi đã bỏ lỡ thực tế là SvnRevision có thể lấy một DateTime trong hàm tạo của nó. –

4

I nghĩ bạn có thể thực hiện việc này bằng một trong các chức năng GetLog có tham số SharpSvn.SvnLogArgs.

public bool GetLog(System.Uri target, SharpSvn.SvnLogArgs args, 
     out System.Collections.ObjectModel.Collection logItems) 

lớp đó có Start/EndSharpSvn.SvnRevision đối tượng mà trông như họ có thể mất một "thời gian" tham số.

Tôi chỉ làm một chút với nó, nhưng đó sẽ là nơi bạn có thể bắt đầu tìm kiếm.

Các vấn đề liên quan