AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Werkzeuge Projektstruktur + DVCS in der (Delphi) Praxis

Projektstruktur + DVCS in der (Delphi) Praxis

Ein Thema von Jumpy · begonnen am 22. Nov 2016 · letzter Beitrag vom 23. Nov 2016
Antwort Antwort
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.696 Beiträge
 
Delphi 6 Enterprise
 
#1

Projektstruktur + DVCS in der (Delphi) Praxis

  Alt 22. Nov 2016, 11:42
Hallo,

nachdem es ja in jüngerer Zeit mal wieder eine Diskussion gab "((Git vs. Mercurial) vs. SVN) vs. Zip" habe ich nun vor auf DVCS umzusteigen (welches steht noch nicht ganz fest) und möchte bitte diese Diskussion nicht wieder aufkommen lassen. Ich komme übrigens von "Copy Projekt Ordner", also noch nicht mal Zip ;
Stattdessen hoffe ich, das bekennende DVCS Nutzer mir meine folgenden Fragen beantworten können.
(die anderen dürfen natürlich auch was sagen, spez. zu Punkt 3) )

1) Ich hätte gerne auch je Projekt ein zentrales Repository und überlege nun dies einfach auf einem Netzlaufwerk einzurichten und dafür nicht extra einen Server o.ä. aufzusetzen. Geht das oder ist das später irgendwann unpraktisch. Oder kann man später immer noch auf einen Server umstellen?

2) Legt man das zentrale Repository (durch clonen meines lokalen) so an, dass da nur Repository-Infos und nicht die eigentlichen Dateien liegen, was macht in der Praxis Sinn?

3) Wie sieht es dann in der Delphi-Praxis (nicht der DP )aus: Welche Ordner legt man an für ein Delphi-Projekt und welche (Delphi-)Dateien kommen wo hin. Frage ist bezogen auf generelles Arbeiten mit der Delphi-IDE, aber auch mit Hinblick auf DVCS.

Frage 3) könnte man vllt. an einem kleinen Beispiel erklären?
Projekt Vereinsverwaltung -> Vereinsverwaltung.dpr, Vereinsverwaltung.exe, usw.
Hauptformular aMAIN -> aMain.pas, .dfm
Weitere Formulare analog?
Icon-Datei Icon.Ico -> .rc-Dateie usw.
Plus die Dateien, die Delphi automatisch erzeugt (auch History).

Welche Ordner legt man dafür an?
Welche Dateien kommen in welchen Ordner?
Welche Pfade muss man wie (relativ?) in der IDE angeben?
Wo kommt das Repository ins Spiel?
Was soll man aus dem DVCS ausschließen (.exe, .res., ...)?


Mir ist klar, dass es für 3) wahrsch. mehrere Lösungen geben wird, wäre nett, wenn ihr mir eure Arbeitsweise da zeigen würdet ggf. auch warum und niemanden kritisiert wenn er es anders macht.
Danke
Ralph

Geändert von Jumpy (22. Nov 2016 um 11:48 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.713 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Projektstruktur + DVCS in der (Delphi) Praxis

  Alt 22. Nov 2016, 11:55
Ich bin da jetzt kein Profi. Ohne groß nachzudenken:

Zu 1):
Wir haben auch keinen Super-Spezialserver. Einfach ein Windows-Dateifreigabe auf einem Server und gut ist. Synchronisiert wird dann einfach gegen \\myServer\Repos\myProject . Kannst du später sicher einfach "upgraden" auf irgendetwas tolles, aber ich persönlich habe nie die Notwendigkeit gesehen.


Zu 2):
Es macht keinen Sinn die Daten auf dem Server (wenn du es z.B. denn über Windows-Dateifreigabe machst) dort nochmal redundant ausgepackt in irgendeiner Version zu haben. Frisst nur Unmengen Platz. Die "Arbeitskopie" macht nur für den arbeitenden Programmierer Sinn, nicht für den Server gegen den alle synchronisieren.

