Autor |
Beitrag |
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 01.02.14 23:43
Hallo,
nachdem gerade erst wieder jemand meinte er brauche keine Versionsverwaltung, da er ja nur hobbymäßig entwickele und so etwas auch gar nicht kenne, möchte ich hier einmal kurz an Bildern zeigen was so eine Versionsverwaltung eigentlich macht und vor allem wie man sie sich auch selbst neu einrichtet.
Die Bilder hoste ich extern, da hier nur drei Anhänge pro Post möglich sind.
Benötigt werden:
- Der Server, in dem die Dateiversionen verwaltet werden:
Hier benutze ich den VisualSVN Server, da er unter Windows am einfachsten zu installieren und zu nutzen ist und zudem in einer kostenlosen Version bereitsteht.
- Ein Tool, mit dem man auf diesen Server zugreifen kann:
Das ist hier TortoiseSVN, das direkt in den Windows Explorer integriert wird. Neuere Delphiversionen haben dafür bereits eine integrierte Unterstützung.
Überblick über die Themen:
- Installation des Servers
- Installation des Clients
- Benutzung (Einchecken, Auschecken, ...)
- Ein besseres Vergleichstool
Ich hoffe dieser kurze Überblick hilft dabei zu verstehen warum eine Versionsverwaltung jedem hilft, ob man beruflich entwickelt oder das als Hobby betreibt.
// EDIT:
Ihr findet hier nun noch eine Anleitung zur Aktualisierung der SVN Version und zum Einbau der Blame Bar in Delphi XE5 selbst:
www.entwickler-ecke....ewtopic.php?p=683834
Zuletzt bearbeitet von jaenicke am So 02.02.14 13:36, insgesamt 1-mal bearbeitet
Für diesen Beitrag haben gedankt: glotzer, Jann1k, Marc.
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 01.02.14 23:44
1. Installation des Servers
Der Server kann auf www.visualsvn.com/server/download/ heruntergeladen werden:
Bei der Installation genügt die kostenlose Standard Edition:
Nach der Installation und dem Start des Servers kann dort ein neues Repository für die Projekte angelegt werden. Für kleine Projekte genügt der Einfachheit halber auch ein einzelnes gemeinsames Repository. Das hat den Vorteil, dass man gemeinsame Units aller Projekte direkt mit im selben Repository halten kann:
Nach der Eingabe eines Namens für das Repository (z.B. projects) und dem Abnicken der zu erstellenden Struktur wird der Erfolg gemeldet. Das Repository kann nun benutzt werden. Die Adresse wird der Einfachheit halber auch gleich angezeigt und kann direkt kopiert werden:
Aber halt. Wer darf denn überhaupt drauf zugreifen? Ja, es wäre sinnvoll auch noch einen User anzulegen:
Und auch ein Passwort macht Sinn:
Das war es auch schon auf Serverseite.
Zuletzt bearbeitet von jaenicke am Mo 22.07.19 19:52, insgesamt 1-mal bearbeitet
Für diesen Beitrag haben gedankt: Jann1k
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 01.02.14 23:44
2. Installation des Clients
Die Installation des Clients ist noch einfacher. Einfach auf der Downloadseite unter tortoisesvn.net/downloads.de.html die 32-Bit oder 64-Bit Version herunterladen, je nachdem was für ein Betriebssystem lokal genutzt wird:
Und installieren, wobei es durchaus Sinn macht die Kommandozeilentools mit zu installieren:
Das war es auch schon. Ein Neustart macht Sinn, damit die Erweiterung im Windows Explorer auch die Statusicons korrekt anzeigt. Funktionieren tut es aber auch ohne.
Zuletzt bearbeitet von jaenicke am Mo 22.07.19 19:54, insgesamt 1-mal bearbeitet
Für diesen Beitrag haben gedankt: Jann1k
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 01.02.14 23:45
3. Benutzung
Nun zum wichtigsten Teil, der Benutzung eines solchen Repositories. Die prinzipielle Funktionsweise sieht so aus, dass man die Dateien auf den Server hochlädt (das nennt sich einchecken) und bei jeder Änderung dort aktualisiert, wobei man normalerweise als Kommentar angibt was man überhaupt geändert hat. Diese Informationen werden auf dem Server gespeichert, so dass man jederzeit im Log nachschauen kann was sich bei jeder Version jeder Datei geändert hat und was man dazu geschrieben hatte. Jede Version kann auch jederzeit vom Server heruntergeladen werden (das nennt sich auschecken).
Zuerst müssen wir das Repository auschecken:
Dafür geben wir die Adresse des Servers und das Ziel auf der Festplatte an. Das sollte an der Stelle liegen, an der ihr sonst auch eure Quelltexte habt. Ob in den eigenen Dokumenten oder gleich auf einer eigenen Partition (wie ich es mache) spielt dabei natürlich keine Rolle. Es sollte nur nicht in dem Verzeichnis sein, das ihr im Server als Repository-Pfad angegeben habt:
Das Passwort eingeben:
Und fertig:
Dann fangen wir einmal an zu programmieren. Zunächst habe ich eine leere VCL-Formularanwendung erstellt. Nun füge ich diese erste Version dem Repository hinzu:
Und checke sie ein indem ich den Commit starte:
Dort sehe ich nun zur Bestätigung was an den Server übertragen werden wird und kann das bestätigen.
Nun habe ich einen Button hinzugefügt, der ein ShowMessage aufruft. Also starte ich den Commit erneut und sehe die Änderungen:
Wenn ich auf die Dateien doppelklicke, sehe ich genau die Änderungen:
Die Änderungen sehen korrekt aus, also gebe ich einen passenden Kommentar ein und checke ein:
Nun möchte ich gern sehen was eigentlich passiert war. Also lasse ich mir das Log anzeigen:
Und kann dort alle Details zu den bisherigen Vorgängen sehen:
Wenn ich dort einen Vorgang markiere, kann ich dazu die modifizierten Dateien sehen und per Doppelklick wieder anzeigen lassen was sich in genau dieser Version geändert hat.
Zuletzt bearbeitet von jaenicke am Mo 22.07.19 19:54, insgesamt 1-mal bearbeitet
Für diesen Beitrag haben gedankt: Jann1k
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 01.02.14 23:45
Noch ein Wort zu dem Vergleichstool:
Ich selbst und auch wir in der Firma nutzen natürlich nicht das abgebildete Tool, da es einfach zu unübersichtlich ist. Viel besser ist dafür Beyond Compare. Das kostet 30 Dollar, aber die lohnen sich absolut, wenn man viel damit arbeitet, und im Vergleich zu anderen Entwicklungstools ist das ja auch wirklich günstig:
www.scootersoftware.com/
So sieht z.B. eine sinnlose Änderung am allseits bekannten Nemp aus:
Zuletzt bearbeitet von jaenicke am Mo 22.07.19 19:55, insgesamt 1-mal bearbeitet
Für diesen Beitrag haben gedankt: Jann1k
|
|
Jann1k
Beiträge: 866
Erhaltene Danke: 43
Win 7
TurboDelphi, Visual Studio 2010
|
Verfasst: So 02.02.14 09:45
Vielen Dank für diese Einführung in SVN. Ich hatte SVN bisher nur als Eclipse Plugin genutzt, vllt. wäre es mal wirklich an der Zeit das auch für meine Delphi Projekte zu machen.
|
|
Marc.
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: So 02.02.14 12:01
Vielen Dank für die Einführung. Allerdings gibt es noch eine weitere Versionsverwaltung die meiner Meinung nach fürs Programmieren wesentliche Vorteile gegenüber SVN bietet und zumindest zu nennen wäre: Git.
Einige Aspekte, die git mehr qualifizieren als SVN, nannte auch letztes Jahr das Cern (LHC), das von SVN zu Git wechselte. Dazu das PDF aus der Präsentation, die eine kurze Einführung zu Git und eine Begründung für den Wechsel aus deren Sicht beinhaltet.
Für den schnellen Einstieg lassen sich Open-Source Projekte z.B. auf github kostenlos hosten. Private Repositories gibt es dort allerdings erst ab 5€ aufwärts.
Lokal mit XAMPP oder sofern allgemein einen Linux-Webserver sein Eigen nennt, kann man sich dort natürlich auch selbst mit - um einmal nur zwei zu nennen, es gibt wirklich viele - Gitweb einen Repository-Browser oder mit GitLab einen github Nachbau einrichten. Auch gibt es Git selbstverständlich auch als Eclipse Plugin etc.
Zuletzt bearbeitet von Marc. am So 02.02.14 12:34, insgesamt 1-mal bearbeitet
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 02.02.14 12:07
Wenn es einen einfachen Windows Installer oder zumindest eine gute Anleitung und einen stabilen Windows Dienst dafür geben würde, wäre ich Git auch gar nicht abgeneigt...
Weder beruflich noch privat kommt für mich bzw. uns ein fremder Hoster oder ein Linux-Server dafür in Frage.
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: So 02.02.14 20:26
jaenicke hat folgendes geschrieben : | Wenn es einen einfachen Windows Installer oder zumindest eine gute Anleitung und einen stabilen Windows Dienst dafür geben würde, wäre ich Git auch gar nicht abgeneigt... |
Braucht ihr das Web-GUI-Zeugs dafür? Git braucht keinen Server (also nicht nur "funktioniert auch ohne" wie SVN-FSFS, sondern Server sind eh nur extra) funktioniert auch wunderbar auf simplen Verzeichnissen oder über WebDAV. Ich hab zum Beispiel einige Remotes von Uni-Zeugs auf einem USB-Stick.
Ich weiß allerdings nicht, obs die im anderen Tutorial erwähnte IDE-Integration so schön auch für Git gibt, das wäre vermutlich der einzige Grund der mich dazu bewegen könnte SVN überhaupt noch einzusetzen. Es ist immerhin 2014, nicht 2004
Aber hey, SmartGit kostet jetzt auch nicht die Welt.
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
vagtler
Beiträge: 96
Erhaltene Danke: 24
Delphi 2010, C# (VS 2012), Objective-C, Java
|
Verfasst: Mo 03.02.14 08:10
Martok hat folgendes geschrieben : | [...] Aber hey, SmartGit kostet jetzt auch nicht die Welt. |
Und www.sourcetreeapp.com/ nix.
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 03.02.14 09:01
Die Clients sind ja gar kein Problem. Das macht Tortoise für CVS, SVN, Git und Hg sehr gut.
|
|
vagtler
Beiträge: 96
Erhaltene Danke: 24
Delphi 2010, C# (VS 2012), Objective-C, Java
|
Verfasst: Mo 03.02.14 10:54
TortoiseGit mit den genannten Clients vergleich zu wollen ist aber sehr vermessen.
Und der "Server" ist ja erst recht kein Problem - es gibt ja keinen...
|
|
OlafSt
Beiträge: 486
Erhaltene Danke: 99
Win7, Win81, Win10
Tokyo, VS2017
|
Verfasst: Mo 03.02.14 11:44
Ich vermisse in dem Tutorial zwei Kleinigkeiten.
Keinigkeit 1: Was ist mit bestehenden Projekten ?
So habe ich mich am Jahresanfang auf eigene Füße gestellt und trage mich schon länger mit dem Gedanken, meine Projekte auf einem kleinen Serverchen in ein SVN zu stecken. Allerdings sind dies fast ausschließlich schon laufende Dinge, stellenweise über Jahre... Wie behandelt man also schon bestehende Projekte ?
Kleinigkeit 2: Wie läuft das ganze mit Delphi ?
Fände ich wesentlich interessanter als ein Glaubenskrieg Git vs. SVN. Ich halte es da wie jaenicke - gibts nix für Windows oder gehen die Sourcen "nach draußen", kommts nicht ins Haus.
Just gesehen, gibts ein Extra-Tutorial für. Danke dafür !
_________________ Lies, was da steht. Denk dann drüber nach. Dann erst fragen.
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 03.02.14 13:51
OlafSt hat folgendes geschrieben : | Keinigkeit 1: Was ist mit bestehenden Projekten ?
So habe ich mich am Jahresanfang auf eigene Füße gestellt und trage mich schon länger mit dem Gedanken, meine Projekte auf einem kleinen Serverchen in ein SVN zu stecken. Allerdings sind dies fast ausschließlich schon laufende Dinge, stellenweise über Jahre... Wie behandelt man also schon bestehende Projekte ? |
Da gibt es eigentlich nichts Besonderes. Wenn du bisher ganz ohne Versionsverwaltung arbeitest, checkst du die Projekte einfach in seinem jetzigen Stand in ein Repository ein und arbeitest von da an damit.
Oder gibt es noch konkrete andere Fragen dazu?
Denn wenn du bisher keine Versionsinformationen zu bestimmten Änderungen des Quelltextes hast, kannst du die ja auch nicht nachträglich generieren. Insofern kannst du nur einen Stand "aktuell" einchecken und von da die einzelnen Änderungen protokollieren.
|
|
OlafSt
Beiträge: 486
Erhaltene Danke: 99
Win7, Win81, Win10
Tokyo, VS2017
|
Verfasst: Mo 03.02.14 19:06
Oh, ich dachte es gäbe da noch spezielle Vorbereitungen, wenn man laufende Projekte neu in ein VCS überführen will. Aber dem ist offenbar nicht so, ergo alles prima.
_________________ Lies, was da steht. Denk dann drüber nach. Dann erst fragen.
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 05.02.14 10:54
Martok hat folgendes geschrieben : | Braucht ihr das Web-GUI-Zeugs dafür? Git braucht keinen Server (also nicht nur "funktioniert auch ohne" wie SVN-FSFS, sondern Server sind eh nur extra) funktioniert auch wunderbar auf simplen Verzeichnissen oder über WebDAV. |
Im SVN hängt bei uns am Server ja noch viel mehr dran. Ein Commit-Hook analysiert z.B. die Kommentare um diese wiederum automatisiert und in Echtzeit aufbereitet zur Verfügung zu stellen. Der Commit-Dialog in Delphi wiederum ist eine angepasste Maske, in die die Informationen eingegeben werden können und in einem speziellen Format als Kommentar gespeichert werden.
Wie sich das sinnvoll mit Git oder Mercurial auf einem Windows-Server machen lässt, habe ich bisher noch nicht herausfinden können. Der Server an sich funktioniert zwar, wenn auch mit Aussetzern was die Erreichbarkeit angeht, aber so etwas konnte ich da bisher nicht finden. Und als simples Verzeichnis dürfte es unmöglich sein.
|
|
OlafSt
Beiträge: 486
Erhaltene Danke: 99
Win7, Win81, Win10
Tokyo, VS2017
|
Verfasst: Mi 05.02.14 11:55
Wie sieht es mit dem Betriebssystem aus. Reicht eine ungenutzt herumliegende Win81-Lizenz aus - oder denkt man doch lieber über einen Windows Home Server oder gar 2008R2 nach ?
Ich hab von Server-Systemen wenig Plan, verzeiht also meine blöden Fragen
_________________ Lies, was da steht. Denk dann drüber nach. Dann erst fragen.
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 05.02.14 13:26
Da reicht eine normale Windows-Lizenz aus solange du nicht mit vielen Clients drauf zugreifst.
Wenn du nur selbst auf einem PC damit arbeitest, kannst du den Server (eine ordentliche Datensicherung vorausgesetzt) auch auf deinem eigenen Rechner installieren. Das ist eher nicht die ideale Konfiguration, aber abgesehen von der notwendigen Datensicherung gibt es auch keine direkten Nachteile.
|
|
OlafSt
Beiträge: 486
Erhaltene Danke: 99
Win7, Win81, Win10
Tokyo, VS2017
|
Verfasst: Di 11.02.14 14:25
So, ich habs getan Kleiner Rechner aufgesetzt, ins Netz geklemmt, Windows81 *brech* draufgemacht, Visual SVN Server draufgespielt und schon mal einen Benutzer und drei Repositories angelegt.
Auf der Entwicklermaschine XE4 gestartet, Projekt geöffnet, Rechtsklick in den Projektmanager "Der Versionskontrolle hinzufügen". Ich gebe die Adresse ein (Hier: https://bla/svn/Project) und klicke "Importieren". Es dauert eine Weile, dann meldet Windows, das Embarcadero RAD Studio nicht mehr funktioniert und Online nach einer Lösung gesucht wird - oder kurz: Delphi ist böse gecrasht.
Ehrlich gesagt kann man da echt nicht viel falsch machen und ich bin einigermaßen ratlos. Habe ich irgendein Update oder ein Tool vergessen ? Noch ist alles frisch auf dem Server und kann jederzeit vernichtet/neu aufgebaut werden.
_________________ Lies, was da steht. Denk dann drüber nach. Dann erst fragen.
|
|
Nersgatt
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Di 11.02.14 14:34
Nimm einfach Tortoise SVN. Das klinkt sich in den Windows-Explorer ein. Da reicht dann der Rechtsklick auf den Ordner -> Commit. Und fertig. Das funktioniert sehr gut.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
|