AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SVN und Komponentenversionen

Ein Thema von haentschman · begonnen am 11. Apr 2010 · letzter Beitrag vom 20. Apr 2010
 
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.643 Beiträge
 
Delphi 12 Athens
 
#14

Re: SVN und Komponentenversionen

  Alt 20. Apr 2010, 07:29
Zitat von ele:
Das führt aber ziemlich schnell zu eine Source-Chaos, wenn man dann bei mehreren Projekten eine eigene Bibliothek mitführt. Vor allem wenn man dann eine Bibliothek in einem Projekt weiterentwickel und das in den anderen Projekten nicht nachführt. Ich arbeite deswegen ausschliesslich mit globalen Bibliothekspfaden.
Ein Problem ensteht in diesem Fall dann, wenn du eine ältere Version zur Fehlerbehebung bearbeiten musst, die aber nicht mit der neuen Version der Bibliothek zusammen passt. Deswegen gehören meiner Meinung nach die Bibliotheken mit in die Versionsverwaltung des Projekts.

Ich löse das mit SVN folgendermaßen:

- Alle Bibliotheken werden über SVN verwaltet. Ich habe ein eigenes Repository, einen Folder pro Bibliothek und die entsprechenden Subfolder trunk, tags und branches. Sowohl bei Fremd-Bibliotheken, als auch bei eigenen, wird jede Version getaggt.

- Jedes Projekt hat ein eigenes LIB-Verzeichnis in das die verwendeten Bibliotheken per svn:external eingebunden werden. Solange das Projekt in der aktuellen Entwicklung bzw. Experimentierphase ist, binde ich den jeweiligen trunk ein.

- Noch bevor die ersten Versionen des Projekts rausgehen (sprich, bevor das erste Projekt selbst getagged wird), ändere ich die svn:externals auf den aktuellen Tag der entsprechenden Bibliothek. Damit ist gewährleistet, daß diese Version des Projekts mit den dafür passenden Bibliotheken fest verbunden ist.

- Für die aktuelle Entwicklung werden die svn:externals wieder auf den trunk zurückgesetzt. Damit ist sichergestellt, daß das Projekt immer mit den neuesten Bibliotheken arbeitet. In Ausnahmefällen wird für einzelne Bibliotheken auch mal darauf verzichtet.

- Zum Bugfixing wird die zu fixende Version aus den tags in einen neuen Branch kopiert. Dieser wird dann für alle weiteren Bugfixes dieser Version verwendet. Auf ein Merge wird auf Grund der bekannten Probleme von SVN in diesem Bereich verzichtet.

- Das Ganze läßt sich dank einer strukturierten Versionsnummernrichtlinie relativ leicht automatisieren.

Das Problem der Designtime-Packages läßt sich damit leider nicht lösen und ich habe bislang auch noch keine zufriedenstellende Lösung dafür gefunden. Entsprechende Geistesblitze nehme ich immer dankbar zur Kenntnis.

Nach meinen bisherigen Erkenntnissen muss man sich aber für eine Lösung von den automatischen Bibliotheksinstallern gleich verabschieden.

Oder nach Walter Giller: Es bleibt schwierig...
Uwe Raabe
  Mit Zitat antworten Zitat
 


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 +1. Es ist jetzt 00:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz