• R/O
  • HTTP
  • SSH
  • HTTPS

Tags
Aucun tag

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

File Info

Révision b603e33f90d6542ff7c190c65626f127e37f9310
Taille 3,533 octets
l'heure 2021-06-24 00:02:56
Auteur hor931101jp
Message de Log

aaa

Content

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SharpSvn;
using System.Diagnostics;
using System.Globalization;

namespace SvnRevert
{
    /// <summary>
    /// SharpSVNのサンプル
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length <= 0)
            {
                //Console.WriteLine("Usage: SVNSample [Repo URI] [Work Directory]");
            }

            //SvnClient client = new SvnClient();
            using (SvnClient client = new SvnClient())
            {
                //資格情報を作成してクライアントに登録する。(ネットワーク越しで認証が必要なケース)
                var cred = new System.Net.NetworkCredential("hor931101jp", "Tt3141592");
                client.Authentication.DefaultCredentials = cred;

                //ローカルの情報を取得
                var local = new SvnPathTarget(@"C:\OSDN\99 test\trunk\OfficeImageReducerCS");
                SvnInfoEventArgs clientInfo;
                client.GetInfo(local, out clientInfo);
                Console.WriteLine("Local Working Revision : " + clientInfo.Revision);
                Debug.Print(clientInfo.Uri.AbsoluteUri);

                //リポジトリの情報を取得
                var repos = new Uri(clientInfo.Uri.AbsoluteUri);
                SvnInfoEventArgs serverInfo;
                client.GetInfo(repos, out serverInfo);
                Console.WriteLine("Server Head Revision : " + serverInfo.Revision);

                //Base と Working の Diff の取得 
                System.IO.MemoryStream diffResultStream = new System.IO.MemoryStream();
                client.Diff(local, new SvnRevisionRange(SvnRevision.Base, SvnRevision.Working), diffResultStream);
                //Console.WriteLine(diffResultStream.Length);
                var strdiff = Encoding.UTF8.GetString(diffResultStream.ToArray());
                //var strdiff = Encoding.GetEncoding("shift_jis").GetString(diffResultStream.ToArray());
                //Console.WriteLine(strdiff);
                //Console.WriteLine(" ");

                String[] delimiter = { "Index: " };
                var strdiffs = strdiff.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
                for (int i = 0; i < strdiffs.Length; i++)
                {
                    Console.WriteLine(" ");
                    Console.WriteLine(i);
                    strdiffs[i] = strdiffs[i].Replace("\r\n", "\r");
                    strdiffs[i] = strdiffs[i].Replace("\n", "\r");

                    String[] delimiter2 = { "\r" };
                    var strdiffsubs = strdiffs[i].Split(delimiter2, StringSplitOptions.RemoveEmptyEntries);
                    Console.WriteLine(strdiffsubs[0]);
                    for (int j = 1; j < strdiffsubs.Length; j++)
                    {
                        //Console.WriteLine(strdiffsubs[j]);
                        //Console.WriteLine(strdiffsubs[j][0]);

                        if (strdiffsubs[j][0] == '+' || strdiffsubs[j][0] == '-')
                        {
                            Console.WriteLine(strdiffsubs[j]);
                            //Console.WriteLine(strdiffsubs[j][0]);
                        }
                    }
                }



                Console.WriteLine("何かキーを押してください . . .");
                Console.ReadKey();

            }
        }
    }
}