本文整理汇总了C#中MonoDevelop.VersionControl.Subversion.Unix.LibSvnClient类的典型用法代码示例。如果您正苦于以下问题:C# LibSvnClient类的具体用法?C# LibSvnClient怎么用?C# LibSvnClient使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
LibSvnClient类属于MonoDevelop.VersionControl.Subversion.Unix命名空间,在下文中一共展示了LibSvnClient类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetErrorMessage
static string GetErrorMessage (LibSvnClient.svn_error_t error)
{
if (error.message != null)
return error.message;
else {
byte[] buf = new byte [300];
Svn.strerror (error.apr_err, buf, buf.Length);
return Encoding.UTF8.GetString (buf);
}
}
示例2: CheckInstalled
internal static bool CheckInstalled ()
{
// libsvn_client may be linked to libapr-0 or libapr-1, and we need to bind the LibApr class
// to the same library. The following code detects the required libapr version and loads it.
int aprver = GetLoadAprLib (-1);
svn = LibSvnClient.GetLib ();
if (svn == null) {
LoggingService.LogWarning ("Subversion addin could not load libsvn_client, so it will be disabled.");
return false;
}
aprver = GetLoadAprLib (aprver);
if (aprver != -1)
LoggingService.LogDebug ("Subversion addin detected libapr-" + aprver);
apr = LibApr.GetLib (aprver);
if (apr == null) {
svn = null;
LoggingService.LogInfo ("Subversion addin could not load libapr, so it will be disabled.");
return false;
}
return true;
}
示例3: OnAuthSslServerTrustPrompt
static IntPtr OnAuthSslServerTrustPrompt (ref IntPtr cred, IntPtr baton, string realm, UInt32 failures, ref LibSvnClient.svn_auth_ssl_server_cert_info_t cert_info, bool may_save, IntPtr pool)
{
var data = new LibSvnClient.svn_auth_cred_ssl_server_trust_t ();
var ci = new CertficateInfo {
AsciiCert = cert_info.ascii_cert,
Fingerprint = cert_info.fingerprint,
HostName = cert_info.hostname,
IssuerName = cert_info.issuer_dname,
ValidFrom = cert_info.valid_from,
ValidUntil = cert_info.valid_until,
};
SslFailure accepted_failures;
bool ms;
if (SslServerTrustAuthenticationPrompt (realm, (SslFailure) failures, may_save, ci, out accepted_failures, out ms) && accepted_failures != SslFailure.None) {
data.may_save = ms ;
data.accepted_failures = (uint) accepted_failures;
cred = apr.pcalloc (pool, data);
return IntPtr.Zero;
} else {
data.accepted_failures = 0;
data.may_save = false;
cred = apr.pcalloc (pool, data);
return GetCancelError ();
}
}
示例4: svn_wc_notify_func_t_impl
void svn_wc_notify_func_t_impl (IntPtr baton, ref LibSvnClient.svn_wc_notify_t data, IntPtr pool)
{
string actiondesc;
string file = Marshal.PtrToStringAnsi (data.path);
bool notifyChange = false;
bool skipEol = false;
// System.Console.WriteLine(data.action);
switch (data.action) {
case LibSvnClient.NotifyAction.Skip:
if (data.content_state == LibSvnClient.NotifyState.Missing) {
actiondesc = string.Format (GettextCatalog.GetString ("Skipped missing target: '{0}'"), file);
} else {
actiondesc = string.Format (GettextCatalog.GetString ("Skipped '{0}'"), file);
}
break;
case LibSvnClient.NotifyAction.UpdateDelete:
actiondesc = string.Format (GettextCatalog.GetString ("Deleted '{0}'"), file);
break;
// case LibSvnClient.NotifyAction.UpdateReplace:
// actiondesc = string.Format (GettextCatalog.GetString ("Replaced '{0}'"), file);
// break;
case LibSvnClient.NotifyAction.UpdateAdd:
if (data.content_state == LibSvnClient.NotifyState.Conflicted) {
actiondesc = string.Format (GettextCatalog.GetString ("Conflict {0}"), file);
} else {
actiondesc = string.Format (GettextCatalog.GetString ("Added {0}"), file);
}
break;
// case LibSvnClient.NotifyAction.Exists:
// // original is untranslated, we'll make it a bit shorter
// actiondesc = data.content_state == LibSvnClient.NotifyState.Conflicted ? "C" : "E";
// if (data.prop_state == LibSvnClient.NotifyState.Conflicted) {
// actiondesc += "C";
// } else if (data.prop_state == LibSvnClient.NotifyState.Merged) {
// actiondesc += "G";
// }
// actiondesc += " {0}";
// actiondesc = string.Format (actiondesc, file);
// actiondesc = string.Format (GettextCatalog.GetString ("Exists {0}"), file);
// break;
case LibSvnClient.NotifyAction.Restore:
actiondesc = string.Format (GettextCatalog.GetString ("Restored '{0}'"), file);
break;
case LibSvnClient.NotifyAction.Revert:
actiondesc = string.Format (GettextCatalog.GetString ("Reverted '{0}'"), file);
break;
case LibSvnClient.NotifyAction.FailedRevert:
actiondesc = string.Format (GettextCatalog.GetString ("Failed to revert '{0}' -- try updating instead."), file);
break;
case LibSvnClient.NotifyAction.Resolved:
actiondesc = string.Format (GettextCatalog.GetString ("Resolved conflict state of '{0}'"), file);
break;
case LibSvnClient.NotifyAction.Add:
if (MimeTypeIsBinary (Marshal.PtrToStringAuto (data.mime_type))) {
actiondesc = string.Format (GettextCatalog.GetString ("Add (bin) '{0}'"), file);
} else {
actiondesc = string.Format (GettextCatalog.GetString ("Add '{0}'"), file);
}
break;
case LibSvnClient.NotifyAction.Delete:
actiondesc = string.Format (GettextCatalog.GetString ("Delete '{0}'"), file);
break;
case LibSvnClient.NotifyAction.UpdateUpdate:
// original is untranslated, we'll make it a bit shorter
/* actiondesc = "";
if (data.content_state == LibSvnClient.NotifyState.Conflicted) {
actiondesc += "C";
} else if (data.content_state == LibSvnClient.NotifyState.Merged) {
actiondesc += "G";
} else if (data.content_state == LibSvnClient.NotifyState.Changed) {
actiondesc += "U";
}
if (data.prop_state == LibSvnClient.NotifyState.Conflicted) {
actiondesc += "C";
} else if (data.prop_state == LibSvnClient.NotifyState.Merged) {
actiondesc += "G";
} else if (data.prop_state == LibSvnClient.NotifyState.Changed) {
actiondesc += "U";
}
if (data.lock_state == LibSvnClient.NotifyLockState.Unlocked)
actiondesc += "B";
actiondesc += " '{0}'";
actiondesc = string.Format (actiondesc, file); */
actiondesc = string.Format (GettextCatalog.GetString ("Update '{0}'"), file);
notifyChange = true;
break;
case LibSvnClient.NotifyAction.UpdateExternal:
actiondesc = string.Format (GettextCatalog.GetString ("Fetching external item into '{0}'"), file);
break;
case LibSvnClient.NotifyAction.UpdateCompleted: // TODO
actiondesc = GettextCatalog.GetString ("Finished");
break;
case LibSvnClient.NotifyAction.StatusExternal:
actiondesc = string.Format (GettextCatalog.GetString ("Performing status on external item at '{0}'"), file);
break;
case LibSvnClient.NotifyAction.StatusCompleted:
//.........这里部分代码省略.........
示例5: ConvertStatus
static VersionStatus ConvertStatus (LibSvnClient.NodeSchedule schedule, LibSvnClient.svn_wc_status_kind status) {
switch (schedule) {
case LibSvnClient.NodeSchedule.Add: return VersionStatus.Versioned | VersionStatus.ScheduledAdd;
case LibSvnClient.NodeSchedule.Delete: return VersionStatus.Versioned | VersionStatus.ScheduledDelete;
case LibSvnClient.NodeSchedule.Replace: return VersionStatus.Versioned | VersionStatus.ScheduledReplace;
}
switch (status) {
case LibSvnClient.svn_wc_status_kind.None: return VersionStatus.Versioned;
case LibSvnClient.svn_wc_status_kind.Normal: return VersionStatus.Versioned;
case LibSvnClient.svn_wc_status_kind.Unversioned: return VersionStatus.Unversioned;
case LibSvnClient.svn_wc_status_kind.Modified: return VersionStatus.Versioned | VersionStatus.Modified;
case LibSvnClient.svn_wc_status_kind.Merged: return VersionStatus.Versioned | VersionStatus.Modified;
case LibSvnClient.svn_wc_status_kind.Conflicted: return VersionStatus.Versioned | VersionStatus.Conflicted;
case LibSvnClient.svn_wc_status_kind.Ignored: return VersionStatus.Unversioned | VersionStatus.Ignored;
case LibSvnClient.svn_wc_status_kind.Obstructed: return VersionStatus.Versioned;
case LibSvnClient.svn_wc_status_kind.Added: return VersionStatus.Versioned | VersionStatus.ScheduledAdd;
case LibSvnClient.svn_wc_status_kind.Deleted: return VersionStatus.Versioned | VersionStatus.ScheduledDelete;
case LibSvnClient.svn_wc_status_kind.Replaced: return VersionStatus.Versioned | VersionStatus.ScheduledReplace;
}
return VersionStatus.Unversioned;
}
示例6: CreateNode
static VersionInfo CreateNode (LibSvnClient.StatusEnt ent, Repository repo)
{
VersionStatus rs = VersionStatus.Unversioned;
Revision rr = null;
if (ent.RemoteTextStatus != LibSvnClient.svn_wc_status_kind.EMPTY) {
rs = ConvertStatus (LibSvnClient.NodeSchedule.Normal, ent.RemoteTextStatus);
rr = new SvnRevision (repo, ent.LastCommitRevision, ent.LastCommitDate,
ent.LastCommitAuthor, GettextCatalog.GetString ("(unavailable)"), null);
}
VersionStatus status = ConvertStatus (ent.Schedule, ent.TextStatus);
bool readOnly = File.Exists (ent.LocalFilePath) && (File.GetAttributes (ent.LocalFilePath) & FileAttributes.ReadOnly) != 0;
if (ent.RepoLocked) {
status |= VersionStatus.LockRequired;
if (ent.LockOwned)
status |= VersionStatus.LockOwned;
else
status |= VersionStatus.Locked;
} else if (readOnly)
status |= VersionStatus.LockRequired;
VersionInfo ret = new VersionInfo (ent.LocalFilePath, ent.Url, ent.IsDirectory,
status, new SvnRevision (repo, ent.Revision),
rs, rr);
return ret;
}
示例7: Merge
private void Merge (string path, LibSvnClient.Rev revision1, LibSvnClient.Rev revision2)
{
IntPtr localpool = IntPtr.Zero;
try {
localpool = TryStartOperation (null);
path = NormalizePath (path, localpool);
LibSvnClient.Rev working = LibSvnClient.Rev.Working;
CheckError (svn.client_merge_peg2 (path,
ref revision1,
ref revision2,
ref working,
path,
false, false, false, false,
IntPtr.Zero, //default options is NULL
ctx, localpool));
}
finally {
TryEndOperation (localpool);
}
}
示例8: Merge
private void Merge (string path, LibSvnClient.Rev revision1, LibSvnClient.Rev revision2)
{
IntPtr localpool = newpool (pool);
try {
path = NormalizePath (path, localpool);
LibSvnClient.Rev working = LibSvnClient.Rev.Working;
CheckError (svn.client_merge_peg2 (path,
ref revision1,
ref revision2,
ref working,
path,
false, false, false, false,
IntPtr.Zero, //default options is NULL
ctx, localpool));
}
finally {
apr.pool_destroy (localpool);
}
return;
}
示例9: OnAuthSslServerTrustPrompt
static IntPtr OnAuthSslServerTrustPrompt (ref IntPtr cred, IntPtr baton, [MarshalAs (UnmanagedType.LPStr)] string realm, uint failures, ref LibSvnClient.svn_auth_ssl_server_cert_info_t cert_info, [MarshalAs (UnmanagedType.SysInt)] int may_save, IntPtr pool)
{
LibSvnClient.svn_auth_cred_ssl_server_trust_t data = new LibSvnClient.svn_auth_cred_ssl_server_trust_t ();
CertficateInfo ci = new CertficateInfo ();
ci.AsciiCert = cert_info.ascii_cert;
ci.Fingerprint = cert_info.fingerprint;
ci.HostName = cert_info.hostname;
ci.IssuerName = cert_info.issuer_dname;
ci.ValidFrom = cert_info.valid_from;
ci.ValidUntil = cert_info.valid_until;
SslFailure accepted_failures;
bool ms;
if (SslServerTrustAuthenticationPrompt (realm, (SslFailure) failures, may_save != 0, ci, out accepted_failures, out ms) && accepted_failures != SslFailure.None) {
data.may_save = ms ? 1 : 0;
data.accepted_failures = (uint) accepted_failures;
cred = apr.pcalloc (pool, data);
return IntPtr.Zero;
} else {
data.accepted_failures = 0;
data.may_save = 0;
cred = apr.pcalloc (pool, data);
return GetCancelError ();
}
}
示例10: Func
public void Func (IntPtr baton, IntPtr path, ref LibSvnClient.svn_wc_status_t status)
{
string pathstr = Marshal.PtrToStringAnsi (path);
/*if (status.to_svn_wc_entry_t == IntPtr.Zero)
return;
*/
statuses.Add (new LibSvnClient.StatusEnt (status, pathstr));
}
示例11: Merge
private void Merge (string path, LibSvnClient.Rev revision1, LibSvnClient.Rev revision2)
{
IntPtr localpool = newpool (pool);
LibSvnClient.Rev working = LibSvnClient.Rev.Working;
CheckError (svn.client_merge_peg2 (path,
ref revision1,
ref revision2,
ref working,
path,
false, false, false, false,
IntPtr.Zero, //default options is NULL
ctx, localpool));
return;
}