view mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CollectChangesWithRevsets.java @ 548:6c8911ed66f2

Report subrepo changes
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Thu, 21 Feb 2013 18:46:43 +0400
parents 45f25ca68312
children 333a1ddcbf94
line wrap: on
line source
package jetbrains.buildServer.buildTriggers.vcs.mercurial.command;

import jetbrains.buildServer.buildTriggers.vcs.mercurial.HgRepo;
import jetbrains.buildServer.vcs.VcsException;
import org.jetbrains.annotations.NotNull;

import java.util.List;

/**
 * @author dmitry.neverov
 */
public class CollectChangesWithRevsets extends CollectChangesCommand {

  private HgRepo myRepo;

  public CollectChangesWithRevsets(@NotNull HgRepo repo) {
    myRepo = repo;
  }

  @Override
  public List<ChangeSet> call() throws VcsException {
    return call(myFromRevisions, myToRevision);
  }

  @NotNull
  public List<ChangeSet> call(@NotNull final List<String> fromCommits, @NotNull final String toCommit) throws VcsException {
    StringBuilder revsets = new StringBuilder();
    revsets.append("ancestors(").append(toCommit).append(") ");
    for (String from : fromCommits) {
      revsets.append(" - ancestors(").append(from).append(")");
    }

    return myRepo.log()
            .showCommitsFromAllBranches()
            .withRevsets(revsets.toString())
            .call();
  }
}