From 4cee27b7449253108cfd6654ff76de1d7c92ebab Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Fri, 14 Dec 2012 20:11:33 +0100 Subject: [PATCH] use system environment when executing "hg create" --- .../main/java/sonia/scm/io/SimpleCommand.java | 39 ++++++++++++++++++- .../scm/repository/HgRepositoryHandler.java | 3 ++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/scm-core/src/main/java/sonia/scm/io/SimpleCommand.java b/scm-core/src/main/java/sonia/scm/io/SimpleCommand.java index 55d6386ed0..0035a2880c 100644 --- a/scm-core/src/main/java/sonia/scm/io/SimpleCommand.java +++ b/scm-core/src/main/java/sonia/scm/io/SimpleCommand.java @@ -105,6 +105,21 @@ public class SimpleCommand implements Command return getResult(process); } + //~--- get methods ---------------------------------------------------------- + + /** + * Method description + * + * + * @return + * + * @since 1.23 + */ + public boolean isUseSystemEnvironment() + { + return useSystemEnvironment; + } + //~--- set methods ---------------------------------------------------------- /** @@ -119,6 +134,19 @@ public class SimpleCommand implements Command this.environment = environment; } + /** + * Method description + * + * + * @param useSystemEnvironment + * + * @since 1.23 + */ + public void setUseSystemEnvironment(boolean useSystemEnvironment) + { + this.useSystemEnvironment = useSystemEnvironment; + } + /** * Method description * @@ -162,9 +190,15 @@ public class SimpleCommand implements Command processBuilder = processBuilder.directory(workDirectory); } + Map env = processBuilder.environment(); + if ( useSystemEnvironment ) + { + env.putAll(System.getenv()); + } + if (environment != null) { - processBuilder.environment().putAll(environment); + env.putAll(environment); } return processBuilder.redirectErrorStream(true).start(); @@ -244,6 +278,9 @@ public class SimpleCommand implements Command /** Field description */ private Map environment; + /** Field description */ + private boolean useSystemEnvironment = false; + /** Field description */ private File workDirectory; } diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java index bbdab43e4e..4eb21683fe 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java @@ -546,6 +546,9 @@ public class HgRepositoryHandler ExtendedCommand cmd = new ExtendedCommand(config.getHgBinary(), "init", directory.getAbsolutePath()); + // copy system environment, because of the PATH variable + cmd.setUseSystemEnvironment(true); + // issue-97 cmd.setWorkDirectory(baseDirectory);