Neulan erottaminen Git-muutosten heinäsuovasta

Toisinaan käy niin, että on tarpeen varmistua siitä aiheuttaako iso kasa Git-committeja jotain sivuvaikutuksia esimerkiksi Puppet-tuotantoympäristössä. Hyvistä commit-viesteistä on aina toki apua, mutta toisinaan commitit eivät ole täysin atomisia, eli tekevät enemmän kuin yhden (dokumentoidun) asian. Lisäksi esimerkiksi Puppet control reposta saattaa löytyä paitsi Puppet-koodia, myös Terraformia ja Ansiblea. Tälläisessä tapauksessa on kätevää näyttää vain muutokset, jotka ovat oikeasti relevantteja. Ensin tarkistetaan, mikä "production"-ympäristön viimeisin commit on:

$ ssh puppet
$ cd /etc/puppetlabs/code/environments/production
$ git rev-parse --short HEAD
86c2152

Tämän jälkeen voidaan tarkista control reposta muutokset Puppetin kannalta oleellisiin kansioihin ja tiedostoihin:

$ cd puppet-control-repo
$ git diff 86c2152…HEAD -- data manifests site Puppetfile

Näin ei tarvitse kahlata läpi myös niitä committeja, jotka eivät mitenkään voi liittyä varsinaiseen Puppet-koodiin ja eivät siten voi aiheuttaa ongelmia tuotantokoneilla.

menucross-circle