changeset 906:884c3d03f6ca

TW-36023 include local repository path into warn log messages to ease troubleshooting
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Fri, 28 Nov 2014 16:28:47 +0100
parents 9af9d7f944d9
children b467eb363d46
files mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResult.java mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandUtil.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResultTest.java
diffstat 3 files changed, 12 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResult.java	Thu Nov 27 21:05:41 2014 +0100
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResult.java	Fri Nov 28 16:28:47 2014 +0100
@@ -57,17 +57,20 @@
   private final ExecResult myDelegate;
   private final Set<String> myPrivateData;
   private final CommandSettings mySettings;
+  private final String myCommandWorkingDir;
 
   public CommandResult(@NotNull Logger logger,
                        @NotNull String command,
                        @NotNull ExecResult execResult,
                        @NotNull Set<String> privateData,
-                       @NotNull CommandSettings settings) {
+                       @NotNull CommandSettings settings,
+                       @Nullable String commandWorkingDir) {
     myLogger = logger;
     myCommand = command;
     myDelegate = execResult;
     myPrivateData = privateData;
     mySettings = settings;
+    myCommandWorkingDir = commandWorkingDir;
   }
 
   public int getExitCode() {
@@ -170,9 +173,13 @@
     return exception instanceof NullPointerException;
   }
 
+  @NotNull
   private String createCommandLogMessage() {
     StringBuilder message = new StringBuilder();
-    message.append("'").append(getCommand()).append("' command failed.");
+    message.append("'");
+    if (!isEmpty(myCommandWorkingDir))
+      message.append("[").append(myCommandWorkingDir).append("] ");
+    message.append(getCommand()).append("' command failed.");
     String stderr = getStderr();
     if (!isEmpty(stderr)) {
       int logOutputLimit = mySettings.getLogOutputLimit();
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandUtil.java	Thu Nov 27 21:05:41 2014 +0100
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandUtil.java	Fri Nov 28 16:28:47 2014 +0100
@@ -139,7 +139,7 @@
         Loggers.VCS.debug("Command " + command + " took " + duration + "ms");
       }
     }, stdoutBuffer, stderrBuffer);
-    return new CommandResult(Loggers.VCS, command, res, privateData, settings);
+    return new CommandResult(Loggers.VCS, command, res, privateData, settings, cli.getWorkingDirectory());
   }
 
   public static String removePrivateData(final String str, final Set<String> privateData) {
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResultTest.java	Thu Nov 27 21:05:41 2014 +0100
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandResultTest.java	Fri Nov 28 16:28:47 2014 +0100
@@ -181,12 +181,12 @@
 
   @NotNull
   CommandResult commandResultFor(@NotNull String command, @NotNull ExecResultBuilder builder, String... privateData) {
-    return new CommandResult(myLogger, command, builder.build(), new HashSet<String>(Arrays.asList(privateData)), new CommandSettings());
+    return new CommandResult(myLogger, command, builder.build(), new HashSet<String>(Arrays.asList(privateData)), new CommandSettings(), "/path/to/command/dir");
   }
 
   @NotNull
   CommandResult commandResultFor(@NotNull ExecResultBuilder builder, CommandSettings settings) {
-    return new CommandResult(myLogger, "", builder.build(), new HashSet<String>(), settings);
+    return new CommandResult(myLogger, "", builder.build(), new HashSet<String>(), settings, "/path/to/command/dir");
   }
 
   private class ExecResultBuilder {