/ / Програматично створити патч SVN / diff у C # - c #, svn, tortoisesvn, sharpsvn

Програмування створення файлу SVN патч / файлу у C # - c #, svn, tortoisesvn, sharpsvn

Використовуючи 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();

}