5

在我使用 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'

我在带有 apache 的 debian 6.0.7 中使用 gitlab

问题出在哪里?

4

3 回答 3

12

我这样解决我的问题:

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

将第一行从

#!/usr/bin/env ruby

#!/usr/local/bin/ruby

现在我的推送工作正常!

认为VonC

于 2013-10-19T12:54:29.557 回答
2

首先,使用 http url 推送意味着根本不涉及 ssh:

  • 设置GIT_SSH没有区别。
  • 设置GIT_CURL_VERBOSE=1会改变git push.

其次,如issue 3373issue 2285issue https://github.com/gitlabhq/gitlabhq/issues/3349,...这是一个ruby版本问题。

我 99% 确定你已经从 RVM 安装了 1.9.3,但你也有系统 ruby​​(检查/usr/bin/ruby --version)。
当您连接槽git@gitlab(ssh)时 - 您正在启动 shell,因此 rvm 正在正确初始化和使用并且一切正常,但是当您通过 HTTP 运行时,gitlabgitlab-shell直接启动并且由于某种原因rvm不起作用并且使用了系统版本

于 2013-10-19T07:41:19.847 回答
1

我解决了我的问题,正如 Ramazan 上面所说的 vim /home/git/gitlab-shell/hooks/update 改变第一行

!/usr/bin/env 红宝石

!/usr/local/bin/ruby

于 2013-11-05T08:08:06.210 回答