在我使用gitlab 5.3之前,一切正常。
现在我通过5.4和6.0升级到gitlab 6.1,现在我无法推送。
服务器上的安装检查:
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
当我在我的本地机器上尝试时:
GIT_SSH='ssh -v' git push -f http://mydomain.org/xxx/xxx.git master
结果是:
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'
我在debian 6.0.7中使用gitlab和apache
问题出在哪里?
答案 0 :(得分:12)
我这样解决了我的问题:
vim /home/git/gitlab-shell/hooks/update
从
更改第一行#!/usr/bin/env ruby
要
#!/usr/local/bin/ruby
现在我的推动工作正常!
思考VonC
答案 1 :(得分:2)
首先,使用http url推送意味着根本不涉及ssh:
GIT_SSH
没有任何区别。 GIT_CURL_VERBOSE=1
会对git push
的输出产生影响。其次,如issue 3373,issue 2285,issue https://github.com/gitlabhq/gitlabhq/issues/3349所示,......这是一个红宝石版本问题。
我99%确定你从RVM安装了1.9.3,但你也有系统红宝石(检查
/usr/bin/ruby --version
)。 当您通过git@gitlab
(ssh)连接时 - 您正在启动shell以便正确初始化和使用rvm并且一切正常但是当您通过HTTP运行时,gitlab会直接启动gitlab-shell
并由于某种原因{{ 1}}不起作用,使用系统版本。
答案 2 :(得分:1)
我解决了我的问题,正如拉马赞上面所说的那样 vim / home / git / gitlab-shell / hooks / update 从
改变第一行要