コード例 #1
0
        public ITfsChangeset GetLatestChangeset(GitTfsRemote remote)
        {
            var history = VersionControl.QueryHistory(remote.TfsRepositoryPath, VersionSpec.Latest, 0,
                                                      RecursionType.Full, null, null, VersionSpec.Latest, 1, true, false,
                                                      false);

            return(BuildTfsChangeset(history.Cast <Changeset>().Single(), remote));
        }
コード例 #2
0
ファイル: TfsHelper.VsFake.cs プロジェクト: wundram/git-tfs
        private ITfsChangeset BuildTfsChangeset(ScriptedChangeset changeset, GitTfsRemote remote)
        {
            var tfsChangeset = _container.With <ITfsHelper>(this).With <IChangeset>(new Changeset(changeset)).GetInstance <TfsChangeset>();

            tfsChangeset.Summary = new TfsChangesetInfo {
                ChangesetId = changeset.Id, Remote = remote
            };
            return(tfsChangeset);
        }
コード例 #3
0
        private ITfsChangeset BuildTfsChangeset(Changeset changeset, GitTfsRemote remote)
        {
            var tfsChangeset = _container.With <ITfsHelper>(this).With <IChangeset>(_bridge.Wrap <WrapperForChangeset, Changeset>(changeset)).GetInstance <TfsChangeset>();

            tfsChangeset.Summary = new TfsChangesetInfo {
                ChangesetId = changeset.ChangesetId, Remote = remote
            };
            return(tfsChangeset);
        }
コード例 #4
0
        public int FindMergeChangesetParent(string path, long firstChangeset, GitTfsRemote remote)
        {
            var firstChangesetOfBranch = _script.Changesets.FirstOrDefault(c => c.IsMergeChangeset && c.MergeChangesetDatas.MergeIntoBranch == path && c.MergeChangesetDatas.BeforeMergeChangesetId < firstChangeset);

            if (firstChangesetOfBranch != null)
            {
                return(firstChangesetOfBranch.MergeChangesetDatas.BeforeMergeChangesetId);
            }
            return(-1);
        }
コード例 #5
0
        public ITfsChangeset GetLatestChangeset(GitTfsRemote remote)
        {
            var history = VersionControl.QueryHistory(remote.TfsRepositoryPath, VersionSpec.Latest, 0,
                                                      RecursionType.Full, null, null, VersionSpec.Latest, 1, true, false,
                                                      false).Cast <Changeset>().ToList();

            if (history.Empty())
            {
                throw new GitTfsException("error: remote TFS repository path was not found");
            }

            return(BuildTfsChangeset(history.Single(), remote));
        }
コード例 #6
0
        private ITfsChangeset BuildTfsChangeset(Changeset changeset, GitTfsRemote remote)
        {
            var tfsChangeset = _container.With <ITfsHelper>(this).With <IChangeset>(_bridge.Wrap <WrapperForChangeset, Changeset>(changeset)).GetInstance <TfsChangeset>();

            tfsChangeset.Summary = new TfsChangesetInfo {
                ChangesetId = changeset.ChangesetId, Remote = remote
            };

            if (changeset.WorkItems != null)
            {
                tfsChangeset.Summary.Workitems = changeset.WorkItems.Select(wi => new TfsWorkitem
                {
                    Id          = wi.Id,
                    Title       = wi.Title,
                    Description = wi.Description,
                    Url         = Linking.GetArtifactUrl(wi.Uri.AbsoluteUri)
                });
            }

            return(tfsChangeset);
        }
コード例 #7
0
ファイル: TfsHelper.VsFake.cs プロジェクト: wundram/git-tfs
 public IEnumerable <ITfsChangeset> GetChangesets(string path, long startVersion, GitTfsRemote remote)
 {
     return(_script.Changesets.Where(x => x.Id >= startVersion).Select(x => BuildTfsChangeset(x, remote)));
 }
コード例 #8
0
ファイル: TfsHelper.VsFake.cs プロジェクト: wundram/git-tfs
 public ITfsChangeset GetLatestChangeset(GitTfsRemote remote)
 {
     return(_script.Changesets.LastOrDefault().AndAnd(x => BuildTfsChangeset(x, remote)));
 }
コード例 #9
0
ファイル: TfsHelper.VsFake.cs プロジェクト: wundram/git-tfs
 public ITfsChangeset GetChangeset(int changesetId, GitTfsRemote remote)
 {
     throw new NotImplementedException();
 }
コード例 #10
0
        public IEnumerable <ITfsChangeset> GetChangesets(string path, long startVersion, GitTfsRemote remote)
        {
            var changesets = VersionControl.QueryHistory(path, VersionSpec.Latest, 0, RecursionType.Full,
                                                         null, new ChangesetVersionSpec((int)startVersion), VersionSpec.Latest, int.MaxValue, true,
                                                         true, true);

            return(changesets.Cast <Changeset>()
                   .OrderBy(changeset => changeset.ChangesetId)
                   .Select(changeset => BuildTfsChangeset(changeset, remote)));
        }
コード例 #11
0
 public ITfsChangeset GetChangeset(int changesetId, GitTfsRemote remote)
 {
     return(BuildTfsChangeset(VersionControl.GetChangeset(changesetId), remote));
 }
コード例 #12
0
        public virtual int FindMergeChangesetParent(string path, long firstChangeset, GitTfsRemote remote)
        {
            var mergeInfo = VersionControl.QueryMerges(null, null, path, LatestVersionSpec.Latest, null, new ChangesetVersionSpec((int)firstChangeset), RecursionType.Full);

            return(mergeInfo.Max(x => x.SourceVersion));
        }
コード例 #13
0
 public override int FindMergeChangesetParent(string path, long firstChangeset, GitTfsRemote remote)
 {
     return(VersionControl.QueryMerges(null, null, new ItemSpec(path, RecursionType.Full), LatestVersionSpec.Latest,
                                       null, new ChangesetVersionSpec((int)firstChangeset)).Max(x => x.SourceVersion));
 }
コード例 #14
0
        public IEnumerable <ITfsChangeset> GetChangesets(string path, long startVersion, GitTfsRemote remote)
        {
            var changesets = VersionControl.QueryHistory(path, VersionSpec.Latest, 0, RecursionType.Full,
                                                         null, new ChangesetVersionSpec((int)startVersion), VersionSpec.Latest, int.MaxValue, true, true, true)
                             .Cast <Changeset>().OrderBy(changeset => changeset.ChangesetId).ToArray();

            // don't take the enumerator produced by a foreach statement or a yield statement, as there are references
            // to the old (iterated) elements and thus the referenced changesets won't be disposed until all elements were iterated.
            for (int i = 0; i < changesets.Length; i++)
            {
                yield return(BuildTfsChangeset(changesets[i], remote));

                changesets[i] = null;
            }
        }