SVN verwenden

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: SVN verwenden

Beitrag von MacWomble »

Ich verwende für meine Projekte SVN, weil es die für mich sinnvollere Arbeitsweise bietet. Welches System man einsetzt, hängt von verschiedenen Faktoren ab. D.h. man kann nicht generell eines der Systeme als das bessere bezeichnen, ohne die Anforderungen definiert zu haben.
Sehr schön ist dies z.B. hier beschrieben:
https://www.ionos.de/digitalguide/websi ... vergleich/
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

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

Re: SVN verwenden

Beitrag von Warf »

m.fuchs hat geschrieben:Steile Thesen.


Was meinst du das git den Verisonskontrollsystemkrieg gewonnen hat oder das git alle mal besser als SVN ist?
Das erste ist denke ich kaum zu bestreiten, und mit SVN kann man nicht lokal arbeiten, was SVN (zumindest für das was der Threadersteller vorhat) ausschließt

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: SVN verwenden

Beitrag von m.fuchs »

Warf hat geschrieben:
m.fuchs hat geschrieben:Steile Thesen.

Was meinst du das git den Verisonskontrollsystemkrieg gewonnen hat oder das git alle mal besser als SVN ist?

Beides.

Warf hat geschrieben:Das erste ist denke ich kaum zu bestreiten,

Belege?

Warf hat geschrieben:und mit SVN kann man nicht lokal arbeiten, was SVN (zumindest für das was der Threadersteller vorhat) ausschließt

Unfug: http://www.thinkplexx.com/learn/howto/s ... ep-by-step
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: SVN verwenden

Beitrag von MacWomble »

Warf hat geschrieben:... mit SVN kann man nicht lokal arbeiten, was SVN (zumindest für das was der Threadersteller vorhat) ausschließt


Wie kommst du denn darauf? Natürlich geht das, sogar ausgezeichnet! (Würde ich auch nicht anders machen wollen oder im Extremfall nur auf eigenen Servern.)

Ebenso lassen sich in SVN Forks erstellen und auch wieder zusammenführen. Der wesentliche Unterschied besteht in der Verwaltung der Repositories.
Bei GIT werden in den Repos nur 'Änderungen' verwaltet, keine vollständigen Dateien wie bei SVN. Das kann ein Sicherheitsrisiko darstellen, wenn man nich vorsichtig ist und GIT auch wirklich verstanden hat.
Auch bei der Projektverwaltung hat m.E. SVN die Nase vorn, da nicht automatisch Dateien und Verzeichnisse verändert oder gelöscht werden und die Bedienung deutlich einfacher und sicherer ist.
SVN ist damit für kleinere Entwicklerkreise vermutlich die deutlich bessere Lösung.

Aber letztendlich: Es kommt immer darauf an, was man mit der Software vor hat und wie viel (unnötige) Arbeit man sich aufhalsen möchte. Beide Systeme haben vor- und Nachteile, je nach Einsatzszenario.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

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

Re: SVN verwenden

Beitrag von Warf »

MacWomble hat geschrieben:Wie kommst du denn darauf? Natürlich geht das, sogar ausgezeichnet! (Würde ich auch nicht anders machen wollen oder im Extremfall nur auf eigenen Servern.)

Ebenso lassen sich in SVN Forks erstellen und auch wieder zusammenführen. Der wesentliche Unterschied besteht in der Verwaltung der Repositories.

Klar kann man mit SVN Forks erstellen und Zusammenführen, das kann ich auch mit Download und KDiff3, in git kann ich das alles in einem repository mit sehr wenigen zeilen machen.

Warum ich davon ausgehe das das git für ihn besser geeignet ist, so wie ich es verstehe will er lokal auf dem repository arbeiten. Git kann das SVN nicht. Er kann mit SVN ein lokales Repository kopieren, dann muss er aber beide vorhalten. In git cloned er das repository und arbeitet Lokal so einfach. Zentralisierte Versionskontrollsysteme haben bestimmt auch ihre vorteile, aber sie sind einfach nicht zum lokalen arbeiten gemacht.

MacWomble hat geschrieben:Bei GIT werden in den Repos nur 'Änderungen' verwaltet, keine vollständigen Dateien wie bei SVN. Das kann ein Sicherheitsrisiko darstellen, wenn man nich vorsichtig ist und GIT auch wirklich verstanden hat.


Ich glaub du vertauschst das grade, git ist technisch nicht auf Source code ausgelegt, und commits speichern die vollständigen dateien (bzw besser gesagt snapshots des dateisystems). SVN hingegen speichert diffs (oder reverse diffs) und nur periodisch ganze Snapshots (Siehe hier und hier)
MacWomble hat geschrieben:Auch bei der Projektverwaltung hat m.E. SVN die Nase vorn, da nicht automatisch Dateien und Verzeichnisse verändert oder gelöscht werden und die Bedienung deutlich einfacher und sicherer ist.
SVN ist damit für kleinere Entwicklerkreise vermutlich die deutlich bessere Lösung.


Was meinst du mit automatisch Dateien und Verzeichnisse ändern? Bei der bedienung bin ich voll bei dir, was sich der Torvalds da ausgedacht hat ist ziemlich schrottig

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: SVN verwenden

Beitrag von MacWomble »

Was ich meinte war z.B. dass ich mit SVN ein Projektverzeichnis anlegen kann. Das ist i.d.R. eine Verzeichnisstruktur, welche noch nicht unbedingt Dateien enthält. Bei Git werden aber leere Ordner gelöscht. Für mich ist das alleine schon ein KO-Kriterium. Auch liest man immer wieder davon, dass Dateien im GIT verloren gehen können - so etwas darf in einer Versionsverwaltung definitiv nicht passieren.

Lokal arbeiten heißt für mich, dass ich das Repo bei mir liegen habe und nicht (zwangsläufig) im Netz. Ich checke aus um zu ändern und ein um die Änderung zu übernehmen.
Das was du mit lokal meinst ist aber verteiltes arbeiten!
GIT setzt quasi eine Versionskontrolle auf die Versionskontrolle (Zentral auf Lokal 'verteilt'). So können mehrere Leute an der selben Datei arbeiten und die einzelnen Änderungen nachher aus den verteilten Repos zusammen führen.
Das geht bei SVN so nicht. Ich halte das auch nicht unbedingt für eine sinnvolle Lösung wenn mehrere Leute an der selben Datei gleichzeitig ändern.
Bei SVN gibt es hier die Locks, die verhindern, dass mehrere Leute gleichzeitig Änderungen einführen.
Außerdem kann die Zugriffsberechtigung nur bei SVN pfadbasiert gesteuert werden wo hingegen GIT nur auf gesamte Verzeichnisse beschränken kann.

Laut Beschreibungen speichert SVN Dateien und GIT Inhalte!

Wie gesagt: Jedes System hat Stärken und Schwächen und das Szenario entscheidet.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

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: SVN verwenden

Beitrag von af0815 »

MacWomble hat geschrieben:Bei Git werden aber leere Ordner gelöscht. Für mich ist das alleine schon ein KO-Kriterium. Auch liest man immer wieder davon, dass Dateien im GIT verloren gehen können - so etwas darf in einer Versionsverwaltung definitiv nicht passieren.

Passiert auch nicht. Du hast nur die Möglichkeit dazu :-) Es gibt im GIT einige Möglichkeiten das Repository auf gewisse Stände zurückzusetzen, dabei kann man natürlich a) Die Kontrollstrukturen beschädigen b) den falschen Zweig rückrollen c) nicht wissen was man tut d) Sich gegen das falsche Repository syncen und dabei was erzwingen..

Bei SVN sind gewisse Möglichkeiten halt nicht vorhanden und damit die Fehlerquelle größer. Mit GIT zu arbeiten ist zu vergleichen mit Pointern in Pascal. Man kann viel erreichen, aber auch mal einen falschen Cast machen. geht ganz schnell - echt :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: SVN verwenden

Beitrag von MacWomble »

af0815 hat geschrieben:
MacWomble hat geschrieben:Bei SVN sind gewisse Möglichkeiten halt nicht vorhanden und damit die Fehlerquelle größer.

Du meintest bestimmt geringer?
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

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: SVN verwenden

Beitrag von af0815 »

ja, so war es gedacht.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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: SVN verwenden

Beitrag von mischi »

Wenn ich muss, nehm ich git, ansonsten svn, weil sich meine Erfahrungen mit git mit diesem Rant hier decken: https://stevebennett.me/2012/02/24/10-t ... about-git/ und dieser Karikatur: https://xkcd.com/1597/

Für bestehende Projekte mit svn ist auch das Statement für fpc interessant: http://wiki.freepascal.org/git_migration

Das Argument für git mit den lokalen commits hat zunehmend weniger Gewicht, weil man zunehmend besser Netz hat. Das hängt natürlich sehr von der eigenen Umgebung ab.

So weit ich weiss, kann man mit git keine sub-directories aus-checken, sondern immer nur das ganze repository.

Git ist eher für die Profis. Als Newbie ist es mir mehrmals gelungen, mein lokales Repository in einen Zustand zu manövrieren, wo mir selbst Profis nicht mehr weiterhelfen konnten und nur eines übrig blieb: Mögliche Änderungen woanders hin kopieren, das ganze repository löschen, neuer checkout und die Änderungen vorsichtig und händisch einpflegen. Dies sollte eine ernstzunehmende Warnung sein.

