List<String> (@NotNull String template, int limit, @Nullable HgFile hgFile, @Nullable List<String> argsForCmd) { List<String> arguments = new LinkedList<>(); if (myIncludeRemoved) { // There is a bug in mercurial that causes --follow --removed <file> to cause // an error (http://mercurial.selenic.com/bts/issue2139). Avoid this combination // for now, preferring to use --follow over --removed. if (!(myFollowCopies && myLogFile)) { arguments.add("--removed"); } } if (myFollowCopies) { arguments.add("--follow"); //workaround: --follow options doesn't work with largefiles extension, so we need to switch off this extension in log command //see http://selenic.com/pipermail/mercurial-devel/2013-May/051209.html fixed since 2.7 if (!myLargeFilesWithFollowSupported) { arguments.add("--config"); arguments.add("extensions.largefiles=!"); } } arguments.add("--template"); arguments.add(template); if (!CommitCountStageKt.isAll(limit)) { arguments.add("--limit"); arguments.add(String.valueOf(limit)); } if (argsForCmd != null) { arguments.addAll(argsForCmd); } //to do double check the same condition should be simplified if (myLogFile && hgFile != null) { arguments.add(hgFile.getRelativePath()); } return arguments; }