/**
  * Get & parse hg log detailed output with commits, their parents and their changes. For null
  * destination return log command result
  *
  * <p>
  *
  * <p>Warning: this is method is efficient by speed, but don't query too much, because the whole
  * log output is retrieved at once, and it can occupy too much memory. The estimate is ~600Kb for
  * 1000 commits.
  */
 @NotNull
 public static List<? extends VcsFullCommitDetails> history(
     @NotNull final Project project,
     @NotNull final VirtualFile root,
     int limit,
     @NotNull List<String> parameters)
     throws VcsException {
   HgVcs hgvcs = HgVcs.getInstance(project);
   assert hgvcs != null;
   final HgVersion version = hgvcs.getVersion();
   String[] templates = HgBaseLogParser.constructFullTemplateArgument(true, version);
   HgCommandResult result =
       getLogResult(
           project, root, version, limit, parameters, HgChangesetUtil.makeTemplate(templates));
   return createFullCommitsFromResult(project, root, result, version, false);
 }