changeset 222:f868f69e4ef3

Now IdenifyCommand can check if revision is present in local repository
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Wed, 06 Apr 2011 11:37:39 +0400
parents 3ac863c20029
children 3b5ffc1f5b7f
files mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/IdentifyCommand.java
diffstat 1 files changed, 20 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/IdentifyCommand.java	Wed Apr 06 11:32:44 2011 +0400
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/IdentifyCommand.java	Wed Apr 06 11:37:39 2011 +0400
@@ -28,15 +28,34 @@
  */
 public class IdentifyCommand extends BaseCommand {
 
+  private boolean myInLocalRepository = false;
+  private ChangeSet myChangeSet;
+
   public IdentifyCommand(@NotNull Settings settings, @NotNull File workingDir) {
     super(settings, workingDir);
   }
 
+  public void setInLocalRepository(boolean inLocalRepository) {
+    myInLocalRepository = inLocalRepository;
+  }
+
+  public void setChangeSet(ChangeSet changeSet) {
+    myChangeSet = changeSet;
+  }
+
   public String execute() throws VcsException {
     GeneralCommandLine cli = new GeneralCommandLine();
     cli.setExePath(getSettings().getHgCommandPath());
     cli.addParameter("identify");
-    cli.addParameter(getSettings().getRepositoryUrl());
+    if (myInLocalRepository) {
+      cli.setWorkDirectory(this.getWorkDirectory());
+    } else {
+      cli.addParameter(getSettings().getRepositoryUrl());
+    }
+    if (myChangeSet != null) {
+      cli.addParameter("--rev");
+      cli.addParameter(myChangeSet.getId());
+    }
     ExecResult res = runCommand(cli);
     failIfNotEmptyStdErr(cli, res);
     return res.getStdout();