changeset 272:5fd8b9e79e5b

Improve logging
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Mon, 25 Jul 2011 13:04:07 +0400
parents c0540bbe7c2a
children 5cbb5ae712e9
files mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialAgentSideVcsSupport.java
diffstat 1 files changed, 22 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialAgentSideVcsSupport.java	Wed Jul 20 17:40:04 2011 +0400
+++ b/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialAgentSideVcsSupport.java	Mon Jul 25 13:04:07 2011 +0400
@@ -46,13 +46,20 @@
     final boolean useLocalMirrors = isUseLocalMirrors(build);
     return new IncludeRuleUpdater() {
       public void process(@NotNull final IncludeRule includeRule, @NotNull final File workingDir) throws VcsException {
-        checkRuleIsValid(includeRule);
-        Settings settings = new Settings(vcsRoot);
-        if (useLocalMirrors) {
-          updateLocalMirror(vcsRoot, logger);
+        try {
+          checkRuleIsValid(includeRule);
+          Settings settings = new Settings(vcsRoot);
+          if (useLocalMirrors) {
+            updateLocalMirror(vcsRoot, logger);
+          }
+          updateRepository(workingDir, settings, logger, useLocalMirrors);
+          updateWorkingDir(settings, workingDir, toVersion, logger);
+        } catch (Exception e) {
+          if (e instanceof VcsException)
+            throw (VcsException) e;
+          else
+            throw new VcsException(e);
         }
-        updateRepository(workingDir, settings, logger, useLocalMirrors);
-        updateWorkingDir(settings, workingDir, toVersion, logger);
       }
 
       public void dispose() throws VcsException {
@@ -79,21 +86,21 @@
 
   private void initRepository(File workingDir, Settings settings, BuildProgressLogger logger, boolean useLocalMirrors) throws VcsException {
     try {
-      logger.message("Init repository at " + workingDir.getAbsolutePath());
       String defaultPullUrl = getDefaultPullUrl(settings, useLocalMirrors);
+      logger.message("Init repository at " + workingDir.getAbsolutePath() + ", remote repository is " + defaultPullUrl);
       new Init(settings, workingDir, defaultPullUrl).execute();
     } catch (IOException e) {
       throw new VcsException("Error while initializing repository at " + workingDir.getAbsolutePath(), e);
     }
   }
 
-  private void updateRepository(File workingDir, Settings settings, BuildProgressLogger logger, boolean useLocalMirrors) throws VcsException {
+  private void updateRepository(File workingDir, Settings settings, BuildProgressLogger logger, boolean useLocalMirrors) throws VcsException, IOException {
     if (!Settings.isValidRepository(workingDir)) {
       initRepository(workingDir, settings, logger, useLocalMirrors);
     } else {
       ensureUseRightRepository(workingDir, settings, logger, useLocalMirrors);
     }
-    logger.message("Start pulling changes");
+    logger.message("Start pulling changes from " + getDefaultPullUrl(settings, useLocalMirrors));
     new PullCommand(settings, workingDir).execute();
     logger.message("Changes successfully pulled");
   }
@@ -111,24 +118,25 @@
     }
   }
 
-  private void updateLocalMirror(VcsRoot root, BuildProgressLogger logger) throws VcsException {
+  private void updateLocalMirror(VcsRoot root, BuildProgressLogger logger) throws VcsException, IOException {
     Settings settings = new Settings(root);
     File mirrorDir = myMirrorManager.getMirrorDir(settings.getRepositoryUrl());
+    logger.message("Update local mirror at " + mirrorDir);
     if (!Settings.isValidRepository(mirrorDir)) {
       initRepository(mirrorDir, settings, logger, false);
     }
-    logger.message("Start pulling changes to local mirror at " + mirrorDir);
+    logger.message("Start pulling changes from " + getDefaultPullUrl(settings, true));
     new PullCommand(settings, mirrorDir).execute();
     logger.message("Local mirror changes successfully pulled");
   }
 
-  private void updateWorkingDir(final Settings settings, File workingDir, final String version, final BuildProgressLogger logger) throws VcsException {
-    logger.message("Updating working directory from the local repository copy");
+  private void updateWorkingDir(final Settings settings, File workingDir, @NotNull final String version, final BuildProgressLogger logger) throws VcsException {
+    logger.message("Updating folder " + workingDir.getAbsolutePath() + " to revision " + version);
     UpdateCommand uc = new UpdateCommand(settings, workingDir);
     ChangeSet cs = new ChangeSet(version);
     uc.setToId(cs.getId());
     uc.execute();
-    logger.message("Working directory updated successfully");
+    logger.message("Folder successfully updated");
   }
 
   private String getDefaultPullUrl(Settings settings, boolean useLocalMirror) throws IOException {