Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   SVN: Revisionsdatei auf dem Server löschen? (https://www.delphipraxis.net/190797-svn-revisionsdatei-auf-dem-server-loeschen.html)

hoika 9. Nov 2016 09:33

SVN: Revisionsdatei auf dem Server löschen?
 
Hallo,
ich habe hier ein Repository.
Eine Revision ist eine Binärdatei, die ich aus Versehen committed habe.
Die will ich wieder raushaben.

Wenn ich die per SVN löschen, bleibt sie ja (gelöscht) auf dem Server.

Kann ich die gefahrlos direkt auf dem Server löschen (db/revs)
oder mache da was kaputt?

PS:
Das ist noch ein altes Repository (SVN 1.6), wo die Revisions in Dateien ablegt sind.

Da fällt mir noch ein: Wie mache ich das eigentlich mit sqlite als SVN-DB???

himitsu 9. Nov 2016 09:39

AW: SVN: Revisionsdatei auf dem Server löschen?
 
Also, das geht nicht ... Revisionen sind unveränderbar, sonst wäre es ja nicht mehr nachverfolgbar und gerade dafür ist SVN ja da. :zwinker:

Offiziell kann man Dateien nur im SVN löschen, bzw. kann die Revision "rückgängig" machen (und diese Änderungen einchecken), aber alles bleibt im Repo drin.



Wenn es um die letzte Revision geht (die macht am wenigsten Probleme, weil man auch alle nachfolgenden Revisionen anpassen müsste), dann kann man aber ein Backup des SVN machen, bearbeitet die Backupdateien und spielt dann das Backup wieder ein.

OK, man könnte auch direkt im Serververzeichnis rumpfuschen, aber so leicht ist das auch nicht.
Bei VisualSVN sind das ja alles nur Textdateien, wo die Revisionsinfos drin stehen, und je Revision eine Datei mit den Änderungen. (Server stoppen, drin rumpfuschen und wieder starten)



Und nee, einfach was löschen/ändern, ohne z.B. die Hashs in der RevInfo anzupassen wird hoffentlich knallen, beim nächsten Serverstart, denn ich hoffe mal der hat einen Integritätstest drin.
Bei mir damals konnte ich nichts mehr einchecken, bis ich alle "Fehler" behoben hatte.

hoika 9. Nov 2016 10:24

AW: SVN: Revisionsdatei auf dem Server löschen?
 
Hallo,

OK, man könnte auch direkt im Serververzeichnis rumpfuschen, aber so leicht ist das auch nicht.
Bei VisualSVN sind das ja alles nur Textdateien, wo die Revisionsinfos drin stehen, und je Revision eine Datei mit den Änderungen. (Server stoppen, drin rumpfuschen und wieder starten)


Genau das will ich machen.


Ich habe mal testweise ein Repository erzeugt, dort 3 Revs eingecheckt und dann auf dem Server Rev2 gelöscht.
Auf den Clients war Rev2 dann halt nicht mehr da.
Sämtliche Methoden funktionieren weiterhin (Update, Commit, Diff).

Deshalb ja meine Frage.

Phoenix 9. Nov 2016 11:06

AW: SVN: Revisionsdatei auf dem Server löschen?
 
Das geht schon. Da gibt es z.B. die Tools adminsvndump und adminsvnload, und Du kannst mit adminsvnfilter die revisionen beim restore rauslassen, die Du nicht mehr in der Historie haben magst.

Die Offizielle Doku gibt da nähere Infos: http://subversion.apache.org/faq.html#removal

Aber: Das würde ich nur mit sehr, sehr, sehr großer Vorsicht machen, denn Du kannst Dein Repo damit ziemlich zuverlässig komplett zerstören.
Also: Vorher den Prozess mehrfach auf einer 1:1 Kopie des Repos testen, und dann am besten ein Batch- oder Shellscript erstellen dass a) ein Backup macht, und dann zum gewünschten Zustand führt, und nie manuell mit ungetesteten Commands am Repo rumpfuschen.

hoika 9. Nov 2016 15:28

AW: SVN: Revisionsdatei auf dem Server löschen?
 
Hallo,
der Link hilft mir weiter.
Also werde ich die Revisions-Datei nicht einfach so löschen ;)

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 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