我工作的公司为我提供了将他们的Java项目从CVS迁移到Git的项目。出于几个原因,他们不想使用除Eclipse之外的其他工具。所以我们坚持使用EGit。
我搜索了很多,以找到适合我们项目的工作流程。这个似乎非常相关并且被许多人使用:http://nvie.com/posts/a-successful-git-branching-model/
问题在于,当我们尝试使用提交,分支和&合并后,发生了很多快速合并。快进合并的问题在于它使松散成为分支的起点。
我们工作的客户希望能够选择下一版本中哪些功能,哪些功能不会。这是我们想要从CVS迁移到Git的主要原因之一,因为在CVS中似乎没有简单的方法来查找由于功能#1而修改了哪些文件以及哪些文件被修改为功能#2。在git中,我们可以为功能#1& #2并找到为这些功能修改的文件。但是,由于快进,就像回到CVS一样,我们无法知道哪个是功能#1,哪个是功能#2。
那么有什么方法可以防止快速合并?我们试图将这些配置放在Eclipse中:
[core]
mergeoptions = --no-ff
[merge]
ff = false
但它并没有阻止EGit进行快进合并。如果没有使用JGit / EGit实现此功能,是否有任何其他方法可以使用Egit遵循客户需要的工作流程(选择要发布的功能的能力)。使用命令行可能会解决问题,但是如果可以将它保存在Eclipse中,那就太好了。
谢谢
答案 0 :(得分:7)
EGit bug 336933是关于支持这些选项的,并且已通过EGit 2.3修复,请参阅release notes。
如果您还没有使用2.3,那么(丑陋的)解决方法可能如下所示:
答案 1 :(得分:3)
答案 2 :(得分:1)
看起来这是不可能的,因为JGit不支持某些合并选项,包括--no-ff。
请参阅this post,有关于此的错误报告。