是否可以在一个eclipse项目中拥有多个团队提供者

时间:2010-01-15 23:25:16

标签: eclipse svn

问题很简单问题如下:
 让我们假设我在eclipse工作区中有一个项目,并希望它被另外两个源代码控制(SVN和Mercurial更具体)是否可能?

3 个答案:

答案 0 :(得分:1)

对我来说:没办法。我看到了一些很好的理由:如果您提交更改,eclipse需要知道将文件发送到何处。它可以记录从哪里获取文件,但每次你创建一个新文件或移动一些文件时,eclipse都不知道哪个团队提供者必须承担责任。

更糟糕的是:想象两个提供商都有一些共同的文件,例如.project。哪一个?

项目和存储库之间存在1:1的关系。 Fortunatly eclipse允许不同的团队提供者使用工作区;)

构建依赖于来自给定subversion的文件的应用程序的实用方法可能是使用两个用于仅访问存储库的不同项目(标准项目,无性质)和第三个项目,其中包含您使用的链接源文件夹对于实际工作(构建,调试),如:

hg-project <teamprovider: mercurial>
  src
svn-project <teamprovider: subversion>
  src
work
  hg-src <linked to hg-project/src>
  svn-src <linked to svn-project/src>
  bin

答案 1 :(得分:1)

嗯......正如其他人指出的那样,Eclipse管理两个源控制器是不可能的,但是如果你可以使用你的控制台使用Mercurial,我认为这是可能的。在这种情况下,Eclipse将假定源控件是SVN,但在后台也使用Mercurial。

如果您还没有看到它:
https://www.mercurial-scm.org/wiki/WorkingWithSubversion

答案 2 :(得分:0)

不幸的是,没有(根据我的经验)。我的目标是在我的SVN版本控制项目中有一个指向其他人的CVS项目的目录。麻烦的是,这并不是太明智,Team API无法识别SVN文件夹中有一个CVS文件夹。所以,我已经看过在CVS和SVN存储库中都有一个项目点没有成功。 [编辑:我应该将其限定为使用Eclipse 3.5]

您是否认为您希望相同的文件由两个存储库进行版本控制?这很麻烦,有人在一个存储库中更新文件而不是另一个存储库是什么意思?现在你有两个不同的HEAD修订版,没有办法解决哪一个更新。

如果您想控制不同的文件,为什么要使用两个不同的系统?如果您需要明确划分,可以始终使用svn:externals。 Mercurial似乎没有这样的机制。不过,您可能会考虑替代方案。 Mercurial和SVN可以很好地协同工作,并且可以使用一些实用程序(在Eclipse之外)在两个版本控制系统/存储库之间同步项目。

根据您的评论,如果您想拥有本地存储库和基于服务器的存储库,您可以考虑使用svn:externals将本地存储库链接到基于服务器的存储库,但我不确定这会让您获益非常。可能值得一看,看看你是否可以获得某种与SVN存储库的Mercurial“externals”连接,因为那时你可以将Eclipse指向你的本地存储库。