Программное создание файла исправления / различия SVN в C #

Используя SharpSVN, я могу легко отменить проверку SVN программно на C#, но теперь мне нужно создать файл patch/diff непосредственно перед выполнением возврата.

SharpSVN имеет API-интерфейс SvnClient.Patch, но документы / intellisense указывают, что это для применения исправления к репозиторию, тогда как мне в первую очередь нужен эквивалент для создания файла исправления.

Как я могу программно создать файл исправления SVN на С#?


person Greg Trevellick    schedule 14.10.2016    source источник


Ответы (1)


Чтобы создать файл исправления из SVN, вы также можете создать файл «Unified Diff» для разных версий. Следующий код основан на том же. Он создаст единый 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();

                }
person Shekar Gurram    schedule 06.03.2017