Révision | b603e33f90d6542ff7c190c65626f127e37f9310 |
---|---|
Taille | 3,533 octets |
l'heure | 2021-06-24 00:02:56 |
Auteur | hor931101jp |
Message de Log | aaa
|
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();
}
}
}
}