Gitlab 6.1 push Rejected / Error

2019-04-29 20:59发布

Before i use gitlab 5.3 and all works fine.

Now i upgrade to gitlab 6.1 via 5.4 and 6.0 and now i can't push.

İnstallation check on server:

root@ks:/home/git/gitlab# sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production

System information
System:     Debian 6.0.7
Current User:   git
Using RVM:  no
Ruby Version:   1.9.3p327
Gem Version:    2.1.8
Bundler Version:1.3.5
Rake Version:   10.1.0

GitLab information
Version:    6.1.0
Revision:   b595503
Directory:  /home/git/gitlab
DB Adapter: mysql2
URL:        http://git.gigadi.org
HTTP Clone URL: http://git.gigadi.org/some-project.git
SSH Clone URL:  git@git.gigadi.org:some-project.git
Using LDAP: no
Using Omniauth: no

GitLab Shell
Version:    1.7.1
Repositories:   /home/git/repositories/
Hooks:      /home/git/gitlab-shell/hooks/
Git:        /usr/bin/git



root@ks:/home/git/gitlab# sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
Checking Environment ...

Git configured for git user? ... yes
Has python2? ... yes
python2 is supported version? ... yes

Checking Environment ... Finished

Checking GitLab Shell ...

GitLab Shell version >= 1.7.1 ? ... OK (1.7.1)
Repo base directory exists? ... yes
Repo base directory is a symlink? ... no
Repo base owned by git:git? ... yes
Repo base access is drwxrws---? ... yes
update hook up-to-date? ... yes
update hooks in repos are links: ... 


Checking GitLab Shell ... Finished

Checking Sidekiq ...

Running? ... yes

Checking Sidekiq ... Finished

Checking GitLab ...

Database config exists? ... yes
Database is SQLite ... no
All migrations up? ... yes
GitLab config exists? ... yes
GitLab config outdated? ... no
Log directory writable? ... yes
Tmp directory writable? ... yes
Init script exists? ... yes
Init script up-to-date? ... yes
projects have namespace: ... 

Projects have satellites? ... 

Redis version >= 2.0.0? ... yes
Your git bin path is "/usr/bin/git"
Git version >= 1.7.10 ? ... yes (1.8.3)

Checking GitLab ... Finished

When i try in my local machine:

GIT_SSH='ssh -v' git push -f http://mydomain.org/xxx/xxx.git master

The result is:

Counting objects: 154, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (135/135), done.
Writing objects: 100% (154/154), 184.75 KiB, done.
Total 154 (delta 22), reused 0 (delta 0)
remote: /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/dsl.rb:33:in `eval_gemfile': Gemfile syntax error: (Bundler::GemfileError)
remote: /home/git/gitlab/Gemfile:14: syntax error, unexpected ':', expecting $end
remote: gem "mysql2", group: :mysql
remote:                     ^
remote:     from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/dsl.rb:9:in `evaluate'
remote:     from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/definition.rb:19:in `build'
remote:     from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler.rb:148:in `definition'
remote:     from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler.rb:116:in `setup'
remote:     from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/setup.rb:17
remote: error: hook declined to update refs/heads/master
To http://mydomain.org/xxx/xxx.git
 ! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'http://mydomain.org/xxx/xxx.git'

i Use gitlab in debian 6.0.7 with apache

Where is the probleme?

标签: debian gitlab
3条回答
老娘就宠你
2楼-- · 2019-04-29 21:02

I solve my problem like this:

vim /home/git/gitlab-shell/hooks/update

change first line from

#!/usr/bin/env ruby

TO

#!/usr/local/bin/ruby

Now my push work fine!

Thinks VonC

查看更多
虎瘦雄心在
3楼-- · 2019-04-29 21:04

First, pushing with an http url means ssh isn't involved at all:

  • Setting GIT_SSH makes no difference.
  • Setting GIT_CURL_VERBOSE=1 would make a difference in the output of the git push.

Second, as illustrated by issue 3373, issue 2285, issue https://github.com/gitlabhq/gitlabhq/issues/3349, ... it is a ruby version issue.

I am 99% sure that you have 1.9.3 installed from RVM but you have also system ruby (check /usr/bin/ruby --version).
When you connect trough git@gitlab (ssh) - you are launching shell so rvm is being properly initialized and used and everything works but when you run through HTTP, gitlab is launching gitlab-shell directly and for some reason rvm doesn't work and the system version is used.

查看更多
别忘想泡老子
4楼-- · 2019-04-29 21:17

I solved my problem as Ramazan said above vim /home/git/gitlab-shell/hooks/update change first line from

!/usr/bin/env ruby

TO

!/usr/local/bin/ruby

查看更多
登录 后发表回答