diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/HgRevisionNumber.java b/plugins/hg4idea/src/org/zmlx/hg4idea/HgRevisionNumber.java index 89cd51131bac..f88c0143de74 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/HgRevisionNumber.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/HgRevisionNumber.java @@ -94,6 +94,9 @@ public class HgRevisionNumber implements VcsRevisionNumber { } public String asString() { + if (revision.isEmpty()) { + return changeset; + } return revision + ":" + changeset; } diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/action/HgMerge.java b/plugins/hg4idea/src/org/zmlx/hg4idea/action/HgMerge.java index 02b1cd352f76..fe022bcfb775 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/action/HgMerge.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/action/HgMerge.java @@ -18,6 +18,7 @@ package org.zmlx.hg4idea.action; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.Task; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vcs.VcsException; import com.intellij.openapi.vcs.update.UpdatedFiles; import com.intellij.openapi.vfs.VirtualFile; @@ -110,7 +111,8 @@ public class HgMerge extends HgAbstractGlobalAction { HgRevisionNumber otherHead = dialog.getOtherHead(); if (otherHead != null) { - hgMergeCommand.setRevision(otherHead.getRevision()); + String changeset = otherHead.getChangeset(); + hgMergeCommand.setRevision(StringUtil.isEmptyOrSpaces(changeset) ? otherHead.getRevision() : changeset); incomingRevision = otherHead; } diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/command/HgStatusCommand.java b/plugins/hg4idea/src/org/zmlx/hg4idea/command/HgStatusCommand.java index eada83d0beda..d7dd9ec211f7 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/command/HgStatusCommand.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/command/HgStatusCommand.java @@ -155,9 +155,9 @@ public class HgStatusCommand { if (myIncludeCopySource) { options.add("--copies"); } - if (myBaseRevision != null && !myBaseRevision.getRevision().isEmpty()) { + if (myBaseRevision != null && (!myBaseRevision.getRevision().isEmpty() || !myBaseRevision.getChangeset().isEmpty())) { options.add("--rev"); - options.add(myBaseRevision.getChangeset().isEmpty() ? myBaseRevision.getRevision() : myBaseRevision.getChangeset()); + options.add(StringUtil.isEmptyOrSpaces(myBaseRevision.getChangeset()) ? myBaseRevision.getRevision() : myBaseRevision.getChangeset()); if (myTargetRevision != null) { options.add("--rev"); options.add(myTargetRevision.getChangeset()); diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/provider/HgMergeProvider.java b/plugins/hg4idea/src/org/zmlx/hg4idea/provider/HgMergeProvider.java index 302d94991324..e970e3c08e48 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/provider/HgMergeProvider.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/provider/HgMergeProvider.java @@ -88,8 +88,10 @@ public class HgMergeProvider implements MergeProvider { // Find common ancestor of two revisions : hg debugancestor rev1 rev2 // Using quotes may produce wrong escaping errors on Unix-type systems List arguments = new ArrayList(); - arguments.add(localRevisionNumber.getRevision()); - arguments.add(serverRevisionNumber.getRevision()); + String localChangeset = localRevisionNumber.getChangeset(); + String serverChangeset = serverRevisionNumber.getChangeset(); + arguments.add(StringUtil.isEmptyOrSpaces(localChangeset) ? localRevisionNumber.getRevision() : localChangeset); + arguments.add(StringUtil.isEmptyOrSpaces(serverChangeset) ? serverRevisionNumber.getRevision() : serverChangeset); HgCommandResult result = new HgCommandExecutor(myProject).executeInCurrentThread(repo, "debugancestor", arguments); if (result != null) { String output = result.getRawOutput();