Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在IntelliJ项目外部但在同一Mercurial Repo中隐藏文件_Mercurial_Intellij Idea - Fatal编程技术网

如何在IntelliJ项目外部但在同一Mercurial Repo中隐藏文件

如何在IntelliJ项目外部但在同一Mercurial Repo中隐藏文件,mercurial,intellij-idea,Mercurial,Intellij Idea,假设我在Mercurial有一个这样的项目 root/ proj1 proj2 如果我在IntelliJ中打开proj1,我必须将VCS根设置为“根”,否则IntelliJ不会显示任何更改。但是,如果我这样做,我还会在proj2中看到更改的文件。如何排除proj2或将根目录设置为proj1,同时仍能看到我的更改?您可以在文件->项目结构中隐藏文件夹…->模块 选择要隐藏的模块,然后选择文件夹,然后单击“排除” 这可能会很棘手,因为mercurial打算用作。默认情况下,mercuria

假设我在Mercurial有一个这样的项目

root/
  proj1
  proj2

如果我在IntelliJ中打开proj1,我必须将VCS根设置为“根”,否则IntelliJ不会显示任何更改。但是,如果我这样做,我还会在proj2中看到更改的文件。如何排除proj2或将根目录设置为proj1,同时仍能看到我的更改?

您可以在文件->项目结构中隐藏文件夹…->模块

选择要隐藏的模块,然后选择文件夹,然后单击“排除”


这可能会很棘手,因为mercurial打算用作。默认情况下,mercurial希望在运行
hg commit
时提交所有文件。有一个用于提交很少使用的特定文件的命令:
hgcommit-ifile1.foo-ifile2.foo-ifile3.foo
。因此,您基本上是试图告诉IntelliJ不断运行该类型的命令,但假装看不到其他文件以知道您需要运行该类型的命令

在IntelliJ中转到提交时,如果使用提交对话框,可以看到它要提交的文件。您可以取消选中proj2中的文件。通常IntelliJ会记住在将来的提交中继续忽略这些文件,但是如果选择不同的提交对话框,它们可能会再次显示为选中状态


实际上,您应该将每个项目拉到它们自己的存储库中。然后,这个和许多其他潜在的设置问题消失了。阅读原因。

嗯,也许这是一种方法。但是,我希望从proj1而不是从root创建项目。在我的例子中,我有20多个模块,所以对于我想打开的每个模块,排除19个模块是不方便的。好吧,足够公平了。在我目前的项目中,我们实际上在做“一个项目-一个回购”,但接下来的挑战是hg要一直拉着所有20个回购,永远不要忘记……)酷,我希望随着你的进步它会变得更容易。这是一个常见的过渡阶段,很难改变心态。通常我们建议的方法是希望您使用Maven,然后如果您可以让像Jenkins这样的CI为每次推送构建19个依赖项,并且您让它将构建的jar或任何东西部署到nexus repo,当您构建一个项目时,它将只提取需要构建的jar,因此您不必检查所有内容。这当然是获得CI的过程,但mercurial是第一步。现在来处理剩下的=)。是的,实际上我们已经有了确切的设置。有时候我会忘记拉和推,这会让我在没有记住拉的情况下开始处理一个模块时有点混乱。这有点不相关,但我真的建议使用SourceTree()来跟踪很多回购。