Hallo zusammen, ich bin auf der Suche nach einer Softwareversionierung. Ich benutze das AVRstudio 5 und meine folgendes: Wenn ich meinen Code beispielsweise in Version 1.0 fertiggestellt habe, möchte ich diesen im aktuellen Zustand speichern. Wird der Code erweitert, soll dieser Zustand z.B. als Version 1.1 abgespeichert werden. Ich möchte aber später vielleicht mal nachschauen, oder muss aus einer älteren Version heraus neu programmieren, sodass ich dann beispielsweise Version 1.0 abrufen muss/möchte, wie auch immer. Ist sowas möglich? Meine bisherige Vorgehensweise ist immer: - das Projekt als Version 1.0 abspeichern - Projekt kopieren - Projekt in Version 1.1 umbenennen Gibt es da nicht einfacheres? Sodass man im AVRProjekt eine Softwarechronologie erstellen kann? Ich habe bis jetzt noch nichts entdeckt.
Subversion, kostenlos und gut, gibt es für (fast) alle Betriebssysteme.
Das Zauberwort zu deinem Problem lautet: Versionskontrollsystem. Oder kurz: VCS. Ich weiß ja nicht, was AVRStudio so kann, aber CVS, der Urvater, sollte doch gehen. Oder lieber gleich zu SVN (Subversion) greifen. Wenn das im AVRStudio nicht integriert ist, rate ich zu externen Tools wie Kommandozeile per Cygwin (unter Windows) oder TortoiseSVN. Dazu mußt du aber mindestens einen (lokalen) Server aufsetzen. Ob das unter Windows geht, weiß ich leider nicht. In Ubuntu z.B. kann sowas leicht integriert werden. Du solltest aber unbedingt vorher mindestens eine Kurzanleitung zu SVN lesen, um zu wissen um was es sich dabei dreht. Falls du über Git als Versionierungssystem stolperst, rate ich in deinem Fall -> Finger weg! Zu kompliziert für deine Belange. Im Kontrollsystem geht das z.B. so: > Meine bisherige Vorgehensweise ist immer: > - das Projekt als Version 1.0 abspeichern Projekt mit aussagegräftigem Namen und Beschreibung "taggen" (Stichwort: tag) und in den "trunk" Zweig einpflegen. > - Projekt kopieren Einen "branch" mit aussagekräftigem Namen erstellen, um an einem Teilprojekt/-problem zu arbeiten. > - Projekt in Version 1.1 umbenennen Branch in den trunk zurück"mergen" (Stichwort: merge) oder als eigene branch mit eigenem tag weiterführen. Das ist genau die Lösung, die du brauchst. Zur Einarbeitung gibt's 'ne Menge guter, freier Quellen im Netz und auch hier im Forum.
Die Schildkröte integriert sich hervorragend in den Windows Explorer. Abends die Arbeit des Tages sichern ist in 10s getan und wird daher auch nicht vergessen :-)
Eine weitere Möglichkeit, ebenfalls Gratis und ohne großen Installationsaufwand, wäre Mercurial. Für Clicky-Bunty gibt's hierzu auch noch tortoiseHg.
amateur schrieb: > Für Clicky-Bunty gibt's hierzu auch noch tortoiseHg. Ja, das stimmt, hatte ich auch schon im Kopf beim schreiben. Nur finde ich es auch recht exotisch bzw. nich weit verbreitet. Kann im Problemfall kein so großer Kreis an Leuten, wie z.B. hier im Forum oder im Bekanntenkreis, helfen. Außerdem gab es doch eine Änderung der Lizenzbedingungen, weswegen der Linux-Kernel nun auf der Eigenentwicklung Git versioniert wird. Ich denke, SVN trifft genau die Belange des TE.
Tippgeber schrieb: > Dazu mußt du > aber mindestens einen (lokalen) Server aufsetzen. so ein Quatsch. SVN braucht keinen server. Man legt einfach in irgend einem Leeren Verzeichnis ein neus Repo an und gibt zum Auschecken einfach dessen Pfad an.
Hallo Leute, klingt gut. Gibt es ein deutschsprachiges Tutorial, dass Ihr mir empfehlen könnt? Ich bin quasi Neueinsteiger. Ich habe mich im Netz ein wenig informiert, aber die Zusammenhänge noch nicht ganz verstanden. Soweit wie ich es verstanden habe, ist das Programm mit dem ich dann arbeite ein Client? Kann ich mir z.B. SmartSVN herunterladen und installieren und dann loslegen, oder muss ich mich dann noch irgendwo anmelden? Geht das alles lokal oder brauche ich Datenbanken? Am liebesten würde ich so vorgehen wollen: - Programm herunterladen und lokal installieren, - Das Projekt (aus einem Netzlaufwerk) "auschecken(?)" - und dann mit der arbeit loslegen - und anschließend sichern (commit?) Wo werden die Revisionierungen dann gespeichert? Am besten, wenn Sie dann wieder in einem Netzlaufwerk gespeichert werden, weil die netzlaufwerke einer Datensicherung unterliegen. Fragen über Fragen (ich blicke da noch nicht so ganz durch)
Fluffi schrieb: > Gibt es ein deutschsprachiges Tutorial, dass Ihr mir empfehlen könnt? Jupp, gibt es. Die Übersetzung des offiziellen SVN-Buches in deutsch: http://svnbook.red-bean.com/nightly/de/index.html > Soweit wie ich es verstanden habe, ist das Programm mit dem ich dann > arbeite ein Client? Ja. Du benötigst zur Verwaltung des Repository das Serverprogramm dazu. Gibt's aber im Normalfall im selben Paket gleich mit. Sollte problemlos sein. > Kann ich mir z.B. SmartSVN herunterladen und installieren und dann > loslegen, oder muss ich mich dann noch irgendwo anmelden? Nein, das brauchst du nicht. Du kannst auch lokal arbeiten, worauf Vlad Tepesch im Vorpost schon etwas barsch hingewiesen hat... Für die ersten Schritte kannst du vielleicht von hier starten: "Creating Local SVN Repository" http://www.guyrutenberg.com/2007/10/29/creating-local-svn-repository-home-repository/ > Geht das alles lokal oder brauche ich Datenbanken? Die Datenbank legt SVN oder welches Tool du auch immer nutzen willst, selbst an und verwaltet diese. Die Dateien und Verzeichnisse solltest du aber tunlichst nicht anfassen! Das macht SVN alles selbst. > Am liebesten würde ich so vorgehen wollen: > - Programm herunterladen und lokal installieren, > - Das Projekt (aus einem Netzlaufwerk) "auschecken(?)" > - und dann mit der arbeit loslegen > - und anschließend sichern (commit?) Ja, genau so läuft das in groben Zügen. > Wo werden die Revisionierungen dann gespeichert? Lokal. Dort, wo du dein Repository (Lager) eingerichtet hast bzw. mit welchen Parametern du deinen Client beim commiten fütterst (welches Repository er beim Aufruf nutzen soll). Dein Client kann, wenn er graphisch ist, dir eine schöne Übersicht mit Branches, Tags, Historie usw. anzeigen. Mußt du ausprobieren, um es sicher verwenden zu können. > Am besten, wenn Sie dann wieder in einem Netzlaufwerk gespeichert > werden, weil die netzlaufwerke einer Datensicherung unterliegen. Ja, das ist ein guter Ansatz und das wird funktionieren. > Fragen über Fragen (ich blicke da noch nicht so ganz durch) Lies dich erstmal in die Materie ein und suche ein paar kurze Dokuseiten mit Beispielen bei Onkel Google raus. Am Besten, du probierst erstmal nur in Trockenübungen lokal auf einem Rechner herum, um ein Gefühl für die Sache zu bekommen, bevor du ein endgültiges Repositoy einrichtest, was dann auch in die Datensicherung geht. Viel Erfolg und Spaß bei der Nutzung!
Kurze Zwischenfrage: Nach den ersten paar Zeilen, die ich mir angelesen habe könnte ich mir vorstellen, dass ich damit auch z.B. Eagle-Dateien (Layout/Schaltplan) bearbeiten bzw. versionieren kann. Es hat ja nichts direkt mit Programmierung zu tun, oder?
Längere Antwort: Sollte gehen. Du kannst damit alles versionieren, was text- bzw. ASCII- ähnliche Daten erzeugt, z.B. Code-, Hex-, HTML-, XML- oder sonst welche Scriptfiles. Binaries, Zips oder .exe- Programme gehen schlecht und blähen deine Datenbank stark auf. Nicht unmöglich - versionieren läßt sich alles ;) - aber eben unschön. Deshalb sind z.B. .docx (Word) oder .odt (Open Document) nicht direkt geeignet, weil sie gezippte XMLs sind. Wie das bei Eagle ist, weiß ich leider nicht genau. Das arbeitet auch mit Scriptdateien, wie ich mich erinnern kann. Aber KiCAD sollte wieder gehen, da es XMLs und Scripte nutzt. Das Versionierungstool prüft immer nur auf Unterschiede zwischen vorheriger und gerade einzucheckender Dateiversion (Stichwort "diff"-Algorithmus) und speichert nur diese in der Datenbank. In diesem Zusammenhang kann man sich auch die Patches für Linux-Programme z.B. vorstellen, die nichts weiter sind als "Unterschiedsdateien" zum originalen Quellcode (aber das ist wieder eine andere Kiste ;) Deshalb kannst du dir z.B. die Unterschiede zur Ur- oder einer beliebigen Version im Code später immer schön anzeigen lassen und Änderungen nachverfolgen. Aber fang nicht an, deine gesamten Festplatteninhalte zu versionieren wenn du einmal den Dreh raus hast - irgendwann sollte man auch aufhören alles versionieren zu wollen ;) Viel Spaß bei der Nutzung!
Änderungen an Text-Dateien belegen im Versioning System nur wenig Speicherplatz, weil die Software nur die geänderten Zeilen speichert. Andere Dateien (z.B. Word und Bilder) werden als "Binärdatei" behandelt und bei jeder Änderung komplett gespeichert. Wenn Du also eine 10MB Word Datei 5 mal änderst, wächst die Datenbank um 50MB. Wenn mehrere Entwickler an einem Projekt arbeiten, kann das System bei Textdateien die Änderungen der einzelnen Entwickler zusammen mischen (merge). Bei Binärdateien geht das nicht. Wenn zwei Entwickler eine Datei verändern und dann die Änderungen einchecken (commit), muss einer seine Änderungen verwerfen. Ob AVR Studio Subversion unterstützt, oder nicht, ist eigendlich ziemlich egal. Installiere Dir TortoiseSVN (unter Windows), ich kenne kein komfortableres Tool. Es handelt sich um eine Erweiterung für den Dateimanager, versteckt sich hauptsächlich im Kontextmenü (rechte Maustaste). Leider gibt es unter Linux nichts vergleichbares. Da würde ich KdeSvn verwenden oder das primitive Kommandozeilentool "svn". Daran kann man sich auch gewöhnen. Ein lokales Repository ohne Server legst Du mit dem Befehl svnadmin an. Beim Zugriff darauf mit einem SVN Client gibst Du die URL im Format file:///d:/pfad/repository ein. Achtung: Drei Slashes sind am Anfang nötig!
Ja für AVR Studio 6 gibt es das definitiv (denke die 5er wird das auch schon haben, ist alles vom orginal Visual studio) Habe das momentan mit code.google.com am laufen schau mal unter Extras Ad-In oder Erweiterungs-Manager. AnkhSVN im Grunde ganz einfach.
Stefan Frings schrieb: > Leider gibt es unter Linux nichts vergleichbares. Da würde ich KdeSvn > verwenden oder das primitive Kommandozeilentool "svn". Daran kann man > sich auch gewöhnen. Ich habe da RabbitSVN unter Ubuntu gesehen - läßt sich auch komfortabel verwenden und zeigt die Symbole der Versionierung auch im Gnome-Dateimanager ordentlich an. Sonst das Kommandozeilentool, wie ich schon sagte, unter Cygwin bei Windows verwenden. Ist leider nicht so komfortabel.
Wenn Du Probleme mit der englischen Sprache hast, würde ich Dir ebenfalls Mercurial empfehlen. Dazu gibt es im Rahmen der Homepage und in der Wikipedia einiges an Unterlagen.
Zu Git gibt es auch ein schönes Buch unter http://git-scm.com/book SVN würde ich heutzutage nicht mehr empfehlen, die dezentralen Systeme (DVCS) haben einfach zu viele Vorteile. Branches erstellen geht zwar auch in SVN, aber das Mergen ist ein Graus. Und warum sind Branches und Tags im SVN im Grunde das gleiche und heißen nur anders? Seit dem ich mal Git ausprobiert habe fluche ich jedes Mal, wenn ich wieder SVN beutzen muss. Ob du nun Mercurial (hg), git oder bazaar (bzr) benutzen möchtest, ist dir überlassen. Mein Rat ist nur: Finger weg von SVN! Gerade als Einsteiger ohne Ballast von SVN dürfte es nicht so schwer sein ein modernes System zu erlernen. Mit TortoiseGit gibt es auch eine grafische Oberfläche. Ein großer Unterschied zwischen Git und SVN ist auch, dass SVN einzelne Dateien versioniert, während Git das ganze Projekt betrachtet. Somit werden auch z.B. Umbennungen von Dateien erkannt, auch wenn sich kleine Teile ändern. In SVN siehst du nur dass eine Datei gelöscht wurde und eine neue angelegt. P.S.: Von git weiß ich, dass man auch mit SVN Servern kommunizieren kann (git-svn). Wenn also jemand mit dem du zusammen arbeiten möchtest nur einen SVN Server hat, kannst du trotzdem lokal Git benutzen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.