Lokale Versionsverwaltung einrichten

Für Installationen unter Linux-Systemen
Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Lokale Versionsverwaltung einrichten

Beitrag von Warf »

Marsmännchen hat geschrieben:
mse hat geschrieben:...Ich verstehe wirklich nicht, warum nicht alle programmierende Personen eine Versionsverwaltung verwenden.
Ich verfolge diesen Thread mit Interesse, aber jetzt muss ich doch mal nachhaken. Ist eine Versionsverwaltung für kleine Hobbyprojekte nicht doch etwas überzogen? Vor allem, weil man sich ja in die Thematik erst mal einarbeiten muß?


Das einarbeiten lohnt sich, das sind ein Paar Stunden sich mit der Materie auseinandersetzen, und man hat nie wieder das Problem, Dateien ausversehen zu löschen/verlieren, das nach Änderungen das Programm nicht mehr läuft (da man sich einfach alle changes einzeln ansehen kann), gedächnisschwund für neue Funktionen (da man mit jedem Commit eine Message mitliefert), Prototypen und experimente die vielleicht dein Projekt zerschießen können (da man einfach einen neuen Branch erstellt, und wenn es fehlschlägt einfach auf die letzte funktionierende version zurückgeht).

Ich nutze für jedes Projekt, was jetzt nicht mal ein schnelles Tool ist (z.B. um Dateien umzubenennen ö.ä.) mittlerweile Git oder SVN

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Lokale Versionsverwaltung einrichten

Beitrag von mse »

Warf hat geschrieben:Ich nutze für jedes Projekt, was jetzt nicht mal ein schnelles Tool ist (z.B. um Dateien umzubenennen ö.ä.) mittlerweile Git oder SVN

Ich benutze MSEgit grundsätzlich auch für die kleinsten Projekte. Wie bereits geschrieben ist der zusätzliche Aufwand so gering, dass er sich immer lohnt. Und wie ebenfalls bereits geschrieben, ist die Einarbeitungszeit für einfache Aufgaben kein Problem.
Was man sich bei git vergegenwärtigen muss ist, dass ein commit-SHA1 den Zustand aller Dateien im Repository zu einem bestimmten Zeitpunkt plus den SHA1 des Vorgängers repräsentiert.
Alle diese snapshots sind im Verzeichnis ".git" des Projektes in komprimierter Form abgelegt. Aus dem Archiv können beliebige Zustände in das Arbeitsverzeichnis geladen ("checkout") oder miteinander verglichen werden . MSEgit stellt dazu bequeme Funktionen zur Verfügung. "msegit5.png" zeigt z.B. die Änderungen im Verzeichnis lib/common/audio zwischen "2013-03-01 16:30:51" bis und mit "2014-01-24 14:20:12".
msegit5.png

Weiter können Änderungen in einer Zusammenhängenden Folge von snapshots in eine andere Kette übertragen werden ("merge", "rebase"), dies ist aber für einfache Anwendung bereits nicht mehr notwendig.
Branches sind nichts anderes als symbolische Namen zu commit-SHA1's.

