Java Eclipse多项目/单个存储库源代码管理选项
我使用Eclipse for Java(主要是Android)进行开发,我的工作分为多种项目,这些项目以各种方式相互关联(主要是Android库,一些纯Java的东西) 说到源代码管理,我希望将项目组保存在单个存储库中。这主要是因为我不想有几十个存储库,仅仅因为我有几十个项目 MercurialEleclipse对此毫无希望——它只能在项目和存储库之间以1:1的比例工作——所以这是不可能的 EGit似乎很有前途,有许多文章(这里和其他地方)展示了如何将许多项目放到一个.git回购中-我在仅仅3个小时的桌面工作时间后,就成功地完成了这部分工作 它像地狱一样摇摇欲坠,但提交似乎是一件家常便饭(第一次尝试似乎总是失败-第二次通常有效!?) 更糟糕的是Android库的问题,虽然Eclipse认为它们存在,但它们不存在,然后它们存在,然后它们不存在!对项目属性的更改有时无法保存(在我对项目进行“源代码控制”之前从来没有问题),因此我完全放弃了EGitJava Eclipse多项目/单个存储库源代码管理选项,java,eclipse,version-control,egit,mercurialeclipse,Java,Eclipse,Version Control,Egit,Mercurialeclipse,我使用Eclipse for Java(主要是Android)进行开发,我的工作分为多种项目,这些项目以各种方式相互关联(主要是Android库,一些纯Java的东西) 说到源代码管理,我希望将项目组保存在单个存储库中。这主要是因为我不想有几十个存储库,仅仅因为我有几十个项目 MercurialEleclipse对此毫无希望——它只能在项目和存储库之间以1:1的比例工作——所以这是不可能的 EGit似乎很有前途,有许多文章(这里和其他地方)展示了如何将许多项目放到一个.git回购中-我在仅仅3个
那么-我是否还遗漏了其他选项,或者我是否必须从Eclipse外部实际运行源代码管理 据我所知,如果要整体管理整个工作区,就必须在Eclipse之外运行源代码管理。Eclipse只会在其工作区中的项目内部查找更改,而不会查找工作区元数据和其他非项目的文件夹。好的-我花了一点时间来研究这个问题,我发现使用MercurialClipse是一个不错的折衷方案 它依赖于在Eclipse之外设置版本控制——但一旦完成了这项工作,就可以在Eclipse中(使用MercurialClipse)进行更改/提交/推送 第一项工作是从Eclipse工作区(而不是文件系统)中删除项目 然后,我将所有要分组的项目移动到工作区中的一个子文件夹中,如下所示
WORKSPACE
MYREPOFOLDER
PROJECT1
PROJECT2
...
然后,我使用一个工具(在本例中为TortoiseHG)在MYREPOFOLDER文件夹中创建一个存储库。我实际上克隆了一个BitBucket存储库,但不管对你有用什么
我仍然使用TortoiseHG,将PROJECT1、PROJECT2文件夹添加到该存储库中,并对它们进行“首次提交”
然后,在Eclipse中,我使用Import->Mercurial工具从该存储库导入部分或全部项目。MercurialEclipse非常聪明,可以找到项目,即使它们不在存储库的“根”中,并且会提交并将更改推送到AOK(好吧,就我测试的情况而言!!)
因此,您就有了它-一个包含多个项目的回购协议,并且只有Eclipse之外的一点工作可以使它工作-我希望这对某些人有所帮助 我应该说,EGit可以很好地管理一个存储库中的多个项目(一旦你跳了很多次)-当你从另一个存储库中的项目引用一个项目时,问题就开始了-Eclipse只是有点心脏病发作,记不起它自己的名字。。。您当然可以使用EGit tho将整个工作区放入一个.git存储库中,这应该是您的事情。p、 您不介意在重试时随机出现的错误消息。您是否强烈需要将所有项目保存在一个存储库中?我自己刚刚开始从subversion过渡到mercurial的过程,我的理解是DVC在这方面不太擅长…--我真的不需要把项目放在一起,我只是不想为每个项目都创建一个新的回购协议!例如,如果我要使用MercurialEclipse和BitBucket,我就必须为我想投资的每个项目在BitBucket上创建一个新的回购——至少可以说是OTT!似乎我必须为每件事都有一份回购协议,或者为每一个项目都有一份回购协议,这两者都不理想……您可能想查看此扩展:。我个人没有这方面的经验,但建议我在一次回购中管理多个项目。当然,它对Eclipse集成毫无帮助(它的整个“平面结构”需求可能是Eclipse唯一一个我非常讨厌的特性)