Son of Grid Engine的代码可以从gitlab镜像下载,但重新上传到其他git服务器的时候会出现下面的错误:
$ git push -u localnet_remote localbranch:master
Enumerating objects: 66150, done.
Counting objects: 100% (66150/66150), done.
Delta compression using up to 4 threads
Compressing objects: 100% (11531/11531), done.
remote: error: object 7c34c5f65a26b3b0af5d8333de795440b020b8a3: missingNameBeforeEmail: invalid author/committer line - missing space before email
remote: fatal: fsck error in packed object
error: remote unpack failed: index-pack abnormal exit
error: failed to push some refs to 'ssh://git@my.gitlab.server:2200/user_name/sge.git'
主要是因为有些commit不正常,邮件前面没有用户名,如下:
$ git fsck
Checking object directories: 100% (256/256), done.
error in commit 7c34c5f65a26b3b0af5d8333de795440b020b8a3: missingNameBeforeEmail: invalid author/committer line - missing space before email
error in commit 5ac4d64ce9877f62f3f88fecc87857939afcfdbb: missingNameBeforeEmail: invalid author/committer line - missing space before email
error in commit fa4808493876e94724b289d71d255f856add558f: missingNameBeforeEmail: invalid author/committer line - missing space before email
error in commit 982123e545a01d4966ee5699f9ba76830c7eeb01: missingNameBeforeEmail: invalid author/committer line - missing space before email
error in commit bdb56d00a3e42cf8f39e9c816a76d9079a39a488: missingNameBeforeEmail: invalid author/committer line - missing space before email
error in commit aed62a1c98026590366334e36cba75253135d168: missingNameBeforeEmail: invalid author/committer line - missing space before email
Checking objects: 100% (66259/66259), done.
$ git log
commit 5b2d275cf41f19a9653fae11978ad6d9c7cc1ba9
Author: Dave Love <d.love@liverpool.ac.uk>
Date: Fri Sep 17 22:45:51 2010 +0000
Fix MPI templates
commit 7c34c5f65a26b3b0af5d8333de795440b020b8a3 <= from newer
Author: <d.love@liverpool.ac.uk>
Date: Sat Sep 4 16:17:14 2010 +0000
Don't use -Werror with gcc
commit 5ac4d64ce9877f62f3f88fecc87857939afcfdbb <=
Author: <d.love@liverpool.ac.uk>
Date: Sat Sep 4 21:52:08 2010 +0000
Fix IZ2586: inst_sge missing error exit
commit fa4808493876e94724b289d71d255f856add558f <=
Author: <d.love@liverpool.ac.uk>
Date: Sat Sep 4 21:49:59 2010 +0000
Fix IZ2980: rename SGE's `getline'
commit 982123e545a01d4966ee5699f9ba76830c7eeb01 <=
Author: <d.love@liverpool.ac.uk>
Date: Sat Sep 4 21:25:57 2010 +0000
Debian's SPARC patch
commit bdb56d00a3e42cf8f39e9c816a76d9079a39a488 <=
Author: <d.love@liverpool.ac.uk>
Date: Sat Sep 4 21:25:16 2010 +0000
Debian's PARISC patch (with conflict fixed)
commit aed62a1c98026590366334e36cba75253135d168 <= to older
Author: <d.love@liverpool.ac.uk>
Date: Sat Sep 4 22:05:00 2010 +0000
Comment fixes in jsv_include.sh
commit 77a5f4fe5b49ed7401b0e2bed6a1bb78cf36c04c
Author: Dave Love <d.love@liverpool.ac.uk>
Date: Sat Sep 4 22:00:59 2010 +0000
Fix IZ3267: quoting in JSV sh library
commit 25ceb81fa11a1e629d6e6ab9a90c20978676a52a
Author: Dave Love <d.love@liverpool.ac.uk>
Date: Sat Sep 4 20:45:58 2010 +0000
Fix IZ3112 (swap memset args)
commit cbb7f8643b4857ddcf1470c5be3dd7e4320d9891 (tag: final_sunsource)
由于重写commit的历史需要把该commit以及更新的commit全部apply一遍,变动太大,而且会影响其他开发者,一般不建议。
可以用下面的方法忽略错误
$ cat .git/fsck_skipList
7c34c5f65a26b3b0af5d8333de795440b020b8a3
5ac4d64ce9877f62f3f88fecc87857939afcfdbb
fa4808493876e94724b289d71d255f856add558f
982123e545a01d4966ee5699f9ba76830c7eeb01
bdb56d00a3e42cf8f39e9c816a76d9079a39a488
aed62a1c98026590366334e36cba75253135d168
$ git config fsck.skipList .git/fsck_skipList
配置好后,本地再做git fsck
就不报错了。
$ git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (66259/66259), done.
但上面的配置只在本地生效,对于git服务器来说,还需要在这个repository的目录底下,进行类似的配置
# ssh my.gitlab.server
# cd <repository_folder_in_git_server>
# git config receive.fsck.skiplist .git/fsck_skipList
这样配置完,再push就成功了。更多信息,可参考git-fsck和git-config。