Entwickler-Ecke

Off Topic - Prof. Versionsmanagment


digi_c - Mi 24.09.03 11:53
Titel: Prof. Versionsmanagment
Hallöchen, ich hätte mal eine sicherlich eher ungewohnte Frage, nämlich wie man als Programmierer mit den Versionsnummern umgeht. Ich habe D5 und möchte in den kommenden Projekten mal versuchen ein bissel professioneller zu Arbeiten, doch wann habe ich eigentlich eine 1.0 fertig? und was ist nu wirklich ein Build?(Dachte das wär die Nr. der Kompilierung zwischen den Versionen) Wie kann ich das vielleicht mit D. automatisieren, gibts gute Software um die Projeckt Versionen jeweils zu backupen+Bugs ...?

Danke fürs lesen!


CenBells - Mi 24.09.03 13:01

hallo,

gute software um versionsmanagement zu machen, ist CVS. Unter wincvs.org fidnet sich auch eine windowsportierung.

Gruß
ken


Klabautermann - Mi 24.09.03 14:40

Hallo,

die Version 1.0 ist bei mir immer die erste Version, die ich auf die Endbnutzer loslassen kann. Ich definiere mir also vorher welche Versionen ein Programm mindestens haben muss und wenn die Funktionieren ist das Version 1.0. Danach baue ich neue Funktionen ein, wenn es nach meinem Guto genug sind werden diese wieder veröffendlicht, und der Versionszähler geht um 0.1 hoch.

Die Build nummer ist der absoluter Zähler aber nicht der Kompilierungen, sondern der Build. Ein Build ist wenn du alle Units des Projektes Kompilierst. Das kannst du unter Projekt->Projekt erzeugen machen. Diese kannst du dann auch automatisch erhöhen lassen.

Generell geht aber jeder Programmierer / jede Firma nach belieben mit den Versionsnummern um.

