Entwickler-Ecke

Delphi Tutorials - Kurze Einführung in Versionsverwaltungen am Beispiel von SVN


jaenicke - So 02.02.14 00:43
Titel: Kurze Einführung in Versionsverwaltungen am Beispiel von SVN
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:

Überblick über die Themen:
  1. Installation des Servers [http://www.entwickler-ecke.de/viewtopic.php?p=683811#683812]
  2. Installation des Clients [http://www.entwickler-ecke.de/viewtopic.php?p=683811#683813]
  3. Benutzung (Einchecken, Auschecken, ...) [http://www.entwickler-ecke.de/viewtopic.php?p=683811#683814]
  4. Ein besseres Vergleichstool [http://www.entwickler-ecke.de/viewtopic.php?p=683811#683815]

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:
http://www.entwickler-ecke.de/viewtopic.php?p=683834


jaenicke - So 02.02.14 00:44

1. Installation des Servers

Der Server kann auf http://www.visualsvn.com/server/download/ heruntergeladen werden:

user defined image

Bei der Installation genügt die kostenlose Standard Edition:

user defined image

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:

user defined image

Nach der Eingabe eines Namens [http://www.familie-jaenicke.de/downloads/df/svn/04_visualsvn_repo_name.png] für das Repository (z.B. projects) und dem Abnicken der zu erstellenden Struktur [http://www.familie-jaenicke.de/downloads/df/svn/05_visualsvn_repo_structure.png] wird der Erfolg gemeldet. Das Repository kann nun benutzt werden. Die Adresse wird der Einfachheit halber auch gleich angezeigt und kann direkt kopiert werden:

user defined image

Aber halt. Wer darf denn überhaupt drauf zugreifen? Ja, es wäre sinnvoll auch noch einen User anzulegen:

user defined image

Und auch ein Passwort macht Sinn:

user defined image

Das war es auch schon auf Serverseite.


jaenicke - So 02.02.14 00:44

2. Installation des Clients

Die Installation des Clients ist noch einfacher. Einfach auf der Downloadseite unter http://tortoisesvn.net/downloads.de.html die 32-Bit oder 64-Bit Version herunterladen, je nachdem was für ein Betriebssystem lokal genutzt wird:

user defined image

Und installieren, wobei es durchaus Sinn macht die Kommandozeilentools mit zu installieren:

user defined image

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.


jaenicke - So 02.02.14 00: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:

user defined image

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:

user defined image

Das Passwort eingeben:

user defined image

Und fertig:

user defined image

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:

user defined image

Und checke sie ein indem ich den Commit starte:

user defined image

Dort sehe ich nun zur Bestätigung was an den Server übertragen werden wird und kann das bestätigen.

user defined image

Nun habe ich einen Button hinzugefügt, der ein ShowMessage aufruft. Also starte ich den Commit erneut und sehe die Änderungen:

user defined image

Wenn ich auf die Dateien doppelklicke, sehe ich genau die Änderungen:

user defined image
user defined image

Die Änderungen sehen korrekt aus, also gebe ich einen passenden Kommentar ein und checke ein:

user defined image

Nun möchte ich gern sehen was eigentlich passiert war. Also lasse ich mir das Log anzeigen:

user defined image

Und kann dort alle Details zu den bisherigen Vorgängen sehen:

user defined image

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.


jaenicke - So 02.02.14 00: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:
http://www.scootersoftware.com/

So sieht z.B. eine sinnlose Änderung am allseits bekannten Nemp aus:

user defined image


Jann1k - So 02.02.14 10: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. - So 02.02.14 13:01

Vielen Dank für die Einführung. Allerdings gibt es noch eine weitere Versionsverwaltung die meiner Meinung nach fürs Programmieren wesentliche Vorteile [http://blog.teamtreehouse.com/why-you-should-switch-from-subversion-to-git] gegenüber SVN bietet und zumindest zu nennen wäre: Git [http://git-scm.com/book].

Einige Aspekte, die git mehr qualifizieren als SVN, nannte auch letztes Jahr das Cern (LHC), das von SVN zu Git wechselte. Dazu das PDF [https://indico.cern.ch/getFile.py/access?contribId=0&resId=0&materialId=slides&confId=246803] 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 [https://github.com/] 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 [https://git.wiki.kernel.org/index.php/Gitweb] einen Repository-Browser oder mit GitLab [http://gitlab.org/] einen github Nachbau einrichten. Auch gibt es Git selbstverständlich auch als Eclipse Plugin [http://www.eclipse.org/egit/] etc.


jaenicke - So 02.02.14 13: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 - So 02.02.14 21:26

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
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 [http://www.entwickler-ecke.de/viewtopic.php?t=112615] 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 :lol:
Aber hey, SmartGit kostet jetzt auch nicht die Welt.


vagtler - Mo 03.02.14 09:10

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
[...] Aber hey, SmartGit kostet jetzt auch nicht die Welt.

Und http://www.sourcetreeapp.com/ nix. ;)


jaenicke - Mo 03.02.14 10:01

Die Clients sind ja gar kein Problem. Das macht Tortoise für CVS, SVN, Git und Hg sehr gut. ;-)


vagtler - Mo 03.02.14 11: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 - Mo 03.02.14 12: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 user profile iconjaenicke - 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 !


jaenicke - Mo 03.02.14 14:51

user profile iconOlafSt hat folgendes geschrieben Zum zitierten Posting springen:
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 - Mo 03.02.14 20: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.


jaenicke - Mi 05.02.14 11:54

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
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 - Mi 05.02.14 12: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 ;)


jaenicke - Mi 05.02.14 14: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 - Di 11.02.14 15: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.


Nersgatt - Di 11.02.14 15: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.


jaenicke - Di 11.02.14 16:07

Einfacher ist es dennoch direkt in Delphi...

Tortoise habe ich trotzdem zusätzlich drauf, das macht Sinn. Ändert aber nix dran, dass es in Delphi direkt gehen sollte.

Da du das Hinzufügen direkt machen kannst, hast du das aber ja wohl auch, denn sonst hättest du ja nicht vorher auschecken können und ohne kann man nichts hinzufügen. Hast du die SVN Version in Delphi auch parallel aktualisiert? Sonst ist das Repository Format nicht kompatibel. Prinzipiell sollte das analog wie in der oben genannten Anleitung für XE5 auch in XE4 gehen:
http://www.entwickler-ecke.de/viewtopic.php?p=683834

Probier doch einfach einmal Datei --> Aus der Versionskontrolle öffnen..., gib die URL an und klicke dann rechts auf den Repo Browser. Wenn du dann auf Load klickst, klappt das?


OlafSt - Di 11.02.14 22:21

Der Repo-Browser crasht Delphi genauso weg. Allerdings sind mir noch zwei DInge aufgefallen, die ich morgen nochmal testen werde. Als erstes funktioniert DNS in meinem LAN nicht (dunno why), also versuche ich es nochmal mit der IP-Adresse anstelle des Rechnernamens. Und als zweites werde ich natürlich das SVN-Modul in Delphi aktualisieren. Ich wußte doch, das ich da noch was vergessen hatte...

Wie dem auch sei, mit Tortoise funktionierts echt einwandfrei und mit ganzen 2 Mausklicks.

Eine Frage bleibt mir allerdings: Genügt es, einfach nur zu Comitten ? Dann könnte ich in der Anfangsphase, wo ich das auf sicher vergessen werde, tags drauf ja nachholen, ohne meine gemachten Änderungen auszulöschen.


jaenicke - Di 11.02.14 22:52

Wenn ich meine Änderungen einchecke bzw. committe, schaue ich jede Datei und jede Änderung durch (sprich per Doppelklick auf die Dateien im Commit-Dialog) und prüfe sie noch einmal im Kopf. Und ich sorge dafür, dass ich jede Änderung getrennt abschicke, damit der Kommentar auch gezielt zu der Änderung zugeordnet ist.

Wenn man nur alleine an einem Projekt arbeitet und nur eine Version pflegt, ist das sicher nicht so wichtig wie im Team. Es erleichtert die Verwaltung aber dennoch.
Heißt:
Ich würde nicht tageweise committen, sondern gleich richtig pro Änderung bzw. Feature. Dann vergisst man das auch nicht so leicht, wenn man es so bei kleineren Änderungen auch öfter am Tag macht. ;-)


OlafSt - Mi 12.02.14 00:29

Ich bin schon mal einen Schritt weiter. Wenn ich statt eines Rechnernamens die IP-Adresse angebe, dann crasht Delphi immerhin schon mal nicht mehr. Da muß wohl noch ein Exception-Handler nachgezogen werden ;)

Trotzdem funktioniert das ganze nicht. Ich habe auf dem SVN-Server ein Repository namens "ARC" eingerichtet. Dieses ist natürlich leer, denn die Sourcen sollen ja da erstmals hinein. Nun öffne ich in XE4 mein Projekt, der Rechtsklick im Projektmanager "Zur Versionskontrolle hinzufügen". Ich gebe dann die URL an (https://ipaddr/svn/ARC), prüfe das alle nötigen Files markiert sind und sage dann "Importieren".

Delphi antwortet darauf mit zwei Fehlern:
'https://ipaddr/svn' isn't the same repository as 'https://ipaddr/svn/ARC' und

Quelltext
1:
'D:\DXE4Projects' is not a working copy                    


Allerdings habe ich das schon angemahnte Update der Delphi-internen SVN-Unterstützung noch nicht gemacht, womöglich ist das der Grund für den Error.

Zitat:
Wenn man nur alleine an einem Projekt arbeitet und nur eine Version pflegt, ist das sicher nicht so wichtig wie im Team. Es erleichtert die Verwaltung aber dennoch.
Heißt:
Ich würde nicht tageweise committen, sondern gleich richtig pro Änderung bzw. Feature. Dann vergisst man das auch nicht so leicht, wenn man es so bei kleineren Änderungen auch öfter am Tag macht. ;-)


Noch arbeite ich allein an den Projekten. Aber einer meiner Auftraggeber, der gern mit mir die nächsten Jahre zusammenarbeiten will (die liebsten Kunden eines jeden Freelancers, aren't they ?), hat schon gedroht, eventuell mit einsteigen zu wollen. Allerdings nur in äußerst begrenztem Maße, hier mal ne Farbe ändern oder da ne Button-Beschriftung. Ergo muß ein SVN her, und umso froher schaute ich drein, als ich dieses Tut hier sah.

ich werde mir diese "Small Step Commit"-Strategie auch angewöhnen. Wird sich ganz sicher mal als nützlich erweisen.


jfheins - Mi 12.02.14 00:52

Ich glaube die normale Reihenfolge ist ungefähr so:

1. Repo anlegen
2. Working Copy auschecken
3. Dateien hinein
4. Commit

D.h. insbesondere erstmal eine leere working copy vom server holen! Versuch das mal :wink:


jaenicke - Mi 12.02.14 00:54

Der zweite Fehler ist nur eine Folge des ersten.

Ich würde dir raten das Repository einmal ohne Delphi im Windows Explorer auszuchecken und die Dateien auch dort hinzuzufügen wie ich es auch in der Beschreibung hier im Thread gemacht habe.


OlafSt - Mi 12.02.14 01:56

Ähnlich wie user profile iconjfheins es beschrieben hat, habe ich das auch "manuell" gemacht. Unangenehm ist dabei nur, das TortoiseSVN auf Teufel komm' raus ein leeres Verzeichnis zum auschecken haben will. Zur Übernahme eines bestehenden Projektes muß ich dann:

1. Repo anlegen
2. Verzeichnis des bestehenden Projektes umbenennen (D:\DXE4Projects\ARC -> D:\DXE4Projects\ARCx)
3. Verzeichnis D:\DXE4Projects\ARC neu anlegen
4. Auschecken
5. Files von D:\DXE4Projects\ARCx nach D:\DXE4Projects\ARC verschieben
6. D:\DXE4Projects\ARCx löschen (ist nun leer)
7. Add und dann Commit

Umständlich, wie ich meine, aber so what. Ich dachte, mit Delphi direkt wäre das einfacher, aber da hatte ich wohl zu große Hoffnungen ;) Egal, hauptsache ich kriegs ins SVN.


jaenicke - Mi 12.02.14 11:31

Du kannst auch einfach irgendwohin auschecken und von dort das versteckte Verzeichnis .svn in das Zielverzeichnis verschieben. Danach kannst du dort ganz normal Add usw. aufrufen.

// EDIT:
Wir haben allerdings die Verzeichnisstruktur im Repository neu angelegt, besser als in dem alten CVS-Repository, von dem aus wir migriert haben.


trm - Mo 16.06.14 23:44

Halli und Hallo.

Vielen Dank für diese schöne Anleitung, Sebastian.

Eine Frage habe ich jetzt noch.
Wie kann ich eine bestehende Versionsverwaltung löschen, um die dann erneut aufzubauen?

Also ich möchte alle Revisionen und auch die erste Head auf einen neuen Head setzen.

Danke und nette Grüße
Mathias


jaenicke - Di 17.06.14 07:53

Das einfachste dürfte sein das Repository im SVN Server Manager zu löschen und neu anzulegen.


trm - Di 17.06.14 20:25

Das ganze ist dann doch komischerweise nicht ganz so einfach gewesen.

Auf einmal hatte dann mein Projektordner einen neuen Unterordner bekommen, in dem eine Kopie des Projektes drin war.

Die ganze Sache ist dann doch irgendwie sehr konfus.

Bisher bin ich mit meinem RAR-Backup eigentlich auch ganz gut gefahren - klar, ohne DIFF. Aber im Zweifel wusste ich, was ich mache. Bei SVN bin ich im Moment noch ein wenig überfordert ;)

Liebe Grüße


jaenicke - Di 17.06.14 22:47

Dann hast du dorthin ausgecheckt vermute ich. Wenn du im Kontextmenü des Ordners unter TortoiseSVN auf Repository Browser gehst, siehst du auch wie die Dateien im Repository liegen. Die Struktur wird dann auch 1:1 so in den Zielordner gepackt, wenn du auscheckst.


Sylar - Do 19.02.15 12:03

Sehr schöne Einführung!

Danke!


baumina - Do 28.07.16 08:32

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconOlafSt hat folgendes geschrieben Zum zitierten Posting springen:
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.


Wenn ich die vorhandenen Delphiprojekte auf der Festplatte so anschaue, dann ist die Verzeichnisstruktur laut default immer so, dass Quelltexte und sonstiges im Verzeichnis liegen, in den Unterverzeichnissen Win32 und Win64 liegen die Kompilate und dann halt noch das Verzeichnis _history mit den Files, die Delphi da hin legt.

Du schreibst, dass ich nichts weiter tun muss als Vorhandenes einzuchecken ... hm, aber was? Das komplette Verzeichnis macht keinen Sinn. Wie gehe ich denn da vor?


Nersgatt - Do 28.07.16 08:40

Du solltest alles einchecken, was benötigt wird, um den Rest wieder her zu stellen (also z.B. keine Kompilate einchecken).
Die History brauchst Du auch nicht.

Alles was Du nicht brauchst, kannst Du auf "ignore" setzen.


baumina - Do 28.07.16 08:53

user profile iconNersgatt hat folgendes geschrieben Zum zitierten Posting springen:
Du solltest alles einchecken, was benötigt wird, um den Rest wieder her zu stellen (also z.B. keine Kompilate einchecken).
Die History brauchst Du auch nicht.

Alles was Du nicht brauchst, kannst Du auf "ignore" setzen.


Hm, ich bin bislang leider noch komplett mit dem Zeugs überfordert, mein Delphi meckert was von "ich kann den Tunnel nicht zu svn+ssh" aufbauen und crasht in verschiedenen svn-dlls, wenn ich beim Projekt rechte Maus klicke "zur Versionskontrolle hinzufügen". Versuche ich es über Tortoise muss ich mühsam jede einzelne Datei anklicken, die ich nicht einchecken will ... ich stell seit 2 Tagen das komplette Internet auf den Kopf, ist zum heulen, wenn man so an seine Grenzen stößt und im Internet nur so wenig zum Thema findet.

Mein Linux-Kollege hat mit SVN eingerichtet, der Aufbau des Aufrufs über Tortoise ist "svn+ssh://[Benutzer]@[IP-Adresse]/data/delphi/trunk", kann das Delphi vielleicht nicht mit dem ssh? Oder habe ich gestern beim rungemurkse laut Sebastians Anleitung wie man XE5 modifiziert was zerschossen?


jaenicke - Do 28.07.16 08:56

Gibt es wirklich jemanden, der die voreingestellten Ausgabeverzeichnisse nutzt?

Du kannst in Tortoise einfach mit rechts auf die Verzeichnisse Win32, _history usw. klicken und dann auf ignore. ;-)
Dann erscheinen die auch nicht mehr in der Liste.
Sinnvoll ist das zum Beispiel (in der Regel) auch pauschal für .dcu Dateien.

Die in Delphi integrierte Funktion würde ich zum ersten Hinzufügen nicht versuchen.


baumina - Do 28.07.16 09:14

Also ich hab auf meiner C-Platte nun ein Verzeichnis "delphi" mit grünem Haken, das hat ein Unterverzeichnis .svn, das ist wohl dann das ausgecheckte repository, wenn ich das richtig verstanden habe.

Ich gehe mal davon aus, dass ich alle Projektordner nun erst hier reinkopieren, um sie einchecken zu können. Wenn ich nun auf einem Projektordner "add" klicke, muss ich einzeln alles abhaken was ich nicht will. Gehe ich vor dem Add zum Win32-Verzeichnis, gibts kein ignore.

Wäre es nicht sinnvoll jetzt gleich alles richtig zu trennen, bevor man sich mit dem ignore-Kram rumschlägt? Wenn ja ... wie trenne ich sinnvoll?

P.S. gibt es eine deutsche Hilfe oder Version zu Subversion/Tortoise, um mal zu kapieren was da was macht?


erfahrener Neuling - Do 28.07.16 09:40

EDIT: Kommentar gelöscht


jaenicke - Do 28.07.16 10:50

user profile iconbaumina hat folgendes geschrieben Zum zitierten Posting springen:
Ich gehe mal davon aus, dass ich alle Projektordner nun erst hier reinkopieren, um sie einchecken zu können.
Kleiner Trick:
Du kannst auch den Unterordner .svn in das Verzeichnis mit deinen Projekten schieben. ;-)
Dann kannst du direkt hinzufügen. Das ist dann als hättest du dorthin dein Repository ausgecheckt.

Vielleicht hilft dir die globale ignore-Liste. Wenn du im Kontextmenü unter Tortoise SVN auf Settings gehst, findest du dort gleich auf der ersten Seite das "Global ignore pattern". Füge dort einfach mal hinzu: __history __recovery Win32 Win64


baumina - Mo 01.08.16 10:18

Das ssh-Problem konnte ich nun folgendermaßen lösen:

Ich habe in der Datei C:\Users\[User]\Appdata\Roaming\Subversion\config unter

[tunnels]
ssh = c:\\putty\\plink.exe

angegeben und nun klappts.