Mittwoch, 21. November 2012

Das Ding mit der Umwelt

Seit ein paar Tagen arbeite ich an einem Satz Hooks, die schön bequem alles mögliche tun sollen, unter anderem beim Einchecken in ein bestimmtes Repository (und unter bestimmten Bedingungen) automatisch ein Working Directory zu aktualisieren. Dabei bin ich auf ein einfaches Problem gestoßen:

Wenn ein Git Hook läuft, zeigt die Environment Variable GIT_DIR auf das Bare Repository.

Das ist vermutlich notwendig (ich habe da nicht weiter nachgeforscht), im Falle eines "git update" aber sehr störend. Die Fehlermeldung besagt, dass das Verzeichnis, in dem man arbeitet, kein Git Repository ist (verwirrend weil in jedem Falle falsch).

An der Stelle reicht es schon aus, dem Git-Prozess für das Update entweder eine neue Variable GIT_DIR mitzugeben, oder für diesen Prozess die Variable zu löschen. Implementationsdetails überlasse ich dem Leser.