Luca Bertoncello schrieb:
Heute habe ich festgestellt, dass ein Kollege entschieden hat (ohne den anderen was zu sagen), dass einige Branches in vielen Projekten in unserem SVN-Server "alter Schrott enthalten, und deswegen vernichtet werden müssen". Dieser "alte Schrott" waren nur die vorige Versionen des Programms... :(
Jetzt ist es gemacht und bestimmt kann man nichts mehr wiedererstellen (wenn ich mich irre, bitte sagen, wie es geht).
Du irrst dich :) Du kannst ganz einfach die Revision aus-checken, in der das Verzeichnis noch existiert hat. Würde als VCS ja sonst nicht viel Sinn machen, oder?
svn export|co -rX <pfad>
Und die Revision bekommst du mit "svn log --limit 5 <pfad>". Dann nimm quasi X=Revision-1.
Oder du machst einen Reverse-Merge wie Konrad Rosenbaum schrieb, wenn du das Verzeichnis in der Arbeitskopie wieder "herstellen" möchtest.
JFTR: Manchmal ist ein Aufräumen der Branches gar nichts schlechtes. Evtl. hilft es ja, die Lesbarkeit zu verbessern oder die Größe der Arbeitskopie zu verringern? Dann reicht vielleicht auch eine README mit dem obigen Hinweis, wie man die letzte Version des Branches dennoch aus-checken kann.
Nun die Frage: wie kann ich in SVN verhindert, dass Branches gelöscht werden?
Gar nicht und das brauchst du auch nicht, da du ja jederzeit wieder rankommst. Man kann eigentlich nur mit svnadmin etwas wirklich löschen. Wenn ihr aber alle nach Lust und Laune(???) auf Eurem SVN-Server löscht, wären vielleicht ein paar Absprachen angebracht?
PS: Du kannst temporär mit "svn lock" einen Pfad sperren. Den kann sich ein anderer Nutzer aber mit "svn lock --force" wohl zurückholen und du würdest effektiv die gemeinsame Arbeit an dem gesperrten Pfad behindern, da kein anderer Nutzer etwas verändern kann, solange deine Sperre besteht.
VG Daniel