private static void PerformCheckout(ProgressWorkerArgs e, SvnUriTarget projectTop, SvnRevision revision, string localDir) { SvnCheckOutArgs a = new SvnCheckOutArgs(); a.Revision = revision; e.Client.CheckOut(projectTop, localDir, a); }
private static void PerformUpdate(CommandEventArgs e, ProgressWorkerArgs wa, SvnRevision rev, bool allowUnversionedObstructions, bool updateExternals, bool setDepthInfinity, IEnumerable <UpdateGroup> groups, out SvnUpdateResult updateResult) { SvnUpdateArgs ua = new SvnUpdateArgs(); ua.Revision = rev; ua.AllowObstructions = allowUnversionedObstructions; ua.IgnoreExternals = !updateExternals; ua.KeepDepth = setDepthInfinity; updateResult = null; HybridCollection <string> handledExternals = new HybridCollection <string>(StringComparer.OrdinalIgnoreCase); ua.Notify += delegate(object ss, SvnNotifyEventArgs ee) { if (ee.Action == SvnNotifyAction.UpdateExternal) { if (!handledExternals.Contains(ee.FullPath)) { handledExternals.Add(ee.FullPath); } } }; e.Context.GetService <IConflictHandler>().RegisterConflictHandler(ua, wa.Synchronizer); foreach (UpdateGroup group in groups) { if (handledExternals.Contains(group.WorkingCopyRoot)) { continue; } group.Nodes.Sort(StringComparer.OrdinalIgnoreCase); // Currently Subversion runs update per item passed and in // Subversion 1.6 passing each item separately is actually // a tiny bit faster than passing them all at once. // (sleep_for_timestamp fails its fast route) foreach (string path in group.Nodes) { if (handledExternals.Contains(path)) { continue; } SvnUpdateResult result; wa.Client.Update(path, ua, out result); if (updateResult == null) { updateResult = result; // Return the primary update as version for output } } } }
private bool NameExists(string name, ProgressWorkerArgs ee, GitItem root) { foreach (var @ref in ee.Client.GetRefs(root.FullPath)) { switch (@ref.Type) { case GitRefType.Branch: case GitRefType.Tag: if (String.Equals(@ref.ShortName, name, StringComparison.Ordinal)) return true; break; } } return false; }
private static void PerformUpdate(CommandEventArgs e, ProgressWorkerArgs wa, SvnRevision rev, bool allowUnversionedObstructions, bool updateExternals, bool setDepthInfinity, IEnumerable<List<string>> groups, out SvnUpdateResult updateResult) { SvnUpdateArgs ua = new SvnUpdateArgs(); ua.Revision = rev; ua.AllowObstructions = allowUnversionedObstructions; ua.IgnoreExternals = !updateExternals; ua.KeepDepth = setDepthInfinity; updateResult = null; HybridCollection<string> handledExternals = new HybridCollection<string>(StringComparer.OrdinalIgnoreCase); ua.Notify += delegate(object ss, SvnNotifyEventArgs ee) { if (ee.Action == SvnNotifyAction.UpdateExternal) { if (!handledExternals.Contains(ee.FullPath)) handledExternals.Add(ee.FullPath); } }; e.Context.GetService<IConflictHandler>().RegisterConflictHandler(ua, wa.Synchronizer); foreach (List<string> group in groups) { // Currently Subversion runs update per item passed and in // Subversion 1.6 passing each item separately is actually // a tiny bit faster than passing them all at once. // (sleep_for_timestamp fails its fast route) foreach (string path in group) { if (handledExternals.Contains(path)) continue; SvnUpdateResult result; wa.Client.Update(path, ua, out result); if (updateResult == null) updateResult = result; // Return the primary update as version for output } } }