changeset 926:06ecc863293a Hajipur-9.0.x

More robust commit If commit message cannot be encoded in utf-8, replace non-encoded characters
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Mon, 16 Feb 2015 12:21:36 +0100
parents ef9d14cbca44
children 9291f2627c2a cccd4e722ca4
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(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommitCommand.java	Wed Feb 11 14:18:51 2015 +0100
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommitCommand.java	Mon Feb 16 12:21:36 2015 +0100
@@ -51,6 +51,7 @@
     if (myUser != null)
       cmd.addParameters("--user", myUser);
     cmd.addEnvParam("HGENCODING", "UTF-8");
+    cmd.addEnvParam("HGENCODINGMODE", "replace");
     CommandResult result = runCommand(cmd);
     return result.getExitCode();
   }
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitSupportTest.java	Wed Feb 11 14:18:51 2015 +0100
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitSupportTest.java	Mon Feb 16 12:21:36 2015 +0100
@@ -26,6 +26,7 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.File;
+import java.io.IOException;
 import java.io.InputStream;
 import java.util.List;
 
@@ -95,13 +96,9 @@
 
   @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();
+    for (String msg : new String[] {"Комит месадж", "Über Alles"}) {
+      commit(msg);
+    }
   }
 
 
@@ -166,4 +163,13 @@
       return myDescription;
     }
   }
+
+  private void commit(String description) throws IOException, VcsException {
+    VcsRoot root = vcsRoot().withUrl(myRepo).build();
+    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();
+  }
 }