星期一, 11月 03, 2008

SharpSVN 使用說明

  • Add

SvnClient client = NewSvnClient(true, false);

client.Add(oneFile);

  • AddToChangeList

SvnClient client = NewSvnClient(true, false);

client.AddToChangeList(file2, "ChangeListTest-2");

  • CheckOut

SvnClient client = new SvnClient();

client.CheckOut(new Uri(ReposUri, "folder"), WcPath);

  • Commit

SvnClient client = NewSvnClient(true, false);

SvnCommitResult ci;

client.Commit(WcPath, out ci);

  • Committing Event

SvnClient client = new SvnClient();

client.Committing += delegate(object sender, SvnCommittingEventArgs e)
{
    Assert.That(true, Is.EqualTo(expectCommit), "Commit expected");
    if (e.LogMessage == null)
        e.LogMessage = "";

    GC.KeepAlive(e.Items);
};

  • Conflict Event

SvnClient client = new SvnClient();

client.Conflict += delegate(object sender, SvnConflictEventArgs e)
{
    Assert.That(true, Is.EqualTo(expectConflict), "Conflict expected");
};

  • Copy

client.Copy(new SvnPathTarget(file), Path.Combine(WcPath, "LocalCopy"));

  • Configuration

SvnClient client = new SvnClient();

client.Configuration.LogMessageRequired = false;

  • CreateRepository

using (SvnRepositoryClient reposClient = new SvnRepositoryClient())
{
    SvnCreateRepositoryArgs cra = new SvnCreateRepositoryArgs();
    cra.RepositoryCompatibility = SvnRepositoryCompatibility.Default;
    reposClient.CreateRepository(RepositoryPath, cra);
}

  • Delete

SvnClient client = NewSvnClient(true, false);

client.Delete(local);

  • DeleteRepository

using (SvnRepositoryClient reposClient = new SvnRepositoryClient())
{
    reposClient.DeleteRepository(RepositoryPath);
}

  • Export

SvnClient client = NewSvnClient(true, false);

client.Export(WcUri, exportDir);

  • GetChangeList

SvnClient client = NewSvnClient(true, false);

client.GetChangeList(WcPath, a, out paths);

  • GetInfo

SvnClient client = NewSvnClient(true, false);

client.GetInfo(new Uri(WcUri, "ChangeListFile1")

  • GetRepositoryRoot

SvnClient client = NewSvnClient(false, false);

client.GetRepositoryRoot(ReposUri)

  • GetState

SvnWorkingCopyClient wcC = new SvnWorkingCopyClient();
SvnWorkingCopyState state;
wcC.GetState(oneFile, out state);

  • List

SvnClient client = NewSvnClient(true, false);

client.List(WcUri, a, delegate(object sender, SvnListEventArgs e)
{
    Assert.That(e.Entry, Is.Not.Null, "Entry set");

    if (e.Path == "LocalFileForTestList")
    {
        Assert.That(e.BasePath, Is.EqualTo("/folder"), "Basepath = '/folder'");
        Assert.That(e.Lock, Is.Null);
        Assert.That(e.Entry.Author, Is.EqualTo(Environment.UserName));
        Assert.That(e.Entry.FileSize, Is.EqualTo(0));
        Assert.That(e.Entry.NodeKind, Is.EqualTo(SvnNodeKind.File));
        Assert.That(e.Entry.Revision, Is.EqualTo(ci.Revision));
        Assert.That(e.Entry.Time, Is.GreaterThan(DateTime.UtcNow - new TimeSpan(0, 5, 0)));
        visited = true;
    }
});

  • ListChangeList

SvnClient client = NewSvnClient(true, false);

client.ListChangeList(WcPath, a, delegate(object sender, SvnListChangeListEventArgs e)
{
    Assert.That(e.Path, Is.EqualTo(file3));
    visited = true;
});

  • Log

SvnClient client = NewSvnClient(true, false);

client.Log(new Uri(WcUri, "RemoteCopyBase"), delegate(object sender, SvnLogEventArgs e)
{
    if (first)
    {
        first = false;
        foreach (SvnChangeItem i in e.ChangedPaths)
        {
            Assert.That(i.Path.EndsWith("folder/RemoteCopyBase"), "Path ends with folder/RemoteCopyBase");
            Assert.That(i.Action, Is.EqualTo(SvnChangeAction.Add));
            Assert.That(i.CopyFromPath.EndsWith("folder/CopyBase"), "CopyFromPath ensd with folder/CopyBase");
            Assert.That(i.CopyFromRevision, Is.GreaterThan(0L));
        }
    }
    else
    {
        foreach (SvnChangeItem i in e.ChangedPaths)
        {
            Assert.That(i.Action, Is.EqualTo(SvnChangeAction.Add));
            Assert.That(i.Path.EndsWith("folder/CopyBase"), "Path ends with folder/CopyBase");
            visited = true;
        }
    }
});

  • RemoteDelete

SvnClient client = NewSvnClient(true, false);

client.RemoteDelete(new Uri(WcUri, "RemoteDeleteBase"));

  • RemoteCopy

SvnClient client = NewSvnClient(true, false);

client.RemoteCopy(new Uri(WcUri, "CopyBase"), new Uri(WcUri, "RemoteCopyBase"));

  • RemoteCreateDirectory

SvnClient client = new SvnClient();

client.RemoteCreateDirectory(new Uri(ReposUri, "folder"));

  • SetProperty

SvnClient client = NewSvnClient(true, false);

client.SetProperty(oneFile, "svn:mime-type", "application/binary");

  • Status

SvnClient client = NewSvnClient(true, false);

client.Status(file4, delegate(object sender, SvnStatusEventArgs e)
{
    Assert.That(e.FullPath, Is.EqualTo(file4));
    Assert.That(e.LocalContentStatus, Is.EqualTo(SvnStatus.Added));
    Assert.That(e.IsRemoteUpdated, Is.False);
    Assert.That(e.Path.Replace('/', Path.DirectorySeparatorChar), Is.EqualTo(file4));
    visited = true;
});

  • Update

SvnClient client = NewSvnClient(true, false);

SvnUpdateResult r;

client.Update(WcPath, out r);

沒有留言:

張貼留言