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!
ich hab mal ne grundlegende Vorgehensfrage zu LabView.
Ich möchte voranstellen, daß ich Labview seit ca 10 Jahren (ab V4) ab und an nutze, ich es mir aber nur durch `lerning by doing` beigebracht hab. Nun werden die Programme immer komplexer und es wird wichtiger, die verschiedenen Versionen sauber auseinander zu halten.
Zur Zeit mache ich es so:
Kopie von aktuellem Programm in durchnummerierten Ordner schieben, am Original weiterprogrammieren etc..
Meine Fragen:
Geht das auch eleganter, vielleicht automatisiert?
Beim App-builder kann man Versionsnummern vergeben, die gilt doch dann nur für die erzeugte exe (glaub ich). Wenn ich im Projekt ein vi ändere, speichere und eine neue Version (exe) erzeuge, ist es dann noch möglich, eine vorhergehende Version zu kompilieren (das Vi wurde doch geändert)?
Wie handhabt ihr das mit vi`s, welche in verschiedenen Projekten verwendet werden. Wenn man es in einem Projekt ändert, ist die lauffähigkeit in den anderen Projekten gefährdet!?
Vielleicht könnt ihr mir hier auf die Sprünge helfen, wie man das sauber und elegant löst.
Würde dir ein Source-Code Verwaltungstool empfehlen, damit hast du eine vollautomatische Nummerierung und Zugriff auf ältere Versionen.
Wir verwenden bei uns Subversion von Apache mit dem Client Tortoise SVN und ich kann es uneingeschränkt weiterempfehlen. Ist glaub ich sogar gratis, weiss es aber nicht...
Ich habe genau den gleichen Status wie Bernd und das gleiche Problem. Ich wundere mich allerdings, daß hier ein externes Programm für die Versionsverwaltung empfohlen wird. Ich gaubte bisher immer, mein eigenes Chaos liegt daran, daß ich zu faul bin, mich mit dem Angebot im Hauptmenü unter "Werkzeuge/Versionsverwaltung" mal richtig zu befassen.
Frage: Was ist denn dort zu erwarten?
SVN unterstützt die Modelle „Sperren-Verändern-Entsperren“ und „Kopieren-Verändern-Zusammenführen“. dies löst die versionsprobleme, welche in entwicklungsteams auftreten können besser.
bin mir nicht sicher ob die LV-Versionsverwaltung dies kann.
Ein riesiger Voteil von Subversion ist halt die Datensicherheit.
Ich sichere meinen Source-Code nach jeder implementieren Erweiterung oder Fehlerbehebung.
Dabei kann man einen Text eingeben was man seit der letzten Version verändert hat.
Anschliessend wird das ganze auf dem SubVersion-Server abgelegt.
Sollte ich nun einen Fehler feststellen, so kann ich einfach die alte Version laden und habe den Stand von damals.
Sehr praktisch auch wenn man für mehrere Systeme entwickelt, da man sich quasi für jedes System ein eigenes Verzeichnis erstellen kann.
SubVersion ist dabei so intelligent und referenziert alles, was nicht geändert wurde dadurch hält sich auch der benötigte Speicherverbrauch in Grenzen.
Tortoise SVN bietet sogar die Möglichkeit den LabVIEW DiffViewer (kA wie der auf Deutsch heisst) als Vergleichstool einzubinden.
Für Versionen, welche an User verteilt werden sichert man sich einen Stand.
Einziger "Nachteil" ist, dass man einen Server aufsetzten bzw installieren muss.
Falls ihr noch Fragen habt könnt ihr sie gerne stellen
(12.04.2011 11:46 )Mingo schrieb: bin mir nicht sicher ob die LV-Versionsverwaltung dies kann.
Ja, müsste sie, denn auch hierfür setzt man ein externes Sicherungssystem wie SVN oder CVS auf.
Allerdings kann man nicht jedes System in die LV-Versionsverwaltung integrieren.
Tortoise SVN direkt geht z.B. nicht. Und damit habe ich (sehr gute) Erfahrungen.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
(12.04.2011 11:48 )M Nussbaumer schrieb: ...
Ich sichere meinen Source-Code nach jeder implementieren Erweiterung oder Fehlerbehebung.
Dabei kann man einen Text eingeben was man seit der letzten Version verändert hat.
Anschliessend wird das ganze auf dem SubVersion-Server abgelegt.
...
wie wird das mit den verlinkten vi`s in dem Projekt gehandhabt?
Muß ich nur das Projekt auf dem SV-Server sichern und werden alle verknüpften vi`s automatisch mit gesichert?
Wie bekommen andere Projekte mit, daß ein vi geändert wurde?
Oder muß ich beim sichern des Projektes alle vi`s einzel durchgehen und die geänderten extra sichern?
Vielleicht steh ich da etwas auf dem Schlauch...ich kann mir nicht erklären warum NI in den Projekten nur auf VI`s verlinkt. Sowas nutzt doch nur, um vi`s in verschiedenen Projekten nutzen zu können. Wie klären diese untereinander Versionsprobleme/-inkonsistenzen?
In so einem Code-Repository wird genau das gespeichert, was du auswählst. Da kann es auch gut sein, dass du eine gemeinsam genutzte Bibliothek aus z.B. der User-Lib (Stichwort OpenG) nicht mit versionierst. Dann hängt von dir ab.
In der Regel wird sich so eine gemeinsam genutzte Bibliothek eher selten ändern, zumindest im Verhältnis zu einem laufenden Projekt, es mag also vernachlässigbar sein, wenn das nicht mit gesichert wird.
Was noch im LabVIEW-Projekt mit verknüpft ist, das weiß ein SV-Server nicht.
Der Vollständigkeit halber müsste man ehrlicherweise sowas auch mit sichern, aber dann darfst du zu jedem Software-Stand eigentlich deinen kompletten Computer sichern. Denn auf welche DLL oder .Net-Resourcen mglw. im Hintergrund noch zugegriffen wird, wer weiß das schon.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
(12.04.2011 13:20 )T_T schrieb: ...
wie wird das mit den verlinkten vi`s in dem Projekt gehandhabt? Bei uns ist alles auf dem SV-Server -> kein Problem
Muß ich nur das Projekt auf dem SV-Server sichern und werden alle verknüpften vi`s automatisch mit gesichert? Grundsätzlich befindet sich der gesammte Sourcecode auf dem Server, auf dem PC hat man nur eine Kopie an welcher man Anpassungen vornimmt und diese dann wenn man fertig ist auf den Server lädt
Wie bekommen andere Projekte mit, daß ein vi geändert wurde? Wenn du alleine arbeitest merkst du keinen Unterschied, als wenn du ohne SubVersion arbeiten würdest.
Wenn mehrere an einem Projekt arbeiten muss man seine Arbeitskopie regelmässig updaten (bei uns täglich, läuft mit den Änderungen übernehmen gleichzeitig ab.)
Oder muß ich beim sichern des Projektes alle vi`s einzel durchgehen und die geänderten extra sichern? Rechtsklick auf den Projektordner -> Commit (Hochladen) wählen. Und schon fertig
Vielleicht steh ich da etwas auf dem Schlauch...ich kann mir nicht erklären warum NI in den Projekten nur auf VI`s verlinkt. Sowas nutzt doch nur, um vi`s in verschiedenen Projekten nutzen zu können. Wie klären diese untereinander Versionsprobleme/-inkonsistenzen? Keine Ahnung wie das von NI gehandhabt wird, bei SubVersion wird bei jedem hochladen überprüft ob jemand anderes die Datei angepasst hat. Dann geht es ans zusammenführen...