INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Verwaltung mehrere Projekte und gemeinsamer Bibliothek in Subversion



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

15.01.2011, 14:20 (Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2011 14:42 von Falk.)
Beitrag #1

Falk Offline
ja, das bin ich...
***


Beiträge: 343
Registriert seit: Jan 2006

8.0 :: 201x ::202x
2006
DE_EN


Deutschland
Verwaltung mehrere Projekte und gemeinsamer Bibliothek in Subversion
Hallo LV-Gemeinde,

in der Firma möchten wir in Kürze auf eine Versionsverwaltung umsteigen, haben uns bei unseren Überlegungen oder Ansätzen allerdings immer in eine Sackgasse manövriert. Das Problem genau genommen besteht darin dass wir verschiedene Projektzweige habe. Alle Projekte haben aber gemein, dass sie alle auf eine gemeinsame "Bibliothek" zurückgreifen sollen. Diese stellt für sich eigentlich ein eigenes Projekt dar.

Code:
+
+
++++ Projekt A
+
+
++++ Projekt B
+
+
++++ gemeinsame Bibliothek (Projekt C)

Der Arbeitsfluss sieht nun so aus, dass ein Entwickler an dem Projekt A arbeitet. Bei diesem Prozess können/ müssen auch Änderungen bzw. Erweiterungen an die Bibliothek einfließen. Ein zweiter Entwickler arbeitet nun aber parallel an dem Projekt B und kann aktuell die Bibliotheks-Änderungen überhaupt nicht gebrauchen. Beispielsweise möchte er nur einen Bug-Fix in B vornehmen. Kurz und knapp möchte er aber dabei auf eine anderen Versionsstand der Bibliothek zurückgreifen. Nach abgeschlossener Arbeit pflegen beide Entwickler ihre Projekte in das Repository hinein. Bei beiden Commits soll natürlich in der Versionsverwaltung ersichtlich sein, welches Projekt mit welchem Stand der Bibliothek gearbeitet hat. Am nächsten Tag soll Projekt B erweitert werden und der neuen Bibliothek vom Vortag angepasst werden. Was soll passieren? Der Entwickler holt sich das Projekt vom Vortag und wechselt auf die aktuelle Version der Bibliothek, passt Projekt B entsprechend ein und schiebt es wieder in das Repo.
Unsere ersten Versuche diesbezüglichen unternahmen wird mit dem SCC-System Git. Dabei war jedes Projekt und die Bibliothek als eigenes Repository umgesetzt. Soweit so gut, allerdings bedingte dieses Modell, dass bei einem Commit in einem Projekt nicht die Versionsgeschichte der Bibliothek einfloss. Es gab keine Repo-Abhängigkeit von Projekt A/B zu der Bibliothek. Es fehlt die Info in den Projekt-Repositories in welchem Versionsstand die Bibliothek zu diesem Zeitpunkt war. Den nächste Ansatz fanden wir dann unter dem Stichwort submodules. Dies heißt, dass das Repo der Bibliothek zusätzlich in die jeweiligen Projekt-Repositories eingebunden wurde. Für LabVIEW lag damit die Bibliothek scheinbar im Projektordner. Dies erlaubte es die Bibliothek innerhalb der Projekte auf einzelne Zustände zu wechseln. Hier hatte man genau die volle Kontrolle über die Versionsgeschichte.
Eigentlich genau das was wir wollten, bis wir LabVIEW starteten. Das Problem was sich aufzeigte war, dass wenn sich ein VI in der Bibliothek veränderte auch der Pfad des VIs an die aktuelle Projektstruktur angepasst wurde. Bei absoluten Pfaden irgendwie klar. Im anderen Projekt zeigten sich dann ständig Konflikte, von wegen der Pfad des VIs hat sich verändert. Das ist echt nervig und mühsam ständig aufzulösen. Was für LabVIEW eigentlich notwendig wäre ist folgendes. Die Bibliothek müsste in der Verzeichnisstruktur für alle Projekte stets an der gleichen Stelle liegen. Genau dieser Fall wäre erfüllt, wenn wir wie oben beschrieben jedes Projekt in ein eigenes Repository aufbauen, ohne submodule etc.. Das Problem wäre dann aber wieder der Verlust der Versionsgeschichte der Bibliothek (siehe oben).

Meine konkrete Frage ist nun die, wie ihr sowas bisher gelöst habt und vor allem ob sich die Problematik vielleicht mit Subversion lösen lässt? Auf der Seite http://www.skmwiki.de/index.php/Repository_Struktur bin ich auf folgendes Modell gestossen, welches alle Projekte in einem Repository beinhaltet soll?

[code]+
+++ ProjektA
+

Currently: zzzZZZZZZZZ
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.01.2011, 14:46 (Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2011 15:01 von BNT.)
Beitrag #2

BNT Offline
LVF-Freak
****


Beiträge: 740
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
Verwaltung mehrere Projekte und gemeinsamer Bibliothek in Subversion
Hi Falk
Deine Problemstellung kann ziemlich sicher mit Subversion gelöst werden.

In jedem Fall sollten alle Projektdateien und Bibliotheken in einem Repository liegen, um die Versionshistorie im Zusammenhang und Kontext korrekt wiederzugeben.

Unter Repository-Verzeichnisse/-Dateien können natürlich als Arbeitskopie an jeweils geeigneten auch verschiedenen Stellen ausgecheckt werden.

Wenn Entwickler B an den Änderungen von Entwickler A nicht interessiert ist, bleibt er einfach bei seiner aktuellen Revision. Möchte B eine Änderung commiten, die aber nicht als neue trunk Revision erscheinen soll, um A nicht zu stören, kann B einen Branch erzeugen und seine Änderung/Bug-Fix als Branch commiten.

Zu einem späteren Zeitpunkt können die beiden Branches dann wieder zur gemeinsamen trunk-Revision gemerged werden.

Übrigens: In LabVIEW 2010 kann der VI-Objectcode getrennt vom eigentlichen VI gespeichert werden. Damit wird das Problem der relativen Pfade gelöst. Bei solchen Änderungen, die nur den Objectcode btreffen, wird nur dieser im Hintergrund recompiliert, das VI aber nicht als geändert markiert.

Gruß Holger

Übrigens: Hier ist beschrieben, wie wir Subversion an der GSI benutzen. Dort gibt es auch Links zu weiterer Hintergrundinformation von NI.

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Projekte -Stand sichern und neues VI dazu frankie 2 1.405 22.11.2023 08:14
Letzter Beitrag: GerdW
  MainVI sucht nach gelöschter .lvlib Bibliothek kwz 5 3.352 04.05.2021 16:11
Letzter Beitrag: kwz
  2. LV Projekte miteinander verknüpfen thz89 1 3.221 13.07.2017 11:43
Letzter Beitrag: GerdW
  Best Practice: wie mehrere ähnliche Projekte verwalten? LichterLichtus 9 6.609 16.11.2016 13:18
Letzter Beitrag: LichterLichtus
  LabView Eigene Bibliothek mit interner Struktur ohne Datei-Sperrung HasteMalNeMark 0 2.866 06.04.2016 11:37
Letzter Beitrag: HasteMalNeMark
  Sourcecode Verwaltung SCC SVN ? prinz3nroll3 7 4.012 13.07.2015 14:49
Letzter Beitrag: prinz3nroll3

Gehe zu: