Lotus Notes und git
Programmieren ohne Quelltextverwaltung macht jedem Entwickler das Leben schwer. Die Entwicklungsumgebung von Lotus Notes und die organisatorischen Umstände tragen in meinem Alltag das ihre dazu bei. Meine Omma und Camus meinen “Jeder hat es selbst am schwersten”. Und Sisyphos muss man sich als glücklichen Menschen vorstellen – vielen Dank für diesen Tipp, Albert. Wie werde ich ein glücklicher Sisyphos?
Im Lotus-Notes-Bereich muss ich mich selbst darum kümmern, Versionsstände meiner Quelltexte nachzuhalten. Und ich bekomme dafür keine zusätzlichen Resourcen, keinen SVN-Server o.ä. Also liegt es nahe, git einzusetzen. Die Repositories liegen auf meinem PC, ich schiebe sie regelmäßig in das Sicherungsverzeichnis.
Eine Datenbank von Lotus-Notes ist ein Binärfile und darin enthaltene Programmierungen stehen nicht “einfach so” als Quelltext zur Verfügung, sondern nur im Lotus-Notes-Designer. Abhilfe schafft die Möglichkeit, das Design einer Datenbank inklusive Programmierung auf die Festplatte zu schreiben – diese Feature nennt sich “on-disk-project”. Damit lesbarer Quelltext rausgeschrieben wird, bedarf es einer Einstellung: Gehe zu “Vorgaben” – “Domino Designer” – “Quellcodeverwaltung” und deaktiviere die Option “Binäres DXL zur Quelltextverwaltung verwenden”. Anschließend kann man ein Notes-Design mit einem On-Disc-Project verknüpfen. In dem entstehenden Dateibaum kann man dann wie gewohnt mit git arbeiten.
Obacht: Das on-disc-project schreibt nicht nur auf die Platte, es liest auch Veränderung ein. So wird das versteckte git-Verzeichnis in das Projekt integriert. Das bläht das Projekt auf der Notes-Seite auf, und das führt wiederum zu längeren Ladezeiten. Es gibt einen Schalter, der den Abgleich beschränkt auf die Richtung vom nsf zum git-Repository, aber das ist keine Option, weil es mir verbietet, den Quelltext ausserhalb von Notes zu bearbeiten. Zum Glück kann man ein git-Repository hinlegen, wo es einem in den Kram passt. git hat dafür beim init-Befehl die Option “–separate-git-dir”. Sie legt das versteckte git-Verzeichnis an eine konfigurierbare Stelle. Im Datenverzeichnis selbst wird lediglich ein Hinweis darauf hinterlassen, wo git das versteckte Verzeichnis findet. Der Clou: Wenn das init mit dieser Option in einem bestehenden Repository aufgerufen wird, dann verschiebt git das versteckte Verzeichnis. Da hat jemand mitgedacht – muß ein Programmierer gewesen sein, der ein Kratzen am A…h gelindert hat. Auch an meinem. Dank dafür.