public Command GetQueryRevisionsCommand(QueryRevisionsParameters parameters) { Assert.IsNotNull(parameters); var args = new List<ICommandArgument>(30); InsertQueryRevisionsParameters(parameters, args, GetRevisionFormatArgument()); return new LogCommand(args); }
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)); } } }
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); }