Використовуючи SharpSVN, я можу легко відновити перевірку SVN програмно в C #, але тепер мені потрібно створити файл patch / diff безпосередньо перед виконанням відновлення.
У SharpSVN є SvnClient.Patch API, але документи / intellisense вказують, що це стосується застосування патча до репо, тоді як мені потрібен еквівалент, щоб створити файл патчу в першу чергу.
Як я можу програмно створити файл патчу SVN у C #?
Відповіді:
0 для відповіді № 1Щоб створити файл Patch з SVN, ви також можетестворити файл "Уніфікована різниця" через версії. Наступний код заснований на тому ж. Це створить уніфікований файл Diff із змін, здійснених у визначених редакціях.
System.Uri uri = new System.Uri("your url path");
using (SvnClient client = new SvnClient())
{
SvnUriTarget from = new SvnUriTarget(uri);
// To Get the Latest Revision on the Required SVN Folder
SvnInfoEventArgs info;
client.GetInfo(uri, out info);
SvnRevisionRange range = new SvnRevisionRange(info.Revision - 10, info.Revision); // The given input revisions should be valid revisions on the selected Repo path
System.IO.MemoryStream stream = new System.IO.MemoryStream();
if (client.Diff(from, range, stream))
{
stream.Position = 0; //reset the stream position to zero, as the stream position returned from Diff method is at the end.
System.IO.File.AppendAllText(@"C:diffFile.patch", new System.IO.StreamReader(stream).ReadToEnd());
}
stream.Close();
}