2011-04-15 126 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>