Zu 3)
Ich glaube du machst dir da zu viele Gedanken. Der Versionsverwaltung ist das egal wie deine Dateien heißen und wo sie liegen. Wichtig sind mMn nur die "Ignores", also was per se nicht versioniert wird. Google einfach mal nach "Delphi ignore files", da findest du schon vorgefertigte Templates welche Dateien ausgeschlossen werden sollten (das RAD Studio legt ja echt eine Menge an!).
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
3.825 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: Projektstruktur + DVCS in der (Delphi) Praxis

  Alt 22. Nov 2016, 12:12
1) Kannst mit nem Verzeichnis auf ner Freigabe anfangen (wenn möglich dort, wo auch eine Datensicherung läuft)

So haben wir mit git auch angefangen, inzwischen nutzen wir selfhosted GitLab.

2) Wie man aus einem bestehenden Verzeichnis mit Dateien ein Repository bekommt, sollte in jeder Doku zum jeweiligen DVCS stehen - einfach dort mal reinschauen

3) Grundregel ist, alles was aus Sourcen etc rekonstruiert (kompiliert werden kann) kommt nicht in die Versionsverwaltung. Das heißt also keine exen und teilweise auch ggf keine res Dateien oder ähnliches. Außerdem der ganze lokale temporäre Klump, den die IDE so anlegt - wie Günther schon sagte, einfach ne default ignore Datei nehmen, ins Repo packen und dann kannst eh nur noch den Rest hinzufügen.

Wie du deine Codedateien und Verzeichnisse strukturierst, ist komplett dir überlassen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Projektstruktur + DVCS in der (Delphi) Praxis

  Alt 22. Nov 2016, 15:53
So...nu mein Senf

Zu 1. und 2. wurde ja schon geantwortet, und ich kann da nix weiteres dazu sagen

Zu 3. Bei mir sind die Ordner-Strukturen wie folgt aufgebaut:

projektname\bin

Dort kommen die exe und die dll's rein die zum Projekt gehören. Die kommen nicht in
die Versionsverwaltung, wäre nur unnötige Speicherplatzverschwendung.

(Projekt-Optionen -> Verzeichnisse -> Ausgabeverzeichnis)

projektname\dcu

Da landen die vom Compiler erzeugten DCU's rein. Ich hab das abgetrennt vom Bin-Verzeichnis
um einfach mal jemanden nen compilierten Stand zu schicken

Landet auch nicht in der Versionsverwaltung

(Projekt-Optionen -> Verzeichnisse -> Ausgabe für Units)

projektname\source

Da landen die Quelltextdateien und dfm's und rc's. Die direkt zum Projekt gehören.

projektname\thirdparty

Da landen die Quellen von externen (also nicht direkt zum Projekt gehörenden) Bibleotheken.

Sollte mit in die Versionsverwaltung, damit man bei älteren Ständen auch die entsprechenden
Versionen der Bibleotheken hat.

(Projekt-Optionen -> Verzeichnisse -> Suchpfad)

projektname\gfx

Dort landen Grafiken (Icons, bitmaps usw), Sounddateien und alles was als Resource eingebunden
wird.

Sollte ebenfalls in die Versionsverwaltung. Letztlich sind es auch Source-Dateien und nichts
ärgert mehr, als ein vermurkstes Icon

projektname\hlp

Dort landen die fertigen (compilierten) Hilfe-Dateien.

Diese sind bei mir nicht in der Versionsverwaltung

projektname\Doc

Dokumentationen und Help-Projekte.

Die kommen mit in die Versionsverwaltung.


projektname\localization

Für die Lokalizationsdateien.

Die kommen mit in die Versionsverwaltung.

Im Hauptverzeichnis des Projekts stehen so (zumindest bei mir) nur noch Projekt-Einstellungen bzw. die Projektdatei der IDE. Als Single-Entwickler nehm ich sie mit in die Versionsverwaltung. Damit
kann ich sicherstellen, das die Einstellungen die gleichen sind, wie für den gg. Stand. Wenn mehrere
Entwickler daran arbeiten, sollte nur ein "Grund"-Stand rein, da Suchpfade u.ä. ja unterschiedlich
sein könnnen. Ich denk mal hier scheiden sich die Geister
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.562 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Projektstruktur + DVCS in der (Delphi) Praxis

  Alt 22. Nov 2016, 17:01
Ist zwar alt, aber ein Anfang.
http://delphi.wikia.com/wiki/Delphi_File_Extensions

