Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   SVN Server allgemein und Backups (https://www.delphipraxis.net/178938-svn-server-allgemein-und-backups.html)

RWarnecke 4. Feb 2014 18:24


SVN Server allgemein und Backups
 
Hallo zusammen,

Sebastian hat ja in der Entwickler-Ecke ein kleines Tutorial für den VisualSVN geschrieben. Da ich jetzt schon ein größeres Projekt angefangen habe und das zweite starten wird, wenn beim ersten die Beta-Tests gemacht werden, dachte ich mir, wäre eine Versionskontrolle vielleicht ja nicht schlecht. Ich habe aber dazu ein paar Fragen :
  1. Wenn ich das ganze drum herum von SVN richtig verstanden habe, arbeite ich ja immer lokal mit einem Repository, welches ich über einen Checkout erstellt habe. Wenn ich jetzt zum Beispiel eine neue Funktion eingebaut oder einen Fehler bereinigt habe, dann bringe ich das lokale Projekt über Commit wieder ins Repository. Ich hoffe diese kurze Umschreibung ist soweit richtig ?
  2. Wie und mit was werden bei euch ein Backup der Repositories erstellt ?
  3. Ich erstelle mir im Moment über den FinalBuilder immer wieder Kopien von den einzelnen Builds. In wie fern kann ich den Final Builder nutzen, um zum Beispiel ein Commit ins Repository zu erstellen ?
  4. Was wäre eurer Meinung besser, den SVN Client in der IDE zu nutzen oder die SVN Option im Final Builder ? Was für Vorteile und oder Nachteile haben diese beiden Varianten ?

Ich freue mich auf eine informative Diskussion.

Lemmy 4. Feb 2014 18:38

AW: SVN Server allgemein und Backups
 
hi,

zu 1.: ist so weit korrekt
zu 2.: mein Repository liegt auf meinem Linux-Server und damit habe ich schon das erste Backup (anderer Rechner, andere Festplatte). Weiterhin wird der Server regelmäßig gesichert - da ein SVN-Repository "nur" normale Dateien sind ist das ja auch kein Problem
zu 3. und 4.: FinalBuilder habe ich bisher nicht eingesetzt, nutze aber für meine Arbeit TortoiseSVN im Explorer, insbesondere da ich noch viele Projekte in alten IDEs habe (Delphi 5 und 7).

himitsu 4. Feb 2014 18:48

AW: SVN Server allgemein und Backups
 
Wenn du direkt auf das Server-Verzeichnis zugriff hast, dann kannst du das mit jedem beliebigen Programm backupen,
ansonsten gibt es neben der svn.exe auch eine für das Backup über's Netzwerk.

Im Prinzip kannst du den SVN-Klient parallel zu dem im delphi nutzen.
Wobei es sich große Dinge vermutlich über den Explorer einfacher erledigen lassen.

Aber eine kleine Datei von der Projektverwaltung schnell hochzuladen, das geht eigentlich recht gut, genauso wie das Changelog für die Dateien in der IDE genutzt werden können ... ist ja praktisch genauso, wie mit dem __histoy-Verzeichnis,nur daß dort automatisch auf's SVN zugegriffen wird.

vagtler 4. Feb 2014 18:48

AW: SVN Server allgemein und Backups
 
1. Ja.

2. Wir verwenden git, so dass wir immer automatisch auch räumlich getrennte Backups haben - ein nicht zu unterschätzender Vorteil von verteilten Quellcodeverwaltungssystemen. Darüber hinaus wird jede Nacht ein komplettes Backup unseres git-"Servers" gefahren - in einem anderen, ebenfalls räumlich getrennten Rechenzentrum.

3. Du meinst Kopien der Build-Artefakte? Die kann man natürlich auch per Action im Repository persistieren, ist aber eher ungewöhnlich, da ja gerade der Sinn einer vernünftigen CI- bzw. Build-Strategie die jederzeitige Reproduzierbarkeit eines ganz speziellen Build-Vorgangs ist.

4. Hier verstehe ich das "oder" nicht? Das eine hat doch nichts mit dem anderen zu tun? In der IDE arbeite ich an den Quellen des Produkt, im Build-Prozess werden die entsprechenden Änderungen ausgecheckt und als Ergebnis entsteht ein Produkt (also im Idealfall 8-)).

RWarnecke 4. Feb 2014 18:51

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von Lemmy (Beitrag 1246663)
zu 2.: mein Repository liegt auf meinem Linux-Server und damit habe ich schon das erste Backup (anderer Rechner, andere Festplatte). Weiterhin wird der Server regelmäßig gesichert - da ein SVN-Repository "nur" normale Dateien sind ist das ja auch kein Problem

Mit was sicherst Du die Repositories ?

Kann ich da zum Beispiel mit Filesync ganz einfach die Dateien auf eine andere Festplatte sichern und wenn die Platte mal in meinem Server kaputt geht die gesicherten Dateien wieder zurückspielen ?

himitsu 4. Feb 2014 18:56

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von RWarnecke (Beitrag 1246669)
Kann ich da zum Beispiel mit Filesync ganz einfach die Dateien auf eine andere Festplatte sichern und wenn die Platte mal in meinem Server kaputt geht die gesicherten Dateien wieder zurückspielen ?

Jupp.

Im prinzip kannst du da auch gern inkrementelle Backups machen, da für jede Revision eine neue Datei hinzukommt und die alten Revisionsdateien unverändert bleiben.

RWarnecke 4. Feb 2014 18:59

AW: SVN Server allgemein und Backups
 
Wäre es auch eine Möglichkeit einen kompletten Checkout über alle Revisionen zu machen und diesen dann als Backup zu nutzen ? Ich möchte halt immer ein Backup vom aktuellen Repository haben.

Auf dem Server wo ich den VisualSVN plane habe ich volle Admin-Rechte auf alles.

himitsu 4. Feb 2014 19:35

AW: SVN Server allgemein und Backups
 
Wie gesagt, du kannst entweder einfach das Verzeichnis kopieren, wo der Server alles drin speichert.

Oder du kannst das Backup via einem dieser Befehle erledigen.
Code:
svnadmin dump ...
svnadmin load ...
svnrdump dump ...
svnrdump load ...
svnsync ...
Letzeres müsste eine Syncronisierung zwischen zwei Servern/Repositories sein. (kannst du quasi für einen Spiegelserver benutzen)

Man könnte aber auch eine Erweiterung in den SVN-Server integrieren, womit der das Backup z.B. immer sofort macht, nachdem du etwas eingecheckt hast.

Lemmy 4. Feb 2014 20:43

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von RWarnecke (Beitrag 1246669)
Zitat:

Zitat von Lemmy (Beitrag 1246663)
zu 2.: mein Repository liegt auf meinem Linux-Server und damit habe ich schon das erste Backup (anderer Rechner, andere Festplatte). Weiterhin wird der Server regelmäßig gesichert - da ein SVN-Repository "nur" normale Dateien sind ist das ja auch kein Problem

Mit was sicherst Du die Repositories ?

Kann ich da zum Beispiel mit Filesync ganz einfach die Dateien auf eine andere Festplatte sichern und wenn die Platte mal in meinem Server kaputt geht die gesicherten Dateien wieder zurückspielen ?

ähm... rscyn auf 2 externe Festplatten im Wechsel. Wie gesagt: Das SVN-Repository sind im Grunde einfach Dateien... alle Revisionen auszuchecken und die zu sichern macht meiner Meinung weniger Sinn - da kommen viel zu viele Daten zusammen...

jfheins 4. Feb 2014 20:48

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von Lemmy (Beitrag 1246663)
zu 2.: mein Repository liegt auf meinem Linux-Server und damit habe ich schon das erste Backup

Stimmt eigentlich so nicht beim SVN. (bei git schon) WEIL: Auf dem Server ist das ganze Repo vorhanden, aber auf dem Client nur die Working-Copy . Um die Frage zu beantworten "was ist an dieser Datei in den letzten drei Monaten geändert worden" muss man bei SVN der Server befragen. Falls der flöten geht, ist auf den Clients im besten Fall der aktuelle Stand vorhanden, aber die Geschichte ist ziemlich endgültig vernichtet.
Also immer schön den Server backuppen ;-)

Zitat:

Wäre es auch eine Möglichkeit einen kompletten Checkout über alle Revisionen zu machen und diesen dann als Backup zu nutzen ? Ich möchte halt immer ein Backup vom aktuellen Repository haben.
Fände ich jetzt nicht sinnvoll. Du stellst dir einen Ordner vor mit vielen Unterordnern wie "Rev 1456", "Rev 1457" und "Rev 1458" ? Genau um sowas zusammen zu fassen gibt es ja Versionskontrolle. Die passende SVN Version ist beim Desaster-Recovery dann notwendig, sollte aber kein Problem darstellen.

RWarnecke 4. Feb 2014 21:06

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von jfheins (Beitrag 1246696)
Zitat:

Wäre es auch eine Möglichkeit einen kompletten Checkout über alle Revisionen zu machen und diesen dann als Backup zu nutzen ? Ich möchte halt immer ein Backup vom aktuellen Repository haben.
Fände ich jetzt nicht sinnvoll. Du stellst dir einen Ordner vor mit vielen Unterordnern wie "Rev 1456", "Rev 1457" und "Rev 1458" ? Genau um sowas zusammen zu fassen gibt es ja Versionskontrolle. Die passende SVN Version ist beim Desaster-Recovery dann notwendig, sollte aber kein Problem darstellen.

Also heißt das für mich, ich muss auf jeden Fall die Backup-Methoden nehmen, die mir der SVN Server zur Verfügung stellt. Ungefähr so, wie himitsu im Beitrag #8 geschrieben hat ?

jfheins 4. Feb 2014 21:29

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von RWarnecke (Beitrag 1246701)
Also heißt das für mich, ich muss auf jeden Fall die Backup-Methoden nehmen, die mir der SVN Server zur Verfügung stellt. Ungefähr so, wie himitsu im Beitrag #8 geschrieben hat ?

Müssen? Nein. Ich habe leider keinen eigenen SVN-Server. Aber von dem was ich gelesen habe, kannst du sowohl die svn-Befehle nehmen oder normale Kommandozeile. Also unter Windows copy oder robocopy.

Das "Problem" mit dem normalen Kopieren liegt wohl darin, dass dein Repo währenddessen unbedingt eingefroren sein muss. Falls jemand in genau dem Moment einen commit macht, kann das Backup beschädigt sein. Das ist der Vorteil von den SVN-Befeheln: Die erstellen garantiert eine konsistente Kopie.

Im Zweifel würde ich aus dem Grund svnadmin dump empfehlen, da sollte stets eine integere Kopie entstehen, und das ist es ja worauf es besonders ankommt.

vagtler 4. Feb 2014 21:38

AW: SVN Server allgemein und Backups
 
Auch wenn SVN natürlich besser als gar nichts ist, aber wenn man heutzutage über die erstmalige Einführung eines Quellcodeverwaltungssystems nachdenkt, warum dann nicht direkt auf ein verteiltes System wie git oder mercurial setzen?

Ich würde auf Teufel komm raus nicht mehr auf so ein vorsintflutliches Tool wie SVN zurück wollen.

himitsu 4. Feb 2014 23:08

AW: SVN Server allgemein und Backups
 
Wobei ich mich grade beim Git Frage, wozu ich ständig das ganze Repository mit mir rumschleppen soll?


Aber ja, man könnte auch via CheckOut/Export ein Repository mit mehreren Revisionen auschecken.
Zumindestens was die "wichtigstens" Punkte betrifft, aber wie schon erwähnt, werden die Daten dabei "vermehrt"
- Man muß nur genügend Tags/Branches anlegen, also praktisch innerhalb des Repository eine Art Kopie von ausgewählten Revisionen des Entwicklungsverzeichnisses.
Aber das hängt dann davon ab, ob/wie man seine Daten im Repository organisiert.

Ein richtiges Backup ist aber besser, da dann die Revisionsgeschichte nicht verloren geht.

RWarnecke 5. Feb 2014 04:38

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von vagtler (Beitrag 1246704)
Auch wenn SVN natürlich besser als gar nichts ist, aber wenn man heutzutage über die erstmalige Einführung eines Quellcodeverwaltungssystems nachdenkt, warum dann nicht direkt auf ein verteiltes System wie git oder mercurial setzen?

Ich würde auf Teufel komm raus nicht mehr auf so ein vorsintflutliches Tool wie SVN zurück wollen.

Bei meiner bisherigen Suche, habe ich noch kein Setup gefunden, womit ich git auf einem eigenen Windows Server 2012 oder Ubuntu Linux Server betreiben kann. Ich möchte gerne eine Versionsverwaltung auf einem eigenen Server haben und nicht bei irgendeinem Anbieter.

Lemmy 5. Feb 2014 07:29

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von vagtler (Beitrag 1246704)
Ich würde auf Teufel komm raus nicht mehr auf so ein vorsintflutliches Tool wie SVN zurück wollen.

meine ganz persönliche Meinung: Ich würde als Delphi-Entwickler nicht unbedingt mit dem Argument kommen ;-) Davon abgesehen hat auch SVN in bestimmten Einsatzszenarien seine Vorteile.


Zitat:

Zitat von RWarnecke (Beitrag 1246718)
Bei meiner bisherigen Suche, habe ich noch kein Setup gefunden, womit ich git auf einem eigenen Windows Server 2012 oder Ubuntu Linux Server betreiben kann. Ich möchte gerne eine Versionsverwaltung auf einem eigenen Server haben und nicht bei irgendeinem Anbieter.

???? apt-get install git-core

Was für eine Ubuntu-Version setzt du ein, dass das nicht funktioniert? Dann ein bare-Repository anlegen und los gehts...

Zitat:

Zitat von himitsu (Beitrag 1246713)
Wobei ich mich grade beim Git Frage, wozu ich ständig das ganze Repository mit mir rumschleppen soll?

hat schon seine Vorteile: Du bist z.B. mit dem Notebook unterwegs und kannst so deine Versionierung weiter betreiben (was ja bei längerer Abwesenheit sinnvoll ist) und wenn mehr als eine Person an den Sourcen mitarbeitet sind dezentrale Systeme einfach deutlich flexibler (lokale Zweige, deutlich bessere Merge-Tools,...)

Sherlock 5. Feb 2014 09:19

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von himitsu (Beitrag 1246713)
Wobei ich mich grade beim Git Frage, wozu ich ständig das ganze Repository mit mir rumschleppen soll?

Weil es eben nicht das ganze Repository ist, sonder die deutlich "kompaktere" Menge der Changesets. Ausserdem kannst du damit im Gegensatz zu SVN jederzeit mal eben schnell in eine ältere Revision reinschauen, oder mal eben nen neuen Zweig anfangen. Es ist DEUTLICH flexibler als SVN.

Ich spreche jetzt aus Mercurial ERfahrung heraus, aber git unterscheidet sich ja nur marginal davon.

Sherlock

vagtler 5. Feb 2014 09:54

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von Lemmy (Beitrag 1246728)
[...] meine ganz persönliche Meinung: Ich würde als Delphi-Entwickler nicht unbedingt mit dem Argument kommen ;-) [...]

Tatsächlich muss ich kleinlaut eingestehen, seit mittlerweile 1 1/2 Jahren keine einzige Zeile Delphi-Code mehr selbst geschrieben zu haben... 8-)

Lemmy 5. Feb 2014 10:22

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von vagtler (Beitrag 1246751)
Tatsächlich muss ich kleinlaut eingestehen, seit mittlerweile 1 1/2 Jahren keine einzige Zeile Delphi-Code mehr selbst geschrieben zu haben... 8-)

das muss dir doch nicht peinlich sein, wenn Du andere für dich arbeiten lässt ;-)

Sherlock 5. Feb 2014 10:25

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von RWarnecke (Beitrag 1246718)
Bei meiner bisherigen Suche, habe ich noch kein Setup gefunden, womit ich git auf einem eigenen Windows Server 2012 oder Ubuntu Linux Server betreiben kann. Ich möchte gerne eine Versionsverwaltung auf einem eigenen Server haben und nicht bei irgendeinem Anbieter.

Dann nimm halt Mercurial: http://tortoisehg.bitbucket.org/
Da ist alles drin...bis him zum Webserver (ok, der ist rudimentär, aber er funktioniert).

Sherlock

jaenicke 5. Feb 2014 10:49

AW: SVN Server allgemein und Backups
 
Gibt es da auch einen Serverdienst für Windows und Commit-Hooks? So dass man die Commits auf dem Server in Echtzeit auswerten und weiterverarbeiten kann? Das ist nämlich eine der wichtigsten Funktionen, die wir im SVN derzeit nutzen.

vagtler 5. Feb 2014 10:52

