Merge pull request #1958 from japgolly/git_commit_fix

Ensure git can commit and prevent it from failing silently
This commit is contained in:
Dmitriy Zaporozhets 2012-11-13 08:44:05 -08:00
commit ed931f3a49
3 changed files with 30 additions and 4 deletions

View file

@ -180,6 +180,14 @@ and ensure you have followed all of the above steps carefully.
sudo gem install bundler
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
sudo -u gitlab bundle exec rake gitlab:app:setup RAILS_ENV=production

View file

@ -194,8 +194,10 @@ module Gitlab
def push tmp_dir
Dir.chdir(File.join(tmp_dir, "gitolite"))
system('git add -A')
system('git commit -am "GitLab"')
raise "Git add failed." unless system('git add -A')
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')
Dir.chdir(Rails.root)
else

View file

@ -37,9 +37,10 @@ namespace :gitlab do
return
end
FileUtils.rm_rf("/tmp/gitolite_gitlab_test")
begin
`git clone #{Gitlab.config.gitolite_admin_uri} /tmp/gitolite_gitlab_test`
FileUtils.rm_rf("/tmp/gitolite_gitlab_test")
`git clone -q #{Gitlab.config.gitolite_admin_uri} /tmp/gitolite_gitlab_test`
raise unless $?.success?
print "Can clone gitolite-admin?............"
puts "YES".green
rescue
@ -48,6 +49,21 @@ namespace :gitlab do
return
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? ............"
if open(File.absolute_path("#{git_base_path}/../.gitolite.rc")).grep(/UMASK([ \t]*)=([ \t>]*)0007/).any?
puts "YES".green