2010-11-23 9 views
2

Ich hatte einen Ordner, plugins/south der in mein Repository eingecheckt wurde. Dann musste ich es aktualisieren, also löschte ich den Ordner und legte einen neuen Ordner an seinen Platz. Jetzt kann ich meine Änderungen nicht bestätigen.Brauchen Sie Hilfe, SVN zu reparieren: "kein Arbeitskopie-Verzeichnis"

Im Nachhinein sollte ich wahrscheinlich SVN gelöscht haben, aber dafür ist es jetzt zu spät.

[email protected]:~/myproject$ svn add plugins/south 
svn: Working copy 'plugins' locked 
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details) 
[email protected]:~/myproject$ svn cleanup 
svn: 'plugins/south' is not a working copy directory 

Wie behebe ich das?

dachte, vielleicht könnte ich die Version im Repo löschen und dann eine neue Check-in ...

[email protected]:~/myproject$ svn delete --keep-local plugins/south 
svn: Working copy 'plugins' locked 
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details) 

Aber es wird mir nicht, dass entweder tun lassen.

Antwort

2

Sie können auch versuchen

svn revert plugins/south 

die alte Version zurück zu bekommen, dann die erforderlichen Änderungen vornehmen.

alternativ

cd /tmp 
svn co <stuff>/plugins 
cd - 
mv plugins plugins-old 
mv /tmp/plugins . 

oder moralischen äquivalent.

+0

Ja, ich habe gerade Ihren zweiten Ansatz gemacht. – mpen

4

Diese Arbeitskopie jetzt nicht ist ..

Ihre beste Wette imo (nicht/rechts sein kann/aber es sollte funktionieren) ist die Arbeitskopie an anderer Stelle zu überprüfen, dann die Änderungen aus diesem Satz anwenden , dann begehen.

+0

Gut genug für mich. Ich finde es so dumm, dass ich das tun müsste. – mpen

+0

Mark: SVN kann nur mit den Daten arbeiten, die es versteht. Wenn Sie alle Kontrolldateien ausspionieren, löschen Sie effektiv dessen Speicher. – richo

+1

Nun, wenn es schlau wäre, würde es seinen ganzen Speicher in die Wurzel des Projekts anstatt in jeden Unterordner legen. – mpen

1

Sie können versuchen, das gelöschte Verzeichnis zu aktualisieren und anschließend mit svn rm zu löschen.

Aber bevor Sie dies tun, sollten Sie das neue Verzeichnis verschieben, um nicht in den Weg zu kommen.

2

Ihr Problem ist, dass Sie das gesamte Verzeichnis zusammen mit dem Verzeichnis ".svn" gelöscht haben, das Subversion verwendet. Wie Sie es tun sollten, ist "svn delete" das Verzeichnis, commit, um es aus Ihrem lokalen Verzeichnis zu entfernen, erstellen Sie das neue Verzeichnis und dann "svn add" das neue Verzeichnis.

Um das, was Sie haben, zu bereinigen, verschieben Sie Ihr neues Verzeichnis an einen anderen Ort, tun ein "Svn Update", um das Original zurück zu bringen, Svn löschen, commit, verschieben Sie Ihr neues Verzeichnis wieder an Ort und svn fügen Sie es hinzu.