/* Copyright (c) 2013-2014 Boundless and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Distribution License v1.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/org/documents/edl-v10.html
*
* Contributors:
* Victor Olaya (Boundless) - initial implementation
*/
package org.locationtech.geogig.cli.plumbing;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable;
import com.beust.jcommander.Parameter;
import com.google.common.collect.Lists;
/**
* Encapsulates and describes the arguments for the {@link RevList} command
*/
public class RevListArgs {
/**
* The commits to use for starting the list of output commits
*
*/
@Parameter(description = "< [<commit> ...]|[<since>..<until>]")
public List<String> commits = new ArrayList<String>();
@Parameter(names = { "--max-count", "-n" }, description = "Maximum number of commits to log.")
@Nullable
public Integer limit;
@Parameter(names = "--skip", description = "Skip number commits before starting to show the commit output.")
@Nullable
public Integer skip;
@Parameter(names = "--since", description = "Maximum number of commits to log")
@Nullable
public String since;
@Parameter(names = "--until", description = "Maximum number of commits to log")
@Nullable
public String until;
@Parameter(names = "--author", description = "Return only commits by authors with names maching the passed regular expression")
@Nullable
public String author;
@Parameter(names = "--committer", description = "Return only commits by committer with names maching the passed regular expression")
@Nullable
public String committer;
@Parameter(names = { "--path", "-p" }, description = "Print only commits that have modified the given path(s)", variableArity = true)
public List<String> pathNames = Lists.newArrayList();
@Parameter(names = "--summary", description = "Show summary of changes for each commit")
@Nullable
public boolean summary;
@Parameter(names = "--topo-order", description = "Avoid showing commits on multiple lines of history intermixed")
@Nullable
public boolean topo;
@Parameter(names = "--first-parent", description = "Use only the first parent of each commit, showing a linear history")
@Nullable
public boolean firstParent;
@Parameter(names = "--changed", description = "Show paths affected by each commit")
@Nullable
public boolean changed;
}