2011-04-15 146 views
7

我有一个mercurial仓库,里面有几个项目(来自IntelliJ IDEA的意义)。例如,我可能有:解决Mercurial和IntelliJ IDEA项目根目录不匹配问题?

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

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

在像“汞状态”命令的版本控制窗口,我得到这样的错误:

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

命令,如“汞进入”似乎是成功的。

我怀疑这可能是因为项目根目录(project1)低于存储库根目录(foo)。有谁知道如何解决这个问题?我可以改变配置吗?如果是这样,那么在设置中的位置呢?

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

回答

13

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

  1. 转到设置对话框(文件的设置)
  2. 选择版本控制
  3. 在顶层它显示目录和VCS的名单,雷说:“项目的根”和“水银”
  4. 单击“删除”删除现有的映射。
  5. 单击“添加”添加一个映射,并使用“...”按钮在上面的示例中选择mercurial root - “foo”。

这改变了.idea目录中的vcs.xml文件。

+0

有益地,的IntelliJ的最新版本将实际*提示*你当你去添加未登记的根* *设置→版本控制**。 – 2014-09-16 10:36:28

0

由尼克提供的步骤对于我来说也有类似的设置,其中多个项目位于相同的Mercurial存储库中。

我担心的想法是在vcs.xml使用绝对路径,但它更加智能化:

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