예제 #1
0
        protected override RevisionRange[] RetrieveRevisionRanges()
        {
            var result = new RevisionRange[0];

            if (IsFirstRun)
            {
                result = VersionControlSystem.GetFromTillHead(StartRevision, PageSize);
            }
            else if (!IsStartRevisionChanged || IsStartRevisionWithinAlreadyProcessedRevisionRange)
            {
                var alreadyProcessedRevisionRange = Storage.Get <RevisionRange>().Single();

                result = VersionControlSystem.GetAfterTillHead(alreadyProcessedRevisionRange.ToChangeset, PageSize);
            }
            else if (IsStartRevisionBehindAlreadyProcessedRevisionRange)
            {
                result = VersionControlSystem.GetAfterTillHead(StartRevision, PageSize);
            }
            else if (IsStartRevisionBeforeAlreadyProcessedRevisionRange)
            {
                var revisionRanges = new List <RevisionRange>();
                var alreadyProcessedRevisionRange = Storage.Get <RevisionRange>().Single();

                revisionRanges.AddRange(VersionControlSystem.GetFromAndBefore(StartRevision, alreadyProcessedRevisionRange.FromChangeset, PageSize));
                revisionRanges.AddRange(VersionControlSystem.GetAfterTillHead(alreadyProcessedRevisionRange.ToChangeset, PageSize));

                result = revisionRanges.ToArray();
            }

            if (result.Any())
            {
                Logger.Info("New revisions found");
            }

            return(result);
        }
예제 #2
0
 protected override RevisionRange[] RetrieveRevisionRanges()
 {
     return(VersionControlSystem.GetFromTillHead(StartRevision, PageSize));
 }