需要使用gitlab的merge request方式,在尝试new Merge Request时gitlab页面报错,经过查看gitlab后台日志,显示
“Rugged::OdbError (Failed to parse commit aef3846d6401d68asdfsdf281c39cb584b812d - cannot parse commit time):
app/services/compare_service.rb:11:in `new'
app/services/compare_service.rb:11:in `execute'
app/controllers/projects/compare_controller.rb:13:in `show'”
看了这个commit ,author_date和commiter_date是2099年(没错,这个项目之前是开放修改的,开发人员为了自测改了本地日期,commit时忘了改回来了)。总之,这个项目上有一些commit都是这两个日期在当前日期之后的,估计是这个日期影响了compare,现在尝试把它们改回来。
查看了很多资料,觉得git filter-branch应该能够解决这个问题,尝试了如下脚本:
git filter-branch -f --env-filter ' if [ $GIT_COMMIT = aef3846d6401d68asdfsdf281c39cb584b812d ] then export GIT_AUTHOR_DATE="Mon Jun 25 14:13:00 CST 2018" export GIT_COMMITER_DATE="Mon Jun 25 14:13:00 CST 2018" fi'
然而并没有起作用,脚本正常运行完,日期还是没有变化。
有没有处理过类似问题的兄弟望赐教!
三国纷争