Ich lege Desktop-, Config- und Cache-Dateien nicht ins DVCS.
Wenn man nicht alleine arbeitet ist es eh blöd, da jeder seine eigenen Einstellungen benutzt.
> *.dsk *.dof *.identcache *.local
Am Besten stetzt man diese Dateien auch auf ignore, damit man sie nicht ständig beim checkin sehen muß.

__histroy im DVCS ist doch bissl sinnlos
Und Delphi lässt das eh leer, wenn es SVN/Git entdeckt ... dann geht die Unit-Historie im Delphi sogar direkt da darauf und nicht auf's __history.
Also auch auf Ignore stellen.
Delphi hat ja dafür eine Integration, seit 'ner Weile. Da kann man dann auch direkt in der Projektverwaltung die Änderungen hochladen, aber ich mach das lieber im Explorer.

Dateien die immer wieder automatisch generiert werden und die sich vorallem auch JEDESMAL ändern, kommen besser auch nicht rein.
*.dcu, aber nur wenn die *.pas existiert, checke ich nie ein
*.exe und eigentlich alle Compilerausgaben muß man auch nicht einchecken, denn die kann man jedesmal aus dem Source neu generieren.
Außer vielleicht bei EXEn von "Subprojekten", die man fast nie kompilert, weil sich fast nie was dran ändert, aber die man immer wieder braucht.

Bei *.res der Projekte ... zum Kompiliere braucht man die eigentlich, drum check ich die mit ein.
Delphi kann die Projekt-RES aus der *.dproj zum Großteil neu genierieren, aber genauso kann man die *.dproj löschen und sie sich aus der DPR+RES neu genierieren lassen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (22. Nov 2016 um 17:03 Uhr)
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Projektstruktur + DVCS in der (Delphi) Praxis

  Alt 23. Nov 2016, 07:40
1) Kannst mit nem Verzeichnis auf ner Freigabe anfangen (wenn möglich dort, wo auch eine Datensicherung läuft)

So haben wir mit git auch angefangen, inzwischen nutzen wir selfhosted GitLab.

2) Wie man aus einem bestehenden Verzeichnis mit Dateien ein Repository bekommt, sollte in jeder Doku zum jeweiligen DVCS stehen - einfach dort mal reinschauen

3) Grundregel ist, alles was aus Sourcen etc rekonstruiert (kompiliert werden kann) kommt nicht in die Versionsverwaltung. Das heißt also keine exen und teilweise auch ggf keine res Dateien oder ähnliches. Außerdem der ganze lokale temporäre Klump, den die IDE so anlegt - wie Günther schon sagte, einfach ne default ignore Datei nehmen, ins Repo packen und dann kannst eh nur noch den Rest hinzufügen.

Wie du deine Codedateien und Verzeichnisse strukturierst, ist komplett dir überlassen.
Für uns gilt das ebenfalls. Wichtig bei der Struktur ist nur, dass die bei allen deinen Projekten gleich ist. Dann kann man später einfacher einen CI-Server hintendran hängen
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.696 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: Projektstruktur + DVCS in der (Delphi) Praxis

  Alt 23. Nov 2016, 09:34
CI-Server ist noch in weiter ferne. Erstmal anfangen mit DVCS und dann Unit-Tests zu arbeiten. Trotzdem habe ich die Frage 1) und 2) genau deswegen gestellt. Ich will verhindern, dass ich es mir am Anfang zu einfach mache (mit Repo auf Netzlaufwerk) und dann später die Probleme bekomme. Aber so wie ihr das schildert, muss ich mir da keine Sorgen machen. Danke dafür.

Zu 3) habe ich mir wohl tatsächlich zuviele Gedanken gemacht wie es scheint, d.h. ich muss nur eine entsprechende ignore-Datei benutzen. Danke für die Ansätze dafür und Hinweise was da rein soll und was nicht.

@Ghoswalker: Danke für deinen Senf. Sowas hat mich nämlich auch interessiert (nicht nur wg. DVCS, sondern auch mal allgemein), wie man seine Projekte sinnvoll strukturiert, denn sowas gibt es bei uns derzeit nicht, da liegt alles was zu einem Projekt gehört in einem Ordner und das kann schon mal unübersichtlich werden.
Ralph
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 14:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf