我工作的公司为我提供了将他们的Java项目从CVS迁移到Git的项目。 出于几个原因,他们不想使用除Eclipse之外的其他工具。所以我们坚持使用EGit。
我知道可以配置Eclipse来格式化代码。但似乎没有任何东西可以阻止某人使用他自己的格式化代码的方式。
所以我的问题是,如果代码格式不正确,可以拒绝使用EGit提交吗?这个问题背后的原因是我们希望避免由于代码格式引起的冲突,这在CVS中是一个非常大的问题。
谢谢
答案 0 :(得分:2)
在提交期间检查代码的替代方法是将gerrit用作审阅系统的方案。开发人员将他们的代码提交到gerrit而不是直接提交给git存储库。然后,Gerrit可以在Jenkins / Hudson服务器上触发构建作业,该构建作业可以运行CheckStyle或您喜欢的任何其他格式检查工具。
成功检查后,Jenkins还可以验证更改并将其合并到git存储库中(大多数项目更喜欢Jenkins只验证代码的正确性,然后人们仍然需要查看代码)。提交失败的提交将保留在gerrit中(并且邮件将发送给开发人员)。
这种方法的优点是,您可以做的不仅仅是每次提交的样式检查,尤其是运行单元测试,静态代码分析和代码覆盖。主要的缺点是你必须设置一些工具,而不仅仅是一个git hook。
答案 1 :(得分:2)
我建议设置格式化程序和保存操作,以将代码格式化为项目特定的配置。然后跟踪Git中的.settings
目录。
因为它是在项目和版本控制中配置的,所以开发人员不必自己配置Eclipse,它是自动的。
我们已经完成了几个项目,如果你从一开始就这样做,你将永远不会有任何格式错误的代码或讨论。
如果开发人员真的很不情愿,甚至可以取消选中项目特定的格式化程序并使用另一个格式化程序,那么也许你应该进行一次讨论。
(顺便说一下,格式化程序中推荐的选项是从不加入已包装的行,因为有时格式化程序会做奇怪的换行。这个选项可以控制换行。)< / p>
答案 2 :(得分:1)
如果你知道一种确定代码格式是否正确的方法,你可以在钩子预提交中实现这个
此挂钩应放在.git / hooks
中git附带了一个名为pre-commit.sample的示例,它已经在hooks目录中,或者你可以在/ usr / share / git-core / templates / hooks /(在Ubuntu上)找到它。