Commit ed931f3a authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge pull request #1958 from japgolly/git_commit_fix

Ensure git can commit and prevent it from failing silently
parents ea6359df 93f0a8c9
...@@ -180,6 +180,14 @@ and ensure you have followed all of the above steps carefully. ...@@ -180,6 +180,14 @@ and ensure you have followed all of the above steps carefully.
sudo gem install bundler sudo gem install bundler
sudo -u gitlab -H bundle install --without development test sqlite postgres --deployment sudo -u gitlab -H bundle install --without development test sqlite postgres --deployment
#### Configure git client
Gitlab needs to be able to commit and push changes to gitolite.
Git requires a username and email in order to be able to do that.
sudo -u gitlab -H git config --global user.email "gitlab@localhost"
sudo -u gitlab -H git config --global user.name "Gitlab"
#### Setup application #### Setup application
sudo -u gitlab bundle exec rake gitlab:app:setup RAILS_ENV=production sudo -u gitlab bundle exec rake gitlab:app:setup RAILS_ENV=production
......
...@@ -194,8 +194,10 @@ module Gitlab ...@@ -194,8 +194,10 @@ module Gitlab
def push tmp_dir def push tmp_dir
Dir.chdir(File.join(tmp_dir, "gitolite")) Dir.chdir(File.join(tmp_dir, "gitolite"))
system('git add -A') raise "Git add failed." unless system('git add -A')
system('git commit -am "GitLab"') system('git commit -m "GitLab"') # git commit returns 0 on success, and 1 if there is nothing to commit
raise "Git commit failed." unless [0,1].include? $?.exitstatus
if system('git push') if system('git push')
Dir.chdir(Rails.root) Dir.chdir(Rails.root)
else else
......
...@@ -37,9 +37,10 @@ namespace :gitlab do ...@@ -37,9 +37,10 @@ namespace :gitlab do
return return
end end
begin
`git clone #{Gitlab.config.gitolite_admin_uri} /tmp/gitolite_gitlab_test`
FileUtils.rm_rf("/tmp/gitolite_gitlab_test") FileUtils.rm_rf("/tmp/gitolite_gitlab_test")
begin
`git clone -q #{Gitlab.config.gitolite_admin_uri} /tmp/gitolite_gitlab_test`
raise unless $?.success?
print "Can clone gitolite-admin?............" print "Can clone gitolite-admin?............"
puts "YES".green puts "YES".green
rescue rescue
...@@ -48,6 +49,21 @@ namespace :gitlab do ...@@ -48,6 +49,21 @@ namespace :gitlab do
return return
end end
begin
Dir.chdir("/tmp/gitolite_gitlab_test") do
`touch blah && git add blah && git commit -qm blah -- blah`
raise unless $?.success?
end
print "Can git commit?............"
puts "YES".green
rescue
print "Can git commit?............"
puts "NO".red
return
ensure
FileUtils.rm_rf("/tmp/gitolite_gitlab_test")
end
print "UMASK for .gitolite.rc is 0007? ............" print "UMASK for .gitolite.rc is 0007? ............"
if open(File.absolute_path("#{git_base_path}/../.gitolite.rc")).grep(/UMASK([ \t]*)=([ \t>]*)0007/).any? if open(File.absolute_path("#{git_base_path}/../.gitolite.rc")).grep(/UMASK([ \t]*)=([ \t>]*)0007/).any?
puts "YES".green puts "YES".green
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment