21 Stimmen

"Phantom"-Verzeichnisse in einem SVN-Repository

Ich habe es irgendwie geschafft, ein SVN-Repository in einen schlechten Zustand zu bringen. Ich habe ein Verzeichnis verschoben und kann es nun nicht mehr an seinem neuen Ort festschreiben.

Soweit svn status betroffen ist, ist das Verzeichnis unbekannt (der Name des Verzeichnisses lautet type ).

$ svn status
?      type

Wenn ich versuche, das Verzeichnis hinzuzufügen, sagt der Server, dass es bereits existiert.

$ svn add type
svn: warning: 'type' is already under version control

Wenn ich versuche, das Verzeichnis zu aktualisieren, ist es wieder weg.

$ svn update type
svn: '.' is not under version control

Wenn ich versuche, die Datei zu übertragen, meldet der Server, dass das alte übergeordnete Verzeichnis nicht mehr existiert.

$ svn commit type -m "Moving type"
svn: Commit failed (details follow):
svn: '/prior/trunk/src/nyu/prior/cvc3/theorem\_prover/expression' path not found

Um das Rätsel noch zu vergrößern, wird der Inhalt des Verzeichnisses als geändert markiert.

$ svn status type
A  +   type
M  +   type/IntegerType.java
M  +   type/BooleanType.java
M  +   type/Type.java
M  +   type/RationalRangeType.java
M  +   type/RationalType.java
M  +   type/IntegerRangeType.java

Wenn ich versuche, das Verzeichnis zu aktualisieren, erhalte ich folgende Meldung.

$ cd type
$ svn update
svn: Two top-level reports with no target

Das Commit aus dem Verzeichnis heraus ergibt das gleiche path not found Fehler wie oben.

Was ist los und wie kann ich das Problem beheben?

EDIT: @Rob Oxspring hat mich erwischt: Ich habe zu aggressiv Dinge in Eclipse verschoben.

UPDATE: Ich akzeptiere die Antwort von @Rob Oxspring: "Tu das nicht / fang einfach neu an" und nehme seinen Rat an. Ich wäre immer noch daran interessiert, wenn mir jemand sagen könnte: (a) was die oben genannten Fehlermeldungen mittlere und (b) wie man tatsächlich reparieren das Problem.

0voto

Andreas Kraft Punkte 3692

Ich habe die Erfahrung gemacht, dass die lokale Kopie manchmal nicht mehr mit dem Repository synchronisiert ist. Normalerweise löse ich das, indem ich den lokalen Verzeichnisbaum aufsteige, beginnend mit dem Verzeichnis, in dem das Problem auftritt, und versuche, bei jedem Schritt zu bereinigen und zu aktualisieren.

0voto

déo Punkte 684

Was passiert ist, ist, dass Sie einen Ordner ausgecheckt haben, dann lokal 'svn add'ed und/oder etwas in diesem Ordner geändert haben, aber bevor Sie Ihre Änderungen übertragen haben, wurde der ursprüngliche Ordner aus dem SVN-Repository verschoben (oder gelöscht).

Alles, was Sie tun müssen, ist, Ihr aktuelles Auschecken auf den neuen Ort im SVN-Repository umzustellen. Angenommen, Sie haben einen Checkout des Ordners foo aus path/to/folder1/foo und foo wurde nach path/to/foo verschoben, dann müssen Sie nur Folgendes ausführen:

$ svn switch path/to/foo

Das war's... ;-)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X