Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.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
Java Eclipse多项目/单个存储库源代码管理选项_Java_Eclipse_Version Control_Egit_Mercurialeclipse - Fatal编程技术网

Java Eclipse多项目/单个存储库源代码管理选项

Java 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 for Java(主要是Android)进行开发,我的工作分为多种项目,这些项目以各种方式相互关联(主要是Android库,一些纯Java的东西)

说到源代码管理,我希望将项目组保存在单个存储库中。这主要是因为我不想有几十个存储库,仅仅因为我有几十个项目

MercurialEleclipse对此毫无希望——它只能在项目和存储库之间以1:1的比例工作——所以这是不可能的

EGit似乎很有前途,有许多文章(这里和其他地方)展示了如何将许多项目放到一个.git回购中-我在仅仅3个小时的桌面工作时间后,就成功地完成了这部分工作

它像地狱一样摇摇欲坠,但提交似乎是一件家常便饭(第一次尝试似乎总是失败-第二次通常有效!?)

更糟糕的是Android库的问题,虽然Eclipse认为它们存在,但它们不存在,然后它们存在,然后它们不存在!对项目属性的更改有时无法保存(在我对项目进行“源代码控制”之前从来没有问题),因此我完全放弃了EGit


那么-我是否还遗漏了其他选项,或者我是否必须从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唯一一个我非常讨厌的特性)