Python + Hg + Revisionsnummern im Programm
Verfasst: Donnerstag 20. Mai 2010, 12:50
Hallo,
da ich relativ oft neue Versionen meiner Programme ausliefere, möchte ich - auch um mit den Nutzern eine gemeinsame Sprache sprechen zu können - gerne Versionsnummern oder besser noch die Revisionsnummern von Mercurial (ggf. auch die Tags) in den Programmcode integrieren. Ob das jetzt in Form einer separaten Datei oder wirklich direkt im Code passiert, ist mir erstmal egal. Es soll nur sichergestellt sein, daß auf jeden Fall diese Versionsinformation enthalten ist - egal, ob ich einen checkout aus dem Hauptrepo mache (=.hg/ vorhanden), oder ob ich eine mittels hg archive erstellte Kopie (.hg/ nicht vorhanden) verwende.
Im Moment ändere ich alle paar commits einen Versionsstring per Hand und pflege ihn dann per commit ein. Das Problem damit: Es ist vergleichsweise aufwändig, ich vergesse es gerne mal, und es ist nicht immer so präzise wie ich es gerne hätte.
Ich habe bereits mit precommit-Hooks experimentiert, und auch eine Hg-Erweiterung getestet, die Platzhalter ersetzen kann. Das Problem ist bei allen diesen Ansätzen, daß die Aktualisierung des Versionsstrings ja wieder eine Änderung darstellt, die sich aber nicht einfach so einchecken läßt. Vor allem ist der Versionsstring nach Einchecken der Aktualisierung ja auch schon wieder obsolet. Ich bin mir nicht sicher, ob das VCS überhaupt der richtige Ort für derartige Aktionen ist. An einer Stelle wurde vorgeschlagen, diese Aufgabe vom Build-System erledigen zu lassen - nur nutze ich bislang keines.
Wie würdet ihr mit dieser Problemstellung umgehen? Wo könnte ich ansetzen?
da ich relativ oft neue Versionen meiner Programme ausliefere, möchte ich - auch um mit den Nutzern eine gemeinsame Sprache sprechen zu können - gerne Versionsnummern oder besser noch die Revisionsnummern von Mercurial (ggf. auch die Tags) in den Programmcode integrieren. Ob das jetzt in Form einer separaten Datei oder wirklich direkt im Code passiert, ist mir erstmal egal. Es soll nur sichergestellt sein, daß auf jeden Fall diese Versionsinformation enthalten ist - egal, ob ich einen checkout aus dem Hauptrepo mache (=.hg/ vorhanden), oder ob ich eine mittels hg archive erstellte Kopie (.hg/ nicht vorhanden) verwende.
Im Moment ändere ich alle paar commits einen Versionsstring per Hand und pflege ihn dann per commit ein. Das Problem damit: Es ist vergleichsweise aufwändig, ich vergesse es gerne mal, und es ist nicht immer so präzise wie ich es gerne hätte.
Ich habe bereits mit precommit-Hooks experimentiert, und auch eine Hg-Erweiterung getestet, die Platzhalter ersetzen kann. Das Problem ist bei allen diesen Ansätzen, daß die Aktualisierung des Versionsstrings ja wieder eine Änderung darstellt, die sich aber nicht einfach so einchecken läßt. Vor allem ist der Versionsstring nach Einchecken der Aktualisierung ja auch schon wieder obsolet. Ich bin mir nicht sicher, ob das VCS überhaupt der richtige Ort für derartige Aktionen ist. An einer Stelle wurde vorgeschlagen, diese Aufgabe vom Build-System erledigen zu lassen - nur nutze ich bislang keines.
Wie würdet ihr mit dieser Problemstellung umgehen? Wo könnte ich ansetzen?