MiSchi.
MiSchi macht die fink-Pakete

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: SVN verwenden

Beitrag von MacWomble »

mischi hat geschrieben:... Git ist eher für die Profis. ...


Gerade für Profis kann es absolut nicht angehen, dass durch einen simplen Befehl das komplette Repo zerstört wird !

GIT ist somit für Abenteurer und SVN für Profis :twisted:
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

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

Re: SVN verwenden

Beitrag von Warf »

MacWomble hat geschrieben:Gerade für Profis kann es absolut nicht angehen, dass durch einen simplen Befehl das komplette Repo zerstört wird !:


Den einen Befehl der das repo kaputt macht will ich sehen. Du musst mindestens einen Force Push machen, wogegen der Master branch meist eh protected ist. Und wenn du dir nicht ziemlich sicher bist wirst do wohl kaum ausversehen mal die Protection aufheben, einen Force Push machen, und danach die Protection wieder aktivieren.

Sowas macht man im vollen Bewusstsein, bzw wenn man sich das nicht zutraut muss man es auch gar nicht machen. Man kann got commits reverten und damit die History überarbeiten ohne vorige commits kaputt zu machen, wenn man unsicher ist kann man immer darauf zurückgreifen

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: SVN verwenden

Beitrag von MmVisual »

Ich verwende seit Jahren SVN und bin damit sehr zufrieden.
Per TortoiseSVN ist das ganze sehr einfach bedienbar und alles in Windows Dialogen gefasst, ich musste nie eine Kommandozeile eingeben.
Der Server ist eine Synology Discstation.

Ich hatte mal ein TortoiseGIT in Benutzung, aber das ständige Get/Push und doppelte rumklicken bis endlich der aktuelle Code geladen war, war mir zu nervig. SVN ist da deutlich anwendungsfreundlicher. Auch gibt es beim GIT noch viele extra Optionen, die ich weder verstehen will, noch verstehe und somit immer ein Restrisiko bergen doch was falsch zu machen, das ist bei SVN alles viel leichter.

Wer einfach nur sein Code sichern will, mit Kommentare und mittels DIFF die Änderungen überprüfen möchte, ist bei SVN gut aufgehoben. Ich arbeiten von mehreren PC's aus und das zusammen führen unterschiedlicher Änderungen klappt auch gut.

Branches und so ein Zeug ist wohl nur dann Sinnvoll wenn man unterschiedliche Versionen einer SW erzeugen möchte, die man hinterher wieder zusammen bringen will, was wohl nur bei hoch komplexen Programmen Sinnvoll ist (ich hatte noch nie das Bedürfnis).

Meine Meinung.

Grüße Markus.
EleLa - Elektronik Lagerverwaltung - www.elela.de

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: SVN verwenden

Beitrag von MacWomble »

Falls es von Interesse ist:
Da ich unter Linux arbeite, verwende ich pySVN als GUI. Das bietet mir alles, was ich brauche und funktioniert reibungslos.
Ich habe auch das Lazarus-plugin für SVN im Einsatz gehabt, aber dieses vereinfacht nichts und bringt mir damit keine Vorteile.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: SVN verwenden

Beitrag von fliegermichl »

Hallo zusammen,

ich arbeite schon lange mit Git und finde es Klasse. Die Branches verwende ich auch gerne.

Ich habe ein recht grosses Projekt an dem ich schon seit mehr als 15 Jahren arbeite. Wenn da ein größerer Umbau oder eine Erweiterung gemacht wird, dann mache ich einen neuen Branch auf.

Wenn jetzt mein Kunde anruft und einen Fehler im Programm gefunden hat. Dann mache ich

Code: Alles auswählen

 
git commit -a -s -m"Aktuellen Stand speichern"
git checkout master
 


Dann sind auf der Stelle sämtliche Änderungen weg, gelöschte Dateien wieder da, neue Dateien nicht mehr usw. Ich kann dann in aller Ruhe den Fehler suchen und korrigieren.
Wenn das getan ist, gibt es ein

Code: Alles auswählen

 
git commit -a -s -m"Fehler Blabla korrigiert"
git checkout SuperDuper
git merge master
 


und schwups bin ich wieder in meinem aktuellen Stand und auch der Fehler ist in meiner Version behoben.
Ist dann die neue SuperDuper Änderung (egal wie komplex) fertig und getestet, wird

Code: Alles auswählen

 
git commit -a -s -m"Neue SuperDuper Aenderung ist fertig"
git checkout master
git merge SuperDuper
git branch -d SuperDuper
 


Nun gibt es den separaten Branch nicht mehr und alle Änderungen die ich gemacht hab sind im Masterzweig drinnen.
Sicher muss man etwas tippen aber wenn man das als Programmierer nicht kann/will ist man wohl im falschen Job.

Viele Grüße
Michael

Antworten