Hier mal zwei Beiträge zum Thema CVS (kann ich übrigens nur empfehlen):
Was macht CVS? [http://www.delphi-forum.de/viewtopic.php?t=4577]
einfaches CVS gesucht [http://www.delphi-forum.de/viewtopic.php?t=10326]

Gruß
Klabautermann


digi_c - Do 25.09.03 14:11

Mit CVS hatte ich währned eines Linux Praktikas Kontakt, hatte aber net durchgesehen, kann das einer mir mal kurz umreißen wozu das da ist?

Hmm 1.0 für Endbenutzer? Da gibts nur ein Problem, ich bau eigentlich nix für andere :lol: nur für misch und dauernd hab ich neue Ideen, naja dann muss ich ma sagn "so bis hierher und der rest ist .1".

Also ich kompiliere immer mit F9, da wird doch auch allet kompiliert, was ist denn dann nu so toll an einem Build? Ist das ein Zwischenschritt wo eine Problematik abgehandelt wurde?


Tino - Do 25.09.03 14:23

Hallo!

digi_c hat folgendes geschrieben:
Also ich kompiliere immer mit F9, da wird doch auch allet kompiliert, was ist denn dann nu so toll an einem Build?

Wenn du F9 drückst dann werden nur die Dateien neu Compiliert die sich auch geändert haben. Bei einem Build werden alle Dateien neu compilert.

Gruß
Tino


Klabautermann - Do 25.09.03 14:40

digi_c hat folgendes geschrieben:
Mit CVS hatte ich währned eines Linux Praktikas Kontakt, hatte aber net durchgesehen, kann das einer mir mal kurz umreißen wozu das da ist?


Zur Versionskontrolle ;).
Im ersten Link den ich dir zu CVS geschickt habe, lasse ich mir das ein wenig auseinander Klabüsern.

Ein paar Punkte die Ich dabei sehr vorteihaft finde sind diese:

So das ist das was mir jetst Spontan einfällt.
Ich denke einen Netten überlick gibt auch die TortoiseCVS FAQ [http://www.tortoisecvs.org/faq.html], dass ist ein schicker CVS-Client.


digi_c hat folgendes geschrieben:
Hmm 1.0 für Endbenutzer? Da gibts nur ein Problem, ich bau eigentlich nix für andere :lol: nur für misch und dauernd hab ich neue Ideen, naja dann muss ich ma sagn "so bis hierher und der rest ist .1".

Deswegen sagte ich ja, das es die erste Version ist die man Benutzern zumuten kann. Denn fertig wird ein Programm eigentlich nie.

digi_c hat folgendes geschrieben:
Also ich kompiliere immer mit F9, da wird doch auch allet kompiliert, was ist denn dann nu so toll an einem Build? Ist das ein Zwischenschritt wo eine Problematik abgehandelt wurde?

Tja, das sit eine gute Frage. Ein Build sollte man immer machen wenn man eine Version rausgibt. Warum? Kann ich auch nciht wirklich sagen. Eine Technische begründing ist mir hierfür nciht bekannt.

Gruß
Klabautermann


Brueggendiek - Do 25.09.03 20:30

Hallo!

Tino hat folgendes geschrieben:
Wenn du F9 drückst dann werden nur die Dateien neu Compiliert die sich auch geändert haben. Bei einem Build werden alle Dateien neu compilert.


Und das ist dann wichtig, wenn es Änderungen gibt, die den Source nicht ändern.
Gibbet nich - doch! Wenn ich die Compilereinstellungen wie Debug-Symbole, externer Debugger (wichtig für MemProof), Optimierung etc. ändere oder in den Projektoptionen die Symbole für bedingte Compilierung, ändern sich die Sourcen bzw. die Compilate, ohne daß der Dateiinhalt geändert wird. F9 kann die Änderungen aber nicht erkennen. Dann muß man mit "Build" alles durchcompilieren.

Gruß

Dietmar Brüggendiek


digi_c - Fr 26.09.03 22:53

Aha jetzt ist alles klar, danke für die Antworten, werd mich ma mit CVS beschäftigen, bei der neuen c't ist sogar n eBook mit druf :P


CenBells - Di 30.09.03 11:18

@Klabautermann, Ich benutze nun schon länger cvs. Ich habe auch von der nebenentwicklungslinie gelesen und würde nun gerne wissen, wie ich das mache?
Ich benutze WinCvs und würde nun gerne eine nebenlinie eröffnen, weil ich hier einigen mist verzapfen könnte *G*
Kannst du mir das erklären, bzw, was muss ich bei dem befehl Create new Branch by module eingeben?

Gruß
Ken


Tino - Di 30.09.03 11:35

Hallo,

ich kenne WinCVS nicht und kann dir deshalb nicht genau sagen was du wo angeben musst.

"Nebenlinie" nennt sich eigentlich "Entwicklungsstrang". Wahrscheinlich musst du in einem Eingabefeld angeben von welchen "Checkpoint" du den Brunch erstellen willst.

Gruß
TINO


Klabautermann - Di 30.09.03 12:38

Hallo,

auch ich verwende WinCVS nicht, da es mir 1 recht unübersichtlich erscheint und es 2. die Server Werte in der Regestrygespeichert werden, so dass ich pro Windows User auf einen CVS Server beschränkt bin.

Ich verwende TortoiseCVS [http://www.tortoisecvs.org]. Da aber die Termonologie ähnlich sein sollte, wie bei WinCVS empfehle ich dir mal das HeplFile von TortoiseCVS runter zu laden [http://www.tortoisecvs.org/UserGuide_en.chm]. Unter Advanced usage of TCVS -> Branching and Merging findest du ein recht informatives unterkapitel zu dieser Thematik. Wie gesagt, da die Termonologie der von WinCVS ähneln sollte, könnte dir das auch bei der umsetzung in deinem Client helfen.

Gruß
Klabautermann