باستخدام Sharpsvn لاسترداد إدخالات السجل في نطاق التاريخ
سؤال
أنا استخدم sparpsvn. للتفاعل مع مستودع SVN الخاص بي عبر رمز C #. أنا أستخدم هذا الرمز لاسترداد إدخالات سجل SVN:
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;
}
يعمل هذا بشكل جيد، ولكن الآن أريد تقييد إدخالات السجل المرتجعة عن طريق تاريخ المراجعة. هذا شيء يمكن القيام به عبر سطر أوامر SVN مع شيء مثل
svn log "http://myserver/svn/foo/bar.txt" --revision {2008-01-01}:{2008-12-31}
لا يبدو لي أن معرفة قدرات متوازية داخل Sharpsvn. هل يستطيع احد توجيهي الي الوجهة الصحيحة؟
المحلول
يمكنك أن تجرب ذلك مثل هذا:
DateTime startDateTime = // ...;
DateTime endDateTime = // ...;
SvnRevisionRange range = new SvnRevisionRange(new SvnRevision(startDateTime), new SvnRevision(endDateTime));
client.GetLog(uri, new SvnLogArgs(range), out logitems);
نصائح أخرى
أنا فكر في قد تكون قادرا على القيام بذلك باستخدام واحدة من GetLog
وظيفة تأخذ SharpSvn.SvnLogArgs
معامل.
public bool GetLog(System.Uri target, sharpsvn.svnlogargs Args،
out System.Collections.ObjectModel.Collection logItems)
هذا الفصل لديه Start
/End
هذا هو SharpSvn.SvnRevision
الكائنات التي بحث مثلما يمكن أن تأخذ معلمة "الوقت".
لقد قمت فقط بقليل معها، ولكن هذا سيكون المكان الذي يمكن أن تبدأ فيه النظر.
لا تنتمي إلى StackOverflow