Wenn das Projekt "fertig" ist...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

keppla hat geschrieben:Ich hätte es nur gerne so, dass jemand, der sich seinen code auscheckt, im code explizit die revision stehen hat, damit ich sie in "about" oder sonstwo anzeigen kann, da ich schon öfters den fall hatte,
Was spricht dagegen subversion properties - oder etwas Gleichartigem bei Deinem favorisierten Versioningsystem? Ich verwende das zumindest, um sicherzustellen, daß Revisionsnummer, Datum und Author der letzten Revision im File stehen. Natürlich, Gerold hat recht, die svn-Revisionsnummer ist nicht dasselbe wie der Projektstatus, der in einer Versionsnummer wiedergegeben wird. Die muß man schon per Hand setzen. Ich zum Beispiel bin viel konservativer beim Zählen als er ;-) und einem Programm kann man schlecht beibringen die Tragweite einer Revision numerisch zu schätzen.

Was Anleitungen angeht: Für mich sind Beispiele und eine direkte Sprache wichtig, eine verquastete Anleitung ist so viel wert wie gar keine: Sie wird nämlich nicht gelesen.

Gruß,
Christian
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

keppla hat geschrieben:ich hätte gerne im about bei einem release "version 2.3.5" und bei einem checkout "dev, revision 23"
Hallo keppla!

Du kannst SVN-Keywords einsetzen um automatisch Informationen über das Repository in die Datei schreiben zu lassen. Diese musst du aber vorher aktivieren.

http://blog.wochele.de/archives/10-Subv ... words.html

http://subversion.tigris.org/faq.html#v ... -in-source

Du kannst dir eine CMD-Datei schreiben, mit der du dein Programm eincheckst. Zuerst ersetzt du damit irdendeinen "Version-Platzhalter" durch den Text aus "version.txt" und danach führst du "svn commit" aus. Ich verwende CMD-Dateien um dabei auch gleich die HTML-Seiten für die Hilfe generieren zu lassen, bevor diese ins Repository übernommen werden.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
lunar

Nun, bei zentralen VCS wie SVN sind die Revisionsnummern noch aussagekräftig, da sie zentral verwaltet werden, aber bei verteilten VCS würden sie gar nichts mehr aussagen!

Nehmen wir z.B. an, jemand brancht ein verteiltes Repo, und implementiert viele kleine Änderungen in vielen kleinen Patches. Das treibt die Revisionsnummern nach oben. Auf der anderen Seite setzt sich der andere aber einen Monat lang hin, entwickelt zu Hause eine komplette Neuimplementierung mit ein paar coolen neuen Features und pflegt diese Änderungen mit nur wenigen, großen Patches ein. Die Revisionsnummer steigt nur wenig, trotzdem ist dieser Zweig aktueller als der andere.

Oder Beispiel Kernelentwicklung: Da ist die Entwicklung zerfasert in viele individuelle Trees und Branches, so dass man unter Umständen eine Kernel aus einem Entwickler-Tree installieren kann, der zwar brandneue Ext4-Features hat, aber sogar noch ohne Tickless Timer läuft. In diesem Fall würde die Revisionsnummer überhaupt nichts mehr aussagen, da verschiedene Codeteile von verschiedenster Aktualität sind.

Deswegen verzichtet git gleich auf eine fortlaufende Zählung, und gibt Commits lieber eindeutige, auf Hashes basierte Namen.

Imho sollte man die Revisionsnummer für nichts heranziehen, und auch am besten nicht in die Quellen schreiben.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

svn-keywords funktionieren nur auf geänderten dateien
Wie meinst du das?
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

birkenfeld hat geschrieben:
svn-keywords funktionieren nur auf geänderten dateien
Wie meinst du das?
Das die ID in einer Datei jeweils die der letzten Änderung an dieser Datei ist und nicht die des Checkouts ;)

Und Lunar, die Revisionsnummer im Falle eines zentralen Systemes respektive der Hash bei dezentralen ist vor allem dann wichtig wenn du wissen willst welchen Code ein bestimmtes Build enthält. Im Falle der SVN Revision ist es aber noch wichtig heraus finden zu können aus welchem Branch der Code stammt - diese Information ist in der Revision nicht enthalten.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Antworten