changeset 826:6f76b2e5afdc

add getCommandLineLength
author eugene.petrenko@jetbrains.com
date Fri, 30 May 2014 17:21:12 +0200
parents 5fbc0d51bea3
children 194c8f8d6e4c
files mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/ArchiveCommand.java mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CatCommand.java mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/MercurialCommandLine.java
diffstat 3 files changed, 31 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/ArchiveCommand.java	Fri May 30 12:16:35 2014 +0200
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/ArchiveCommand.java	Fri May 30 17:21:12 2014 +0200
@@ -68,8 +68,8 @@
   public boolean addIncludeRule(@NotNull final String rule) {
     final MercurialCommandLine cmd = createCmd();
 
-    final int cmdSize = cmd.getCommandLineString().length();
-    if (cmdSize + rule.length() + 2 + (myIncludeRules.isEmpty() ? 0 : "-I ".length()) > getMaxCommandLineSize()) {
+    final int cmdSize = cmd.getCommandLineLength();
+    if (cmdSize + rule.length() + 3 + (myIncludeRules.isEmpty() ? 0 : "-I ".length()) > getMaxCommandLineSize()) {
       return false;
     }
 
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CatCommand.java	Fri May 30 12:16:35 2014 +0200
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CatCommand.java	Fri May 30 17:21:12 2014 +0200
@@ -110,7 +110,7 @@
     final Queue<String> paths = new LinkedList<String>(relPaths);
     while (!paths.isEmpty()) {
       MercurialCommandLine cli = createCommandLine(tempDir);
-      int cmdSize = cli.getCommandLineString().length() + 42;
+      int cmdSize = cli.getCommandLineLength() + 42;
 
       do {
         String path = paths.poll();
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/MercurialCommandLine.java	Fri May 30 12:16:35 2014 +0200
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/MercurialCommandLine.java	Fri May 30 17:21:12 2014 +0200
@@ -38,15 +38,41 @@
   }
 
   @NotNull
+  public MercurialCommandLine forkWithoutCommandlineArguments() {
+    final MercurialCommandLine fork = fork();
+    fork.myArguments.clear();
+    return fork;
+  }
+
+  @NotNull
+  public MercurialCommandLine fork() {
+    final MercurialCommandLine line = new MercurialCommandLine(myPrivateData);
+    line.myExePath = myExePath;
+    line.myArguments.addAll(myArguments);
+    line.myEnvPatch.putAll(myEnvPatch);
+    line.myWorkingDirectory = myWorkingDirectory;
+    line.myCharset = myCharset;
+    return line;
+  }
+
+  public int getCommandLineLength() {
+    return getCommandLineString().length() + 42;
+  }
+
+  @NotNull
   public String getCommandLineString() {
-    String original = toGeneralCommandLine().getCommandLineString();
-    return CommandUtil.removePrivateData(original, myPrivateData);
+    return toGeneralCommandLine().getCommandLineString();
   }
 
   public void setExePath(@NotNull final String hgPath) {
     myExePath = hgPath;
   }
 
+  @NotNull
+  public List<String> getArguments() {
+    return new ArrayList<String>(myArguments);
+  }
+
   public void addParameter(@NotNull final String parameter) {
     String escaped = escape(parameter);
     myArguments.add(escaped);