das Motherboard eines dedizierten Servers, den ich seit fünf Jahren miete, hat den Geist aufgegeben und wurde durch ein neues ersetzt. Die sehr alte (Debian-)Distribution konnte mit der neuen Hardware auf dem Motherboard nicht mithalten, also habe ich beschlossen, eine neue Distribution (Debian Wheezy) von Grund auf neu zu installieren (sogar ein Upgrade war ziemlich problematisch, da das alte Debian den Ethernet-Chipsatz des neuen Motherboards meines Wissens nicht erkannte, also habe ich mich für eine Neuinstallation von Grund auf entschieden).
Ich habe SVN neu installiert und alle Repositories wie folgt abgerufen:
tar -xzf repoBackups.tgz
Und es funktioniert".
Das Problem besteht darin, dass Eclipse beispielsweise zwar die SVN-Repositorys erkennt, aber jede einzelne Datei committen möchte, obwohl sie identisch sind.
Könnte dies mit den Zeitstempeln der Dateien zusammenhängen? Haben Sie jedenfalls eine Idee, was die Ursache dafür ist und wie sich das Problem lösen lässt?
ICHkönnteBitten Sie einfach alle, jede einzelne Datei jedes Projekts erneut zu committen. Dann wäre meiner Meinung nach alles in Ordnung. Einige dieser Projekte sind jedoch recht groß und für die Entwickler wäre das Ganze etwas mühsam.
Als Bonusfrage (und weniger wichtig): Würde ein anderes VCS wie Git oder Mercurial nicht unter diesem Problem „leiden“?
Antwort1
Das Kopieren der Dateien eines Subversion-Repositorys ist keine unterstützte Methode zur Sicherung. (Siehe[SVN]: Wie erstelle ich ein Backup des Repository?UndWas ist die beste Möglichkeit, Subversion-Repositorys zu sichern?UndWie sichere ich ein Remote-SVN-Repository?für geeignete Methoden.) Es sieht aus, als ob die Datenbank beschädigt ist.
svnadmin dump
Versuchen Sie , das Programm auf dem entpackten Repository und dem resultierenden Dump auszuführen svnadmin load
. Dies kann zu einem funktionierenden Repository führen (aber ich kann nichts versprechen, ich bin mit SVN nicht sehr vertraut).
Die Zeitstempel der Dateien sind irrelevant. Subversion verwendet sie nicht zur Entscheidung über ein Commit, sondern Revisionsnummern.