effkay / blazing

painless git push deployments for everyone
MIT License
80 stars 12 forks source link

git reset happens twice when switching deployed branch #66

Closed marcoribi closed 11 years ago

marcoribi commented 12 years ago

git push production Counting objects: 966, done. Delta compression using up to 4 threads. Compressing objects: 100% (392/392), done. Writing objects: 100% (723/723), 247.83 KiB, done. Total 723 (delta 513), reused 454 (delta 327) remote: ------ remote: ------ [blazing] ENTERING POST RECEIVE HOOK FOR: production remote: ------ remote: ------> [blazing] Doing a hard reset and checking out refs/heads/development since thats what you pushed remote: HEAD is now at 30216cd add dummy commit remote: Previous HEAD position was 30216cd... add dummy commit remote: HEAD is now at 18fed9c... add time ago in words for latest activities remote: ------> [blazing] Doing a hard reset and checking out refs/heads/master since thats what you pushed remote: HEAD is now at 18fed9c add time ago in words for latest activities remote: Previous HEAD position was 18fed9c... add time ago in words for latest activities remote: HEAD is now at e023f74... solve merge conflicts remote: ------> [blazing] Loading rvmscripts from custom location remote: ------> [blazing] Loading rvm from .rvmrc remote: Using: /opt/rvm/gems/ruby-1.9.3-p0@evz remote: ------> [blazing] Bundling gems remote: ------> [blazing] Running recipes for production remote: ------> [blazing] INFO : precompiling assets remote: mkdir -p /home/usr/evz/public_html/public/assets remote: cp -r /home/usr/evz/public_html/vendor/bundle/ruby/1.9.1/gems/tinymce-rails-3.4.9/vendor/assets/javascripts/tinymce /home/usr/evz/public_html/public/assets remote: ------> [blazing] running RAILS_ENV=production bundle exec rake post_deploy remote: Running migrations if necessary remote: Restating thin servers remote: Notifying Campfire To evz@scrcpt2.nine.ch:/home/usr/evz/public_html 30216cd..18fed9c development -> development 08ae27d..e023f74 master -> master

effkay commented 12 years ago

that was a wrong issue id in commit msg :blush:

effkay commented 12 years ago

So, this happens because git is pushing all matching branches when no branch is specified and we loop over the pushed branches so to say. Really, there is no way to know which branch you wanted to deploy if multiple branches are pushed.

Suggested Solution when multiple branches are pushed: Stay in the currently "deployed" branch and don't execute the hook code for the other branches.

Meanwhile: always provide a branch when pushing and multiple branches may match.

effkay commented 11 years ago

This has been remedied by the updated git push defaults. Just use push.default simple and a recent version of git.