我使用Eclipse进行Java(主要是Android)开发,我的工作分为多个项目,这些项目以各种方式链接(主要是Android库,一些纯Java的东西)。
说到源代码管理,我希望将项目组保留在单个存储库中。这主要是因为我不想拥有数十个存储库,只因为我有几十个项目!!
MercurialEclipse对此没有希望 - 它只能以1:1的方式在Project和Repositories之间工作 - 这样就可以了。
EGit似乎很有希望,有很多文章(在这里和其他地方)展示了如何将许多项目放入一个.git回购中 - 我设法让它的这一部分在仅仅3个小时的头后工作 - 桌上时刻!!
这是一个不稳定的事情 - 承诺似乎是一个混蛋事件(第一次尝试似乎总是失败 - 第二次通常有效!?)。
更糟糕的是Android库的问题 - Eclipse认为它们存在 - 但是他们不会 - 然后他们这样做 - 然后他们就不会了!对项目属性的更改有时不会保存(在我来源控制项目之前从来没有问题)所以我完全放弃了EGit。
那么 - 还有其他我错过的选项吗?或者我必须从Eclipse外部实际运行源代码控制!?
答案 0 :(得分:2)
好的 - 我花了一点时间用这个,我发现我认为使用MercurialEclipse是一个不错的妥协。
它依赖于在Eclipse之外设置版本控制 - 但是一旦你完成了它,你就可以在Eclipse(使用MercurialEclipse)中进行更改/提交/推送。
第一项工作是从Eclipse Workspace(但不是文件系统)中删除项目。
然后我将我想要组合在一起的所有项目移动到工作区内的子文件夹中,就像这样
WORKSPACE
MYREPOFOLDER
PROJECT1
PROJECT2
...
然后我使用工具(在本例中为TortoiseHG)在MYREPOFOLDER文件夹中创建存储库。我实际上克隆了一个BitBucket存储库,但是对你有用的......
仍在使用TortoiseHG,我将PROJECT1,PROJECT2文件夹添加到该存储库中并对它们进行“第一次提交”。
然后,在Eclipse中,我使用Import-> Mercurial工具从该Repository导入部分或全部项目。 MercurialEclipse非常聪明,即使它们不在存储库的“根”中也能找到项目,并且会提交并推送更改AOK(好吧,就我测试它而言!!)。
所以你有它 - 一个包含多个项目的repo,只有Eclipse之外的一些工作才能使它工作 - 我希望这有助于某人!
答案 1 :(得分:1)
据我所知,如果要管理整个工作区,则必须在Eclipse之外运行源代码控制。 Eclipse将仅查找其工作空间中项目内的更改,而不是工作空间元数据和非项目的其他文件夹。