AW: SVN Server allgemein und Backups
 
Natürlich. http://git-scm.com/book/en/Customizing-Git-Git-Hooks

RWarnecke 5. Feb 2014 11:14

AW: SVN Server allgemein und Backups
 
Ihr verwirrt mich. Aber wenn ich die letzten Beiträge richtig verstanden habe, dann ist es eher eine Pphilosophiefrage ob man jetzt SVN oder Git/Mercurial benutzt. Eine weitere Frage, die mich jetzt noch beschäftigt ist, gibt es eine Möglichkeit Mantis und SVN oder Git/Mercurial auf zwei Server zu installieren und dann zu verbinden ? Das soll heißen, wenn ich einen neuen Commit mache, dass dann im Mantis ein entsprechender Eintrag geschlossen oder mit einer Notiz versehen wird ?

Lemmy 5. Feb 2014 11:40

AW: SVN Server allgemein und Backups
 
hm.. Philosophiefrage würde ich jetzt nicht sagen. Wenn Du alleine arbeitest und nie den Bedarf hast deine IDE auf einem Notbook mit dir rumzutragen um überall entwickeln zu können, dann wäre meine Entscheidung klar für SVN, ansonsten git/mercurial. Wenn Du dich fit für neue Jobs machen willst, solltest Du wie bei Programmiersprachen eh zumindest grob wissen was bei unterschiedlichen CSVs abgeht.

Anbindung Mantis-SVN gibt es sicherlich - ich bin vor kurzer Zeit auf Redmine umgestiegen - da gibt es auch ne VirtualAPpliance (http://www.turnkeylinux.org/redmine) da ist schon alles fertig installiert, einfach nur in deiner bevorzugten virtuellen Umgebung einrichten und schon hast Du einen Projektserver auf dem Du zudem alle gängigen CSVs auch problemlos testen kannst.

Panthrax 5. Feb 2014 21:19

AW: SVN Server allgemein und Backups
 
Git hat eine steile Lernkurve, es ist aber bis heute das Werkzeug meiner Wahl.

http://www.delphipraxis.net/1181231-post4.html
Git-Arbeitsablauf

RWarnecke 8. Feb 2014 10:51

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von RWarnecke (Beitrag 1246772)
Eine weitere Frage, die mich jetzt noch beschäftigt ist, gibt es eine Möglichkeit Mantis und SVN oder Git/Mercurial auf zwei Server zu installieren und dann zu verbinden ? Das soll heißen, wenn ich einen neuen Commit mache, dass dann im Mantis ein entsprechender Eintrag geschlossen oder mit einer Notiz versehen wird ?

Hat hier jemand für mich entsprechende Links, wo ich das nachlesen kann ? Ich habe bis jetzt nur Anleitungen gefunden wo Mantis und die Versionskontrolle auf einem Server ist. Für mich ist es aber wichtig, dass es auch mit zwei Server funktioniert.

vagtler 8. Feb 2014 13:09

AW: SVN Server allgemein und Backups
 
http://en.wikipedia.org/wiki/Mantis_...em_integration

RWarnecke 8. Feb 2014 13:31

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von vagtler (Beitrag 1247183)

Also wenn mein Englisch noch nicht komplett eingerostet ist, ist unter dem Link keine Anleitung, wie ich Mantis und SVN/Git so einrichte, dass es mit zwei Servern funktioniert.

daywalker9 8. Feb 2014 21:45

AW: SVN Server allgemein und Backups
 
Zitat:

Zitat von jaenicke (Beitrag 1246767)
Gibt es da auch einen Serverdienst für Windows und Commit-Hooks? So dass man die Commits auf dem Server in Echtzeit auswerten und weiterverarbeiten kann? Das ist nämlich eine der wichtigsten Funktionen, die wir im SVN derzeit nutzen.

Kann Dir da nur Atlassian Stash empfehlen

vagtler 10. Feb 2014 19:35

AW: SVN Server allgemein und Backups
 
Stash ist natürlich der Königsweg für On Premise.

generic 12. Feb 2014 14:43

AW: SVN Server allgemein und Backups
 
Ja, jeder SVN Server kann das. Es werden in den dementsprechenden Ordner Batch-Dateien abgelegt.

Wir nutzen z.B. VisualSVN Server unter Windows.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz