Subversion与Eclipse中的多模块项目

时间:2009-11-11 15:53:44

标签: java eclipse svn

我正在使用Eclipse将我的项目放在SVN存储库中,结构如下:

trunk
 +- module1
 +- module2

使用Team Synchronization透视图,我可以更新单个项目,合并也适用于项目本身。有没有办法在根级别而不是在项目级别上执行相同的操作?

我正在使用Subversive,但可以说服它使用Subclipse,如果它可以做到这一点。

4 个答案:

答案 0 :(得分:1)

尝试Subversion透视图(或Subversion Explorer,无法记住它的名称),而不是团队同步透视图。在该Perspective中,您可以看到整个仓库,您可以对其执行操作。那可能会给你你想要的东西。 (注意:我总是使用svn东西的颠覆性插件)。

答案 1 :(得分:1)

没有。 Eclipse根据项目进行思考,因此如果您将每个模块都作为Eclipse中的项目,那么Eclipse将认为只在SVN中的此文件夹中进行同步。

您可以从trunk签出作为Eclipse中的新项目,然后根据需要同步此“主干”项目,尽管我个人会使用TortoiseSVN等外部工具(或命令中的svn) line)以防止Eclipse中的任何类型的奇怪冲突。

答案 2 :(得分:1)

如果你的模块非常干净(逻辑上和/或功能上),我发现组织我的svn repo是有帮助的:

module1 (eclipse proj1)
-- trunk
-- branches
-- tags

module2 (eclipse proj2)
-- trunk
-- branches
-- tags

一开始可能看起来有些过分(特别是如果模块很小),但我发现尝试在svn中的每个“trunk,branches和tags”dir结构之间保持一对一的关系是有帮助的。日食项目。它允许我将每个模块标记为不同的版本(如果需要),并与构建脚本很好地集成。

如果您的模块在逻辑上不是分开的,那么您可能希望将它们合并为一个; - )

答案 3 :(得分:0)

您可能想要使用svn:externals属性。例如:

  1. 创建父项目(仅限svn) 和那里的两个文件夹 - module1 和module2
  2. 添加svn:external属性 module1文件夹,带有路径 module1存储库 (svn:// serverhost / module1)作为 值。
  3. 添加svn:external属性 module2文件夹,带有路径 module2存储库 (svn:// serverhost / module2)作为 值。
  4. 然后你就可以签出/提交整个项目和单独的模块。 不确定你是否想要它。