Requion
Beiträge: 106
Registriert: Mi 3. Feb 2016, 09:39
OS, Lazarus, FPC: Linux(Arch Linux(+ARM)/Minibian) (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64Bit,ARM(RPi)
Wohnort: nahe Grimma

Re: Lokale Versionsverwaltung einrichten

Beitrag von Requion »

Marsmännchen hat geschrieben:
mse hat geschrieben:...Ich verstehe wirklich nicht, warum nicht alle programmierende Personen eine Versionsverwaltung verwenden.
Ich verfolge diesen Thread mit Interesse, aber jetzt muss ich doch mal nachhaken. Ist eine Versionsverwaltung für kleine Hobbyprojekte nicht doch etwas überzogen? Vor allem, weil man sich ja in die Thematik erst mal einarbeiten muß?

Ich hab auch mal so gedacht. Allerdings hat sich das sehr (sehr) schnell geändert als ich dann wirklich mal mit Git gearbeitet habe (was allerdings keine explizite Werbung für Git sein soll).
Mittlerweile Benutze ich auch eine Versionsverwaltung für jedes noch so kleine Projekt (außer vielleicht "Projekte" die rein zum Experimentieren dienen).
Vorallem möchte und werde ich nie wieder damit anfangen irgendwelche Projekte auf nem USB Stick von Rechner zu Rechner zu schleppen (Ich wechsel immer mal vom Desktop zum Lappi).
Wobei ich jetzt niemals auf die Idee kommen würde, mir einen eigenen Git Server hinzustellen. Dafür sind meine Projekte dann doch zu klein.

Und das mit dem einarbeiten sollte auch nicht das Problem sein. Erstmal sind Git und SVN meiner Meinung nach sehr gut Dokumentiert. Und wenn das nicht reicht findet man unzählige Tutorials.
Das heißt es gibt zwar eine "kurze" Eingewöhnungsphase, aber der Nutzen und die Zeit die man sparen kann wenn mal was schiefgeht machen das locker wieder gut.

Ich für mich möchte nicht mehr darauf verzichten. Natürlich kann man niemanden zwingen sowas zu benutzen aber ich für meinen Teil würde es jedem ausdrücklich empfehlen.
Mfg Requion

Das beste an Standards ist, dass es so viele davon gibt.

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Lokale Versionsverwaltung einrichten

Beitrag von mse »

Requion hat geschrieben:Wobei ich jetzt niemals auf die Idee kommen würde, mir einen eigenen Git Server hinzustellen. Dafür sind meine Projekte dann doch zu klein.

Mit Gitolite geht auch das auf Linux wunderbar:
http://gitolite.com/gitolite/index.html

Requion
Beiträge: 106
Registriert: Mi 3. Feb 2016, 09:39
OS, Lazarus, FPC: Linux(Arch Linux(+ARM)/Minibian) (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64Bit,ARM(RPi)
Wohnort: nahe Grimma

Re: Lokale Versionsverwaltung einrichten

Beitrag von Requion »

mse hat geschrieben:
Requion hat geschrieben:Wobei ich jetzt niemals auf die Idee kommen würde, mir einen eigenen Git Server hinzustellen. Dafür sind meine Projekte dann doch zu klein.

Mit Gitolite geht auch das auf Linux wunderbar:
http://gitolite.com/gitolite/index.html

Sehr geil. Danke für den Tipp :) Der Link ist direkt in meine Sammlung nützlicher Links eingeflossen.
Mfg Requion

Das beste an Standards ist, dass es so viele davon gibt.

Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

Re: Lokale Versionsverwaltung einrichten

Beitrag von Marsmännchen »

So, ich habe jetzt mal ein kurzes Online-Tutorial zu Git gemacht. Langsam verstehe ich, was ihr meint. Mir sind selbst noch zwei Gründe eingefallen, selbst bei Ausprobier- und Lernprojekten damit anzufangen:

1. Man kann sich bei einer kleinen Sache leichter in diese neue Technik einarbeiten. Wenn man ein Riesending anfängt und dann erst mit Git & Co. rumprobiert, kann das schief gehen. Besser man ist dann schon firm damit.

2. Auch wenn man selbst nicht vorhat, das neue ultimative Office-Paket alleine zu schreiben, möchte man sich später vielleicht an einer größeren Sache einfach beteiligen (im Open Source Bereich). Dann sollte man wohl auch mit Versionskontrollen klarkommen, Aye?
Ich mag Pascal...

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Lokale Versionsverwaltung einrichten

Beitrag von af0815 »

ad 1) Es geht das erste mal fast sicher Schief :-) bzw. wird das ein gewürge. Nicht vergessen sich mit den Verzweigungen (Branches) und dem zusammenführen vertraut zu machen.

ad 2) Nein, auch für sich selbst in eine Versionskontrolle gut geeignet. Der grösste Trottel ist meistens zwischen Stuhllehne und Monitor/Tatstatur. Mit Versionkontrolle, kann ich was austesten und wenns funktioniert kommt es in den Hauptzweig. Auch wenn ich nach langer Zeit draufkomme, das ich vor langer Zeit was verbockt habe, so kann ich nachsehen, wann war das, kann den alten Stand wieder zurückholen und das ganze fixen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

Re: Lokale Versionsverwaltung einrichten

Beitrag von Marsmännchen »

af0815 hat geschrieben:...ad 2) Nein, auch für sich selbst in eine Versionskontrolle gut geeignet. Der grösste Trottel ist meistens zwischen Stuhllehne und Monitor/Tatstatur. Mit Versionkontrolle, kann ich was austesten und wenns funktioniert kommt es in den Hauptzweig. Auch wenn ich nach langer Zeit draufkomme, das ich vor langer Zeit was verbockt habe, so kann ich nachsehen, wann war das, kann den alten Stand wieder zurückholen und das ganze fixen.

Unbestritten 8) . Ich habe mich missverständlich ausgedrückt. Ich meinte eigentlich: Unabhängig von dem unbestrittenen Nutzen für mich selbst gewinne ich noch durch das Erlernen von Versionskontrollen den Vorteil, dass ich bei Opensource-Projekten mitarbeiten kann, die ja häufig (eigentlich immer?) solche Systeme einsetzen.
Ich mag Pascal...

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Lokale Versionsverwaltung einrichten

Beitrag von MAC »

Ich kann mich meinen Vorrednern nur anschließen,
jahrelang hab ich Backups gemacht in dem ich Programmierordner kopiert habe und ihnen ein komischen Namen gegeben habe, die dann irgendwo in der Versenkung oder auf USB Sticks vor sich hin rotten.
Schon der Wechsel zwischen PC und Laptop ist sehr kompliziert und hat einen großen Aufwand.

Frühling 2014 hab ich von den Versionsverwaltungen git und svn gehört (und auch wirklich eingelesen, also Github hat bestimmt jeder schon mal gesehen ohne genau zu wissen was das ist) und mir vorgenommen das einmal auszuprobieren.
Ich hab mich für Git entschieden und mir einen kleines Server mit GitLab aufgesetzt (kann ich nur empfehlen, ist aber ein ziemlicher Overhead für den normalo, bitbucket und github tun es auch).

Seit dem bin ich begeistert und habe jedes Tool was mehr als 3 Zeilen groß ist unter Versionskontrolle. USB Sticks gibt es nicht mehr und das aktuallisieren geht super schnell und sauber voran.

Dazu kann ich auch sagen, das Git nicht nur im OpenSource Bereich beliebt ist, in Universitäten und bei der Firma, bei der ich arbeite, gehört es mitlerweile zum Standart (zum Glück).

Code: Alles auswählen

Signatur := nil;

mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: Lokale Versionsverwaltung einrichten

Beitrag von mischi »

Ich kann den Argumenten für die Verwendung eines VCS auch für kleine Projekte, an denen man nur alleine arbeitet, auch nur zustimmen. Ich nutze das inzwischen außer für Programmcode auch für Publikationen mit Latex.
MiSchi macht die fink-Pakete

Requion
Beiträge: 106
Registriert: Mi 3. Feb 2016, 09:39
OS, Lazarus, FPC: Linux(Arch Linux(+ARM)/Minibian) (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64Bit,ARM(RPi)
Wohnort: nahe Grimma

Re: Lokale Versionsverwaltung einrichten

Beitrag von Requion »

Ich hab mich für Git entschieden und mir einen kleines Server mit GitLab aufgesetzt (kann ich nur empfehlen, ist aber ein ziemlicher Overhead für den normalo, bitbucket und github tun es auch).


Ich nutze das Angebot auf GitLab.com. Da sind auch (für den privaten Nutzer auf jeden Fall ausreichend aber ich weiß nicht wie viele genau) kostenlos private Repos möglich. Das ist ja bei GitHub glaub ich nicht so (deswegen hatte ich mich damals auch für den Online Service von GitLab entschieden)
Mfg Requion

Das beste an Standards ist, dass es so viele davon gibt.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Lokale Versionsverwaltung einrichten

Beitrag von af0815 »

Ein einfacher Weg ist, auf einer NAS ein Repository einzurichten. Das geht auch als Fileshare. Das kann man dann auch mit der NAS backupen und ist für zu Hause ausreichend. Mit GIT natürlich, bei SVN ist genau das gefährlich.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

Re: Lokale Versionsverwaltung einrichten

Beitrag von Marsmännchen »

Nur mal so als Feedback: Ich habe mich jetzt bei meinem Mini-Projekt (einen Wecker basteln) verrannt gehabt. Dank Git konnte ich die letzte funktionierende Version wiederherstellen. VCS... nie wieder ohne!
Ich mag Pascal...

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Lokale Versionsverwaltung einrichten

Beitrag von af0815 »

Dann probier vor dem nächsten versuch einen neunen Zweig zu machen, dann die Änderungen im neuen Zweig und dann das ganze zu mergen. Dann bist du voll dabei.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Lokale Versionsverwaltung einrichten

Beitrag von marcov »

af0815 hat geschrieben:Ein einfacher Weg ist, auf einer NAS ein Repository einzurichten. Das geht auch als Fileshare. Das kann man dann auch mit der NAS backupen und ist für zu Hause ausreichend. Mit GIT natürlich, bei SVN ist genau das gefährlich.


Svn hat auch ein File Protocol. Ich habe es aber als Server auf ein RPI (jetzt -2, erst 1) mit ein 16GB USB Stick. Sehr Portabel. Backups mit rsync nach Desktop.

Antworten