changeset 670:718e4dbff3c3

Use factory methods to create merge results
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Tue, 15 Oct 2013 22:46:42 +0400
parents c32869bd757b
children 3cc513b9e3c1
files mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialMergeSupport.java
diffstat 1 files changed, 6 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialMergeSupport.java	Sat Oct 12 19:38:36 2013 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialMergeSupport.java	Tue Oct 15 22:46:42 2013 +0400
@@ -45,22 +45,20 @@
       HgRepo repo = myHgRepoFactory.createRepo(hgRoot, tmpDir);
       Map<MergeTask, MergeResult> results = new HashMap<MergeTask, MergeResult>();
       for (MergeTask task : tasks) {
-        MergeResult result = new MergeResult();
         try {
           new CheckoutRepository(myMirrorManager, myHgRepoFactory, myConfig.getPullTimeout(), myConfig.useTagsAsBranches(), hgRoot, tmpDir)
                   .setRevision(task.getDestinationRevision()).checkout();
           repo.merge().revision(task.getSourceRevision()).call();
+          results.put(task, MergeResult.createMergeSuccessResult());
         } catch (MergeConflictException e) {
-          result.setSuccess(false);
-          result.setConflicts(detectConflicts(hgRoot, "", repo));
+          results.put(task, MergeResult.createMergeError(detectConflicts(hgRoot, "", repo)));
         } catch (MergeWithWorkingDirAncestor e) {
           //ignore
         } catch (VcsException e) {
-          result.setSuccess(false);
+          results.put(task, MergeResult.createMergeError(e.getMessage()));
         } finally {
           repo.update().toRevision(task.getDestinationRevision()).call();
         }
-        results.put(task, result);
       }
       return results;
     } catch (Exception e) {
@@ -80,7 +78,6 @@
                            @NotNull String message,
                            @NotNull MergeOptions options) throws VcsException {
     File tmpDir = null;
-    MergeResult mergeResult = new MergeResult();
     try {
       tmpDir = HgFileUtil.createTempDir();
       HgVcsRoot hgRoot = myHgVcsRootFactory.createHgRoot(root);
@@ -92,17 +89,15 @@
       try {
         repo.merge().revision(srcRevision).call();
       } catch (MergeConflictException e) {
-        mergeResult.setSuccess(false);
-        mergeResult.setConflicts(detectConflicts(hgRoot, "", repo));
-        return mergeResult;
+        return MergeResult.createMergeError(detectConflicts(hgRoot, "", repo));
       } catch (MergeWithWorkingDirAncestor e) {
-        return mergeResult;
+        return MergeResult.createMergeError(e.getMessage());
       }
 
       repo.commit().message(message).call();
 
       repo.push().toRepository(hgRoot.getRepository()).call();
-      return mergeResult;
+      return MergeResult.createMergeSuccessResult();
     } catch (Exception e) {
       if (e instanceof VcsException)
         throw (VcsException) e;