changeset 908:b39494a5ff96

TW-39095 handle commit messages with non-ascii symbols
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Fri, 05 Dec 2014 14:59:15 +0100
parents b467eb363d46
children b2ecc56f456c c386464d3bdc
files mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommitCommand.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitSupportTest.java
diffstat 2 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommitCommand.java	Wed Dec 03 18:58:09 2014 +0100
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommitCommand.java	Fri Dec 05 14:59:15 2014 +0100
@@ -50,6 +50,7 @@
       cmd.addParameters("-m", myCommitMessage);
     if (myUser != null)
       cmd.addParameters("--user", myUser);
+    cmd.addEnvParam("HGENCODING", "UTF-8");
     CommandResult result = runCommand(cmd);
     return result.getExitCode();
   }
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitSupportTest.java	Wed Dec 03 18:58:09 2014 +0100
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitSupportTest.java	Fri Dec 05 14:59:15 2014 +0100
@@ -16,6 +16,7 @@
 
 package jetbrains.buildServer.buildTriggers.vcs.mercurial;
 
+import jetbrains.buildServer.util.TestFor;
 import jetbrains.buildServer.vcs.*;
 import org.jetbrains.annotations.NotNull;
 import org.testng.annotations.BeforeMethod;
@@ -87,6 +88,18 @@
   }
 
 
+  @TestFor(issues = "TW-39095")
+  public void commit_with_non_ascii_commit_message(@NotNull HgVersion _) throws Exception {
+    VcsRoot root = vcsRoot().withUrl(myRepo).build();
+    String description = "Комит месадж";
+    String author = "Joe Doe <joe@some.org>";
+    CommitPatchBuilder patchBuilder = myCommitSupport.getCommitPatchBuilder(root);
+    patchBuilder.createFile("a/b/c", stream("test"));
+    patchBuilder.commit(new CommitSettingsImpl(author, description));
+    patchBuilder.dispose();
+  }
+
+
   @NotNull
   private InputStream stream(@NotNull String content) {
     return new ByteArrayInputStream(content.getBytes());