解决Mercurial和IntelliJ IDEA项目根不匹配问题?

时间:2011-04-15 10:55:25

标签: mercurial intellij-idea

我有一个mercurial存储库,里面有几个项目(来自IntelliJ IDEA意义)。例如,我可能有:

foo/
    projects/
          project1/
                  .idea/
          project2/
                  .idea/

我可以使用命令行和TortoiseHG推送,拉取,提交等。我在IntelliJ中启用了Mercurial(hg4idea插件),但似乎几乎没有任何工作。如果我添加一个源代码文件,它就不会被添加,对于我手动添加的文件,它们没有显示任何更改。在IntelliJ中,Mercurial菜单已启用,但“添加到VCS”始终显示为灰色。但是,IntelliJ正确地列出了远程存储库中的可用更改集。

在“hg status”等命令的“版本控制”窗口中,出现如下错误:

abort: repository C:/foo/projects/project1 not found!

像“hg incoming”这样的命令似乎成功了。

我怀疑这可能是因为项目根目录(project1)位于存储库根目录(foo)之下。有谁知道如何解决这个问题?我可以进行配置更改吗?如果是这样,设置在哪里?

我正在使用最新的(10.0.3)IntelliJ IDEA社区版。

2 个答案:

答案 0 :(得分:13)

我自己设法完成了这个工作。为Mercurial启用项目时,IntelliJ默认将项目根目录设置为mercurial存储库目录。在我帮助of this help page的帮助下,这是我需要改变的。

  1. 转到“设置”对话框(文件设置)
  2. 选择版本控制
  3. 在顶层,它显示了目录和VCS的列表,我说“项目根”和“Mercurial”
  4. 点击“删除”以删除现有映射。
  5. 点击“添加”添加映射,然后使用“...”按钮选择mercurial root - 上例中的“foo”。
  6. 这会更改.idea目录中的vcs.xml文件。

答案 1 :(得分:0)

Nick提供的步骤在类似的设置中为我工作,其中多个项目位于同一个Mercurial存储库中。

我担心IDEA会在vcs.xml中使用绝对路径,但它更聪明:

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="VcsDirectoryMappings">
    <mapping directory="$PROJECT_DIR$/.." vcs="hg4idea" />
  </component>
</project>