Exemplo n.º 1
0
        public Command GetQueryRevisionsCommand(QueryRevisionsParameters parameters)
        {
            Assert.IsNotNull(parameters);

            var args = new List<ICommandArgument>(30);
            InsertQueryRevisionsParameters(parameters, args, GetRevisionFormatArgument());
            return new LogCommand(args);
        }
Exemplo n.º 2
0
        private static void InsertQueryRevisionsParameters(QueryRevisionsParameters parameters, IList<ICommandArgument> args, ICommandArgument format)
        {
            #region Commit Limiting

            if(parameters.MaxCount != 0)
            {
                args.Add(LogCommand.MaxCount(parameters.MaxCount));
            }
            if(parameters.Skip != 0)
            {
                args.Add(LogCommand.Skip(parameters.Skip));
            }

            if(parameters.SinceDate.HasValue)
            {
                args.Add(LogCommand.Since(parameters.SinceDate.Value));
            }
            if(parameters.UntilDate.HasValue)
            {
                args.Add(LogCommand.Until(parameters.UntilDate.Value));
            }

            if(parameters.AuthorPattern != null)
            {
                args.Add(LogCommand.Author(parameters.AuthorPattern));
            }
            if(parameters.CommitterPattern != null)
            {
                args.Add(LogCommand.Committer(parameters.CommitterPattern));
            }
            if(parameters.MessagePattern != null)
            {
                args.Add(LogCommand.Grep(parameters.MessagePattern));
            }
            if(parameters.AllMatch)
            {
                args.Add(LogCommand.AllMatch());
            }
            if(parameters.RegexpIgnoreCase)
            {
                args.Add(LogCommand.RegexpIgnoreCase());
            }
            if(parameters.RegexpExtended)
            {
                args.Add(LogCommand.ExtendedRegexp());
            }
            if(parameters.RegexpFixedStrings)
            {
                args.Add(LogCommand.FixedStrings());
            }
            if(parameters.RemoveEmpty)
            {
                args.Add(LogCommand.RemoveEmpty());
            }
            switch(parameters.MergesMode)
            {
                case RevisionMergesQueryMode.MergesOnly:
                    args.Add(LogCommand.Merges());
                    break;
                case RevisionMergesQueryMode.NoMerges:
                    args.Add(LogCommand.NoMerges());
                    break;
            }
            if(parameters.Follow)
            {
                args.Add(LogCommand.Follow());
            }

            if(parameters.Not)
            {
                args.Add(LogCommand.Not());
            }
            if(parameters.All)
            {
                args.Add(LogCommand.All());
            }

            if(parameters.ReferencesGlob != null)
            {
                args.Add(LogCommand.Glob(parameters.ReferencesGlob));
            }
            if(parameters.Branches != null)
            {
                args.Add(LogCommand.Branches(parameters.Branches));
            }
            if(parameters.Tags != null)
            {
                args.Add(LogCommand.Tags(parameters.Tags));
            }
            if(parameters.Remotes != null)
            {
                args.Add(LogCommand.Remotes(parameters.Remotes));
            }

            #endregion

            #region History Simplification

            if(parameters.FirstParent)
            {
                args.Add(LogCommand.FirstParent());
            }
            if(parameters.SimplifyByDecoration)
            {
                args.Add(LogCommand.SimplifyByDecoration());
            }
            if(parameters.EnableParentsRewriting)
            {
                args.Add(LogCommand.Parents());
            }

            #endregion

            #region Ordering

            switch(parameters.Order)
            {
                case RevisionQueryOrder.DateOrder:
                    args.Add(LogCommand.DateOrder());
                    break;
                case RevisionQueryOrder.TopoOrder:
                    args.Add(LogCommand.TopoOrder());
                    break;
            }

            if(parameters.Reverse)
            {
                args.Add(LogCommand.Reverse());
            }

            #endregion

            #region Formatting

            args.Add(LogCommand.NullTerminate());
            if(format != null)
            {
                args.Add(format);
            }

            #endregion

            if(parameters.Since != null && parameters.Until != null)
            {
                args.Add(new CommandParameter(parameters.Since + ".." + parameters.Until));
            }

            if(parameters.References != null)
            {
                foreach(var reference in parameters.References)
                {
                    args.Add(new CommandParameter(reference));
                }
            }

            if(parameters.Paths != null && parameters.Paths.Count != 0)
            {
                args.Add(CommandFlag.NoMoreOptions());
                foreach(var path in parameters.Paths)
                {
                    args.Add(new PathCommandArgument(path));
                }
            }
        }
Exemplo n.º 3
0
        public Command GetQueryRevisionGraphCommand(QueryRevisionsParameters parameters)
        {
            Assert.IsNotNull(parameters);

            var args = new List<ICommandArgument>(30);
            InsertQueryRevisionsParameters(parameters, args, LogCommand.Format("%H%n%P"));
            return new LogCommand(args);
        }