Пример #1
0
        void IndexRevisionRange(int startRevision, int stopRevision)
        {
            foreach (var data in _svn.GetRevisionData(startRevision, stopRevision))
            {
                IndexJobData jobData = new IndexJobData();
                if (!_args.SingleRevision)
                {
                    jobData.Path           = "$Revision " + data.Revision;
                    jobData.RevisionFirst  = data.Revision;
                    jobData.RevisionLast   = data.Revision;
                    jobData.Info           = new PathInfo();
                    jobData.Info.Author    = data.Author;
                    jobData.Info.Timestamp = data.Timestamp;
                    QueueIndexJob(jobData);
                }
                data.Changes.ForEach(QueueAnalyzeJobRecursive);
                _pendingAnalyzeJobs.Wait();
            }

            foreach (var job in _headJobs.Values) // no lock necessary because no analyzeJobs are running
            {
                QueueFetchJob(job);
            }
            _headJobs.Clear();

            _pendingFetchJobs.Wait();
            _indexQueueIsEmpty.WaitOne();

            IndexProperty.SetRevision(_indexWriter, stopRevision);
            Console.WriteLine("Index revision is now " + stopRevision);
        }