Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Backup/Restore von VisualSVN Server (https://www.delphipraxis.net/155477-backup-restore-von-visualsvn-server.html)

Chemiker 25. Okt 2010 14:02

Backup/Restore von VisualSVN Server
 
Hallo,

VisualSVN Server erstellt ja eine Datenbank für die Ordner und Dateien. Bei Firebird zum Beispiel gibt es ein Befehl um ein Backup/Restore von der Datenbank zu ziehen, wie sieht es mit der Datenbank vom VisualSVN Server aus? Die DB muss ja auch irgendwie gesichert werden, ist das auch im laufenden Betrieb möglich? Oder müssen alle Clients abgemeldet werden und anschließend die DB kopiert werden?

Bis bald Chemiker

Sir Rufo 25. Okt 2010 14:10

AW: Backup/Restore von VisualSVN Server
 
Einfach das Repo-Verzeichnis komplett sichern und gut. In der Zeit sollte allerdings am Besten kein Einchecken erfolgen

generic 25. Okt 2010 15:02

AW: Backup/Restore von VisualSVN Server
 
ansonsten gibt es noch dieses cli-tool:
Code:
USAGE: svn-hot-backup [OPTIONS] REPOS_PATH BACKUP_PATH

Create a backup of the repository at REPOS_PATH in a subdirectory of
the BACKUP_PATH location, named after the youngest revision.

Options:
  --archive-type=FMT Create an archive of the backup. FMT can be one of:
                       bz2 : Creates a bzip2 compressed tar file.
                       gz : Creates a gzip compressed tar file.
                       zip : Creates a compressed zip file.
  --num-backups=N   Number of prior backups to keep around (0 to keep all).
  --help     -h    Print this help message and exit.

mjustin 25. Okt 2010 15:17

AW: Backup/Restore von VisualSVN Server
 
Portable Sicherungen mache ich mit svnadmin dump :

Zitat:

Dump the contents of the repository, bounded by a given set of revisions, using a portable dump format.

nachti1505 25. Okt 2010 19:18

AW: Backup/Restore von VisualSVN Server
 
Zitat:

Zitat von Sir Rufo (Beitrag 1057719)
Einfach das Repo-Verzeichnis komplett sichern und gut. In der Zeit sollte allerdings am Besten kein Einchecken erfolgen

Zum Beispiel zippen, oder so?

Sir Rufo 25. Okt 2010 19:52

AW: Backup/Restore von VisualSVN Server
 
Zitat:

Zitat von nachti1505 (Beitrag 1057775)
Zitat:

Zitat von Sir Rufo (Beitrag 1057719)
Einfach das Repo-Verzeichnis komplett sichern und gut. In der Zeit sollte allerdings am Besten kein Einchecken erfolgen

Zum Beispiel zippen, oder so?

oder raren oder arjen oder stuffen ... jepp

Chemiker 25. Okt 2010 21:48

AW: Backup/Restore von VisualSVN Server
 
Hallo,

@ nachti1505: Zippen usw. ist nicht das Problem der Server hat 4 x 1TB Platten zur Verfügung das sollte auch ohne Komprimierung für den Anfang genug sein.

@Sir Rufo: Muss eigentlich der Server für das Kopieren auch runtergefahren werden?

@generic/mjustin: Ist es möglich auch von einem Client das Backup anzustoßen?

Bis bald Chemiker

Sir Rufo 25. Okt 2010 22:30

AW: Backup/Restore von VisualSVN Server
 
So wie ich das sehe werden die Verbindungen zu den einzelnen Repo-DBs nur zum Zeitpunkt des Zugriffs aktiv und werden dann wieder geschlossen.

Wenn du nur alleine mit SVN arbeiten möchtest, dann brauchst du nicht zwingend einen SVN-Server, sondern kannst mit TortoiseSVN auch eine Repository anlegen (lokal oder Netzwerkfestplatte ist egal).

Willst du dann irgendwann doch einen SVN-Server einsetzen, dann kopiere die Repos einfach in das Repo-Verzeichnis vom Server und schon geht es los.

Zum Thema Platz:
Sind die Änderungen nur sehr gering, so speichert SVN auch nur die Änderungen (auch bei Binärfiles). Somit hält sich der Platzverbrauch auch in Grenzen.
Ausschließen würde ich immer die Dateien mit der Endung dcu, local, bak sowie das _history Verzeichnis (die Ignore-List lege ich bei mir aber pro Repo fest und nicht global, würde ich auch nicht empfehlen, sonst fehlt nachher etwas, das doch wichtig war)

mjustin 26. Okt 2010 14:39

AW: Backup/Restore von VisualSVN Server
 
Zitat:

Zitat von Chemiker (Beitrag 1057790)

@generic/mjustin: Ist es möglich auch von einem Client das Backup anzustoßen?

Nein, svnadmin arbeitet bewusst nur mit lokalen Repositories. Mit ssh (oder ähnlichen) Remoteclients geht es natürlich auf Umwegen schon.

Chemiker 26. Okt 2010 20:19

AW: Backup/Restore von VisualSVN Server
 
Hallo,

Zitat:

Zitat von Sir Rufo
Wenn du nur alleine mit SVN arbeiten möchtest, dann brauchst du nicht zwingend einen SVN-Server, sondern kannst mit TortoiseSVN auch eine Repository anlegen (lokal oder Netzwerkfestplatte ist egal).

Habe einen SVN Server auf einen WHS laufen, um später auch von unterwegs auf den SVN-Server zugreifen zu können. Mit dem Server ist man flexibler, so habe ich eine Verbindung mit (bis jetzt) einer VM. Den Vorteil den ich dadurch erreichen möchte, dass ich die Entwicklungs-Datei zentral verwalte, ob von verschieden Delphi-Versionen oder MSVisual-Studio-Versionen. Im Augenblick verwalte ich mich zu Tode und habe überall irgendwelche Kopien, wo ich nicht mehr sicher bin, ob es die aktuellen sind.
Der Platz ist nicht das Problem, aber es vergeht schon einige Zeit um größere Projekte in die SVN zu bekommen.
Ich habe schon einiges in den letzten 2 Wochen über SVN gelesen, aber was mir immer noch etwas Kopfschmerzen bereit ist eine Vernünftige Ordnerstruktur damit ist jetzt nicht tags, trunk, und branches gemeint.
z.B: habe ich ein Projekt1 in dem 3 Forms sind dafür habe ich jeweils ein getrennter Ordner angelegt. In diesen Ordner befinden sich auch einzelne Projekte, wo diese Forms getrennt voneinander getestet worden sind.
Jetzt könnte man die Ordner-Struktur so anlegen:
Code:
Repository
    Project1
       branches
        tags
           Project1 Version 1.00 
        trunk
           Form1             
              Test-Ordner für Form1
              Dokumentation für Form1 
           Form2 
              Test-Ordner für Form2
              Dokumentation für Form2
           Form3 
              Test-Ordner für Form3 
              Dokumentation für Form2
Oder so:

Code:
 Repository
    Project1
        branches
        tags
           Project1 Version 1.00 
        trunk
           Form1             
             branches
             tags
             trunk
                Test-Ordner für Form1
                Dokumentation für Form1 
           Form2 
             branches
             tags
             trunk
               Test-Ordner für Form2
               Dokumentation für Form2
           Form3           
             branches
             tags
             trunk
               Test-Ordner für Form3
               Dokumentation für Form3
Ich bin da etwas ratlos, was der beste Weg ist. In diesem Kontext gehört auch, wie erstellt man die Ordnerstrukturen von Units die fast in jedem Programm eingebunden werden. Zum Beispiel eine Unit die in der Lage ist die Windows-Version zu ermitteln auf der grade das Programm läuft. Sie wird zwar selten aber bei jeder neuen Windows-Version angepasst.

Im Forum gibt es einige Beiträge darüber, aber irgendwie sind diese zu grob gehalten. Ein komplettes Beispiel das sich im Alltag bewährt hat könnte da weiterhelfen.

Zitat:

Zitat von mjustin
Nein, svnadmin arbeitet bewusst nur mit lokalen Repositories. Mit ssh (oder ähnlichen) Remoteclients geht es natürlich auf Umwegen schon.

Das SVN läuft auf einen WHS (abgespeckter MSServer 2003). Das SVN läuft in einem Bereich der nicht gespiegelt wird, deswegen suche ich eine Möglichkeit das Backup in einem bestimmten Zeitabstand zu erstellen.
Aber vielleicht habe ich aber auch Deine Antwort nicht richtig verstanden.

Bis bald Chemiker

Sir Rufo 26. Okt 2010 20:26

AW: Backup/Restore von VisualSVN Server
 
Innerhalb eines Projekts keine weiteren Unter-Trunks/Branches etc.
Das Projekt gehört ja zusammen und bildet eine Einheit. Ob es da nun noch integrierte Neben-Projekte zum Testen gibt ist egal.

Anders wäre es, wenn du z.B. eine Form hast und die benötigst du in mehreren Projekten.
Dann legst du für diese Form ein eigenes Repo an und entwickelst das dort.

In die anderen Projekte kannst du dir dieses nun per svn:external hinzufügen

In einigen Projekten benutze ich z.B. die Units von Synapse (Alternative zu den Indys)
Meine Struktur sieht dabei so aus
Code:
trunk
  bin
  ext
    synapse <- via svn:external
  src
Bei svn:external kann man auch die Revision angeben, die man haben möchte.
Ich programmiere also mit der aktuell verfügbaren Revision von synapse.
In ein paar Monaten kann es aber sein, dass die Jungs dort etwas verändert haben, was mit meiner Anwendung inkompatibel ist. Also trage ich bei svn:external auch noch die von mir getestete Revision mit ein.
Hole ich mir dann irgendwann das Projekt wieder aus meinem SVN wird auch automatisch die entsprechende Revision von synapse geholt (damit muss das laufen)
Testweise entferne ich die Revisionsnummer für synapse und aktualisiere. Mit der neuesten Version kann ich nun meine Anwendung erzeugen. Wenn es nicht funktioniert, dann trage ich die alte Revision wieder ein, aktualisieren und alles wieder gut.

Sobald man Zeit hat, passt man entweder die Anwendung an, oder schickt einen Bug-Report.
Die Anwendung wird aber nicht versemmelt, somit bleibe ich entspannt.

mjustin 26. Okt 2010 21:10

AW: Backup/Restore von VisualSVN Server
 
Zitat:

Zitat von Chemiker (Beitrag 1057960)

Zitat:

Zitat von mjustin
Nein, svnadmin arbeitet bewusst nur mit lokalen Repositories. Mit ssh (oder ähnlichen) Remoteclients geht es natürlich auf Umwegen schon.

Das SVN läuft auf einen WHS (abgespeckter MSServer 2003). Das SVN läuft in einem Bereich der nicht gespiegelt wird, deswegen suche ich eine Möglichkeit das Backup in einem bestimmten Zeitabstand zu erstellen.

In diesem Fall würde ich einen "Geplanten Vorgang" hinterlegen der svnadmin z.B. nächtlich ausführt und eine Sicherung erstellt.

Meine Repo-Struktur ist übrigens

Code:
branches
  Projekt1
    feature1
    feature2
  Projekt2
  ...
tags
  Projekt1
    1.0
    1.1
  ...
trunk
  Projekt1
  Projekt2
  Projekt3
...

Third party libraries wie Synapse halte ich ausserhalb des Repositories (ausser bei angepassten Versionen), dort liegen sie dann in eindeutig benannten Verzeichnissen wie x:\Delphi\indy-10.5.8 oder synapse-39.

Sir Rufo 27. Okt 2010 00:06

AW: Backup/Restore von VisualSVN Server
 
Da SVN (und auch andere) einem nicht wirklich vorschreiben wie man seine Verzeichnisse organisiert (auch branches, tags, trunk sind nicht zwingend notwendig) ist es Geschmackssache und kann nach den eigenen Bedürfnissen angepasst werden.

Die Third-Party-Libs in einem definierten Verzeichnis zu halten ist eben auch eine Möglichkeit und ist immer abhängig von dem, was man erreichen möchte oder will/muss.

Meine Entwicklungen laufen auf unterschiedlichen Entwicklungsrechnern (unterschiedliche Delphi-Versionen) und es hat sich dabei (bei mir) als Vorteil herausgestellt, die Third-Patry-Libs als External einzubinden.
Vor allem die, die eh auf einem SVN verfügbar sind. Dadurch habe ich die Möglichkeit die ausgelieferte Version immer korrekt nachstellen zu können.

Zudem muss ich nicht jede Delphi-Umgebung mit den entsprechenden Libs versorgen und auch noch aktuell halten (obwohl man das auch per SVN machen kann ;) )

Es gibt keine allgemeingültige Vorgehensweise wie man die Organisation mit einem SVN realisiert. Es ist und bleibt Philosophie und hängt viel von der eigenen Arbeitsweise und Organisation ab.

Möglich, dass du auch nach einiger Zeit feststellst, dass das alles Bullshit ist und du es komplett anders organisierst. So ist das im Leben. Meine Vorhänge habe ich vor kurzem auch komplett getauscht. Vorher kam ein neues Sofa und umgeräumt habe ich auch. Trotzdem war es vorher nicht falsch und muss jetzt nicht für alle Ewigkeit richtig sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 Uhr.

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