changeset 216:ec4c31d0eec0 Eluru-6.0.x

Now IdenifyCommand can check if revision is present in local repository
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Wed, 06 Apr 2011 11:00:47 +0400
parents 4dbef935a32f
children e07386542f69
files mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/IdentifyCommand.java
diffstat 1 files changed, 29 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/IdentifyCommand.java	Wed Apr 06 10:37:00 2011 +0400
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/IdentifyCommand.java	Wed Apr 06 11:00:47 2011 +0400
@@ -20,20 +20,48 @@
 import jetbrains.buildServer.vcs.VcsException;
 import org.jetbrains.annotations.NotNull;
 
+import java.io.File;
+
 /**
  * @author Pavel.Sher
  *         Date: 16.07.2008
  */
 public class IdentifyCommand extends BaseCommand {
+
+  private boolean myInLocalRepository = false;
+  private ChangeSet myChangeSet;
+  private File myWorkingDir;
+
   public IdentifyCommand(@NotNull final Settings settings) {
     super(settings);
   }
 
+  public void setInLocalRepository(boolean inLocalRepository) {
+    myInLocalRepository = inLocalRepository;
+  }
+
+  public void setChangeSet(ChangeSet changeSet) {
+    myChangeSet = changeSet;
+  }
+
+  public void setWorkingDir(File workingDir) {
+    myWorkingDir = workingDir;
+  }
+
   public String execute() throws VcsException {
     GeneralCommandLine cli = new GeneralCommandLine();
+    if (myWorkingDir != null) {
+      cli.setWorkingDirectory(myWorkingDir);
+    }
     cli.setExePath(getSettings().getHgCommandPath());
     cli.addParameter("identify");
-    cli.addParameter(getSettings().getRepositoryUrl());
+    if (!myInLocalRepository) {
+      cli.addParameter(getSettings().getRepositoryUrl());
+    }
+    if (myChangeSet != null) {
+      cli.addParameter("--rev");
+      cli.addParameter(myChangeSet.getId());
+    }
     ExecResult res = runCommand(cli);
     failIfNotEmptyStdErr(cli, res);
     return res.getStdout();