一个Mercurial存储库中的多个Eclipse项目

时间:2011-01-21 18:53:31

标签: eclipse mercurial

我想在两个独立的hg存储库中拥有一些eclipse项目。

我设法通过首先使用TortouiseHg创建两个hg存储库并添加,首先将我的项目提交到每个存储库来实现此目的。通过这样做,我现在有两个hg存储库,每个存储库有两个项目。

接下来,我使用MercurialEclipse在Eclipse中克隆这些存储库。项目在Eclipse中显示为预期。

示例1:

Eclipse workspace
               |
               |--Project 1
               |--Project 2
               |--Project 3
               |--Project 4

但如果我查看目录结构,它看起来像这样:

示例2:

  c:-- 
     |
     |-workspace
               |
               hgRepository1
               |           |--.hg
               |           |--Project 1
               |           |--Project 2
               |
               |
               hgRepository2
                           |--.hg
                           |--Project 3
                           |--Project 4

当我希望它看起来像这样。

示例3:

  c:-- 
     |
     |-workspace
               |--.hg
               |--Project 1
               |--Project 2
               |--Project 3
               |--Project 4

是否可以拥有一个Mercurial存储库并以某种方式克隆它并让项目直接显示在工作区目录下,而不是在子目录中?

4 个答案:

答案 0 :(得分:5)

您不应该从Eclipse工作区保存项目,也不应在Eclipse工作区中恢复它们 这些项目(.project.classpathother project specific resources)应该位于Eclipse工作区之外的自己的目录中(然后是imported into the workspace)。

这样,任何目录结构都可以将不同的项目导入新的Eclipse工作区。

答案 1 :(得分:3)

我自己遇到了这个问题,解决方案并不是很明显。此博客文章提供了分步说明,说明如何实现您的目标:workflow: create and init multi-project repositories with HgEclipse (Mercurial)

简而言之,您想要:

  • 打开Mercurial View并在/ path / to / workspace / projects-folder
  • 创建一个新存储库
  • 创建您需要的许多新项目,每个项目都应在/ path / to / workspace / projects-folder / project name的(非默认)位置创建。

您将发现最终得到了Eclipse中所需的布局,项目将共享位于projects-folder中的存储库。

答案 2 :(得分:1)

我不太明白。您无法将repo克隆到自身内部。为什么不能只制作Project1和Project2的硬拷贝,创建3和4?

答案 3 :(得分:1)

我知道有些人不喜欢我的解决方案(而且我知道自从这个问题被问到已经有一段时间了)但是这里是:

  1. 照常创建工作区
  2. 从Eclipse退出(不确定是否有必要,但这样做没有坏处)
  3. 使用hg直接在创建的工作空间目录中克隆Mercurial存储库(如果存储库的名称与工作空间相同,则会有帮助)
  4. 返回Eclipse并为每个子目录创建一个新项目(在您的示例中,它将是Project 1,Project 2等)。它会警告你目录已经存在,但没关系。
  5. MercurialEclipse应将每个项目识别为Mercurial版本控制
  6. 已经在Linux上的Eclipse中成功测试了CDT。我建议你在你的.hgignore中加入Eclipse创建的文件来管理你的项目。

    我希望这会有所帮助。