Blog post -

Hantera olika ruby-versioner mellan git-brancher

Vi använder självklart RVM för att hålla isär olika versioner av Ruby och uppsättningar av gems. Vi har vår .rvmrc-fil incheckad i git-repot för att alla utvecklare ska köra med samma inställningar.

Detta fungerar jättesmidigt så länge som man inte vill byta version av Ruby eller uppsättning av gems mellan olika brancher i Git. Varken Git eller RVM har koll på att .rvmrc-filen ändras när en annan branch checkas ut, och detta leder till att utvecklaren själv måste hålla koll på när det behövs byta version och/eller uppsättning av gems.

För att underlätta detta så skrev jag ihop en enkel git-hook som körs vid varje checkout:


Koden läggs i filen REPO/.git/hooks/post-checkout och ges körrättigheter:

chmod +x REPO/.git/hooks/post-checkout

Scriptet avgör först om man byter mellan två brancher, och kör i sådana fall en diff på .rvmrc mellan de olika brancherna. Är det någon diff skrivs en tydlig röd ruta ut i terminalen för att påminna utvecklaren om att ladda om sin rvm.

Categories

  • rvm
  • git
  • bash