public IEnumerable<IRevision> GetRevisions(IRevisionVersion sourceRevision, IRevisionVersion targetRevision) { System.Collections.IEnumerable changesets = m_versionControlServer.QueryHistory( m_sourceControlRootPath, targetRevision.GetSpec(), 0, RecursionType.Full, null, sourceRevision.GetSpec(), targetRevision.GetSpec(), int.MaxValue, true, false); int? sourceChangeSetId = null; if (sourceRevision.GetSpec() is ChangesetVersionSpec) { sourceChangeSetId = (sourceRevision.GetSpec() as ChangesetVersionSpec).ChangesetId; } HashSet<string> items = new HashSet<string>(); foreach (var changeset in changesets.OfType<Changeset>()) { if (!sourceChangeSetId.HasValue || sourceChangeSetId.Value != changeset.ChangesetId) { foreach (Change change in changeset.Changes) { if (change.Item.ServerItem.StartsWith(m_sourceControlRootPath, StringComparison.OrdinalIgnoreCase)) { var item = change.Item.ServerItem.Substring(m_sourceControlRootPath.Length); items.Add(item); } } } } return items.Select(p=> new TfsRevision(MakeFileSystemType(p))).ToList(); }
public IRevisionVersion GetRevisionOfItem(IRevisionVersion maxRevisionVersion, string path) { try { if (!m_workspace.IsValueCreated) { var invoker = m_workspace.Value; } var item = m_versionControlServer.GetItem( System.IO.Path.Combine(m_sourceControlRootPath, path), maxRevisionVersion.GetSpec(), DeletedState.NonDeleted, GetItemsOptions.None); return new TFSRevisionVersion(new ChangesetVersionSpec(item.ChangesetId)); } catch (Exception e) { return new TFSRevisionVersion(new DateVersionSpec(new DateTime(1973, 1, 1))); ; // The begining of time; } }