【问题标题】:solving Mercurial and IntelliJ IDEA project root mismatch?解决 Mercurial 和 IntelliJ IDEA 项目根不匹配?
【发布时间】:2011-04-15 10:55:25
【问题描述】:

我有一个 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 社区版。

【问题讨论】:

    标签: mercurial intellij-idea


    【解决方案1】:

    我自己设法解决了这个问题。当您为 Mercurial 启用项目时,IntelliJ 默认将项目根目录设置为 mercurial 存储库目录。在of this help page 的帮助下,我发现这是我需要改变的。

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

    这会更改 .idea 目录中的 vcs.xml 文件。

    【讨论】:

    • 当您转到 设置→版本控制时,最新版本的 IntelliJ 实际上会提示您添加未注册的根。
    【解决方案2】:

    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>
    

    【讨论】:

      猜你喜欢
      • 2018-05-07
      • 1970-01-01
      • 2014-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-12
      • 1970-01-01
      • 2017-01-18
      相关资源
      最近更新 更多