/// <summary> /// Initializes a new instance of the <see cref="MergeCandidateWrapper"/> class. /// </summary> public MergeCandidateWrapper(MergeCandidate mergeCandidate) { #region Argument Check if (mergeCandidate == null) { throw new ArgumentNullException("mergeCandidate"); } if (mergeCandidate.Changeset == null) { throw new ArgumentException(@"The associated changeset cannot be null.", "mergeCandidate"); } #endregion var changeset = mergeCandidate.Changeset; this.AsString = mergeCandidate.ToString(); this.CreationDate = changeset.CreationDate; this.ChangesetId = changeset.ChangesetId; this.Owner = changeset.Owner ?? string.Empty; this.Comment = changeset.Comment ?? string.Empty; this.WorkItems = changeset.WorkItems.Select(item => new WorkItemWrapper(item)).ToList().AsReadOnly(); this.WorkItemIdsAsString = string.Join( ", ", this.WorkItems.OrderBy(item => item.Id).Select(item => item.Id.ToString("D"))); }
public void PrintMergeCandidateList(List <MergeCandidate> candidates) { if (candidates.Count <= 0) { return; } const int idLength = 7; const int dateLength = 10; const int nameLength = 16; const int commentLength = 50; string header1 = "ID".PadRight(idLength); string header2 = "DATE".PadRight(dateLength); string header3 = "COMMITTER".PadRight(nameLength); string header4 = "COMMENT".PadRight(commentLength); string header = " " + header1 + " | " + header2 + " | " + header3 + " | " + header4; Output.WriteLine(header); // Need to print in reverse order, so that the 1st to be merged shows as the lowest on the screen for (int ii = candidates.Count() - 1; ii >= 0; ii--) { MergeCandidate candidate = candidates[ii]; Changeset changeset = candidate.Changeset; //string id = changeset.ChangesetId.ToString().Trim().PadRight(idLength); string idPartialChar = candidate.Partial ? "*" : string.Empty; string id = (idPartialChar + changeset.ChangesetId.ToString("D")).PadLeft(idLength); string date = changeset.CreationDate.ToShortDateString().PadLeft(dateLength); string name = changeset.OwnerDisplayName ?? ""; if (name.Length > nameLength) { name = name.Substring(0, nameLength); } name = name.PadRight(nameLength); string comment = changeset.Comment.Replace("\r\n", "\\n"); if (comment.Length > commentLength) { comment = comment.Substring(0, commentLength); } comment = comment.PadRight(commentLength); string text = " " + id + " | " + date + " | " + name + " | " + comment; Output.WriteLine(text); } }
public static string[] ToDataGridStringArray(this MergeCandidate candidate) { string comment = candidate.Comment ?? string.Empty; comment = comment.Length > 100 ? comment.Substring(0, 100) + "..." : comment; return(new string[] { candidate.ChangesetId.ToString(), candidate.Committer, candidate.CheckinDate.ToString(), comment }); }
public static TfsChangesetMerged ToModel(this MergeCandidate mc) { return(new TfsChangesetMerged { Changesetid = mc.Changeset.ChangesetId, Comment = mc.Changeset.Comment, Committer = mc.Changeset.Committer, CommitterDisplayName = mc.Changeset.CommitterDisplayName, CreationDate = mc.Changeset.CreationDate, CreationDateHuman = mc.Changeset.CreationDate.ToString("yyyy-MM-dd HH:mm:ss"), Changes = mc.Changeset.Changes, Owner = mc.Changeset.Owner, OwnerDisplayName = mc.Changeset.OwnerDisplayName, PartialMerge = mc.Partial, }); }
public void refreshFromDb(LayerManager db, MergeCandidate mc = null) { var seg = new List<SegmentDescriptor>(); // this is much faster than using listAllSegments foreach(var kvp in db.rangemapmgr.mergeManager.segmentInfo) { seg.Add(kvp.Key); } segments = seg; this.lastmerge = mc; // we should be doing this, but .Keys is not implemented in BDSkipList // segments.AddRange(db.rangemapmgr.mergeManager.segmentInfo.Keys); // segments.AddRange(db.listAllSegments()); this.Invoke((MethodInvoker) delegate() { try { this.Refresh(); } catch (Exception e) { System.Console.WriteLine("######" + e.ToString()); throw e; } }); }
public MergeCandidateWrapper(MergeCandidate mergeCandidate) { _mergeCandidate = mergeCandidate; _changeset = new ChangesetWrapper(_mergeCandidate.Changeset); }
public void debugDump(LayerManager db, MergeCandidate mc = null) { this.layerVisualization1.refreshFromDb(db, mc); }