Kürzlich wurde unser SVN-Server geändert und wir haben einen SVN-Wechsel durchgeführt.
Da die Arbeitskopie eine große Menge nicht versionierter Ressourcen enthielt, wurde die Arbeitskopie gesperrt und wir begannen, Ordner für Ordner für alle Ordner unter svn zu wechseln, was einwandfrei funktioniert.
Auf der obersten Ebene des Repositorys erhalte ich jedoch beim Versuch, Dateien zu aktualisieren, die Datei svn: Working copy '.' gesperrter Fehler und Bereinigung helfen auch nicht. Wenn ich bereinige, erhalte ich folgende Fehler : svn: 'content' ist kein Arbeitskopieverzeichnis
Ein neuer Checkout ist überhaupt keine Option. Gibt es andere Möglichkeiten, die Sperren zu bereinigen und freizugeben und den Wechsel vollständig durchzuführen?
EDIT: Der letzte Absatz in JesperEs Antwort
Wenn Sie bei einer rekursiven "svn-Bereinigung" eine "keine Arbeitskopie" erhalten, haben Sie vermutlich ein Verzeichnis, das eine Arbeitskopie sein sollte (dh das .svn-Verzeichnis auf der obersten Ebene sagt dies aus), aber es fehlt das Verzeichnis eigenes .svn-Verzeichnis. In diesem Fall könnten Sie versuchen, dieses Verzeichnis einfach zu entfernen / zu verschieben und dann ein lokales Update durchzuführen
scheint die Lösung für das Problem im Repository zu sein. Ich habe diese Ordner identifiziert und diese spezifischen Ordner alleine neu ausgecheckt und wow, die Sperren werden bei der anschließenden Bereinigung freigegeben! Vielen Dank JesperE !!
Aber ich kann immer noch nicht den SVN-Switch-Fehler herausfinden, der jetzt so etwas wie lautet:
svn: Das Repository unter 'svn: // repourl / reponame / foldername' hat die Uuid 'm / reponame', aber das WC hat 'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'.
Irgendwelche Ideen ?
Antworten:
Wenn Sie bei einer rekursiven
svn cleanup
Ausführung eine "keine Arbeitskopie" erhalten , haben Sie vermutlich ein Verzeichnis, das eine Arbeitskopie sein sollte (dh das.svn
Verzeichnis auf der obersten Ebene sagt dies), aber es fehlt ein eigenes.svn
Verzeichnis. In diesem Fall könnten Sie versuchen, dieses Verzeichnis einfach zu entfernen / zu verschieben und dann ein lokales Update durchzuführen (dhrm -rf content; svn checkout content
).Wenn Sie eine
not a working copy
Fehlermeldung erhalten, bedeutet dies, dass Subversion dort kein geeignetes.svn
Verzeichnis finden kann. Überprüfen Sie, ob sich ein.svn
Verzeichnis in befindetcontents
Die ideale Lösung ist, wenn möglich, eine neue Kasse.
quelle
rm -rf
Löscht den Ordnercontent
dauerhaft. Erstellen Sie ein Backup, bevor Sie es ausführen.Ich bin auf
svn: 'papers' is not a working copy directory
andere Weise in eine ähnliche Situation geraten ( ), also dachte ich, ich würde meine Kampfgeschichte veröffentlichen (vereinfacht):Hoppla! Berechtigungen korrigieren ... dann:
Und selbst wenn man
papers
aus dem Weg ging und ranntesvn up
(was für das OP funktionierte), konnte das nicht behoben werden. Folgendes habe ich getan:Das hat funktioniert.
quelle
Ich habe es gelöst durch
In meinem Fall war das Problem auf gelöschte .svn-Dateien zurückzuführen.
quelle
Vielleicht haben Sie gerade den Ordnerbaum kopiert und versucht, den niedrigsten hinzuzufügen.
In diesem Fall müssen Sie das Verzeichnis auf der oberen Ebene festschreiben.
quelle
Problemumgehung: Verzeichnis umbenennen, bei dem es sich nicht um eine Arbeitskopie handelt. Auschecken / Aktualisieren / Wiederherstellen dieses Verzeichnisses erneut Verschieben von Dateien aus dem umbenannten Verzeichnis in neue Commit-Änderungen
Grund: Sie haben einige Änderungen an einigen Dateien im SVN-Verzeichnis vorgenommen. Dies führt zu einer Unterbrechung der Arbeitskopie.
quelle
Wenn Sie eine Datei in einem neuen Verzeichnis erstellt haben, verwenden Sie anstelle von 'svn add newdir / newfile' 'svn add newdir', da Sie das Verzeichnis hinzufügen müssen. Alle Dateien im Verzeichnis werden standardmäßig hinzugefügt.
quelle
Ich habe gerade "keine Arbeitskopie" bekommen, und für mich war der Grund der Automouter unter Unix. Nur eine neue "CD / Pfad / zu / Arbeit / Verzeichnis" hat den Trick getan.
quelle
Ebenso musste ich einen 'Contrib'-Ordner aktualisieren:
In meinem Fall war das Problem auch auf gelöschte .svn-Ordner zurückzuführen.
Gelöst.
quelle
Ich habe versucht, den Ordner .svn vom Unterordner in den Stammordner einzufügen. Es klappt!!!
quelle
Das habe ich getan:
quelle
Ich treffe dieses Problem auch in svn diff Operation, es wurde durch falschen Dateipfad verursacht, sollten Sie hinzufügen
'./'
, um das aktuelle Dateiverzeichnis anzugeben.quelle
Jedes Subversion-Repo hat eine eindeutige Kennung (UUID). Subversion verwendet dies, um sicherzustellen, dass das Repo tatsächlich identisch ist, wenn Sie beispielsweise wechseln. Sie sollten wahrscheinlich die UUID auf dem Server so ändern, dass sie dieselbe ist wie zuvor.
quelle
Könnte es sich um eine Nichtübereinstimmung des Arbeitskopienformats handeln? Es wurde zwischen svn 1.4 und 1.5 gewechselt und neuere Tools konvertieren das Format automatisch, aber die älteren funktionieren nicht mehr mit der konvertierten Kopie.
quelle
Sie müssen eine SVN-Basisdatei aus Ihrem Projekt gelöscht haben (schreibgeschützte Dateien). Aus diesem Grund erhalten Sie diesen Fehler.
Überprüfen Sie ein neues Projekt erneut, führen Sie die Änderungen (falls vorhanden) Ihres älteren SVN-Projekts mit "Winmerge" mit einem neuen zusammen und übernehmen Sie die Änderungen in Ihrem letzten Check-out.
quelle
@JesperE erwähnt, dass Sie die UUID ändern müssen. Das Folgende soll Ihnen dabei helfen.
Auf SVN 1.5+ können Sie svnadmin setuuid ausführen. Sie können dann mit svnlook uuid überprüfen, ob es richtig eingestellt wurde. In früheren Versionen von SVN ist dies ein schwierigerer Prozess. Siehe http://chestofbooks.com/computers/revision-control/subversion-svn/Managing-Repository-UUIDs-Reposadmin-Maint-Uuids.html
Außerdem sieht die UUID von "m / reponame" verdächtig aus. Ich glaube, es sollte eine hexadezimal formatierte Zahl sein, wie die der Arbeitskopie, also wird diese Aktion vielleicht die Dinge rundum verbessern :-)
[Ich habe ursprünglich die Antwort von @ JesperE kommentiert , diese Antwort jedoch erstellt, um sie für die Menschen offensichtlicher und für Google hilfreicher zu machen. Ich habe seitdem meine Kommentare entfernt. ]]
quelle
Hatte das gleiche Problem, stellte sich heraus, dass wir Slik 1.6.2 sowie Tortoise auf derselben Maschine hatten. Tortoise wurde aktualisiert (und hatte die Arbeitskopie aktualisiert), Slik jedoch nicht. Tortoise funktionierte also einwandfrei, aber die Befehlszeilen schlugen fehl mit:
Das Entfernen von Tortoise und Slik und das erneute Installieren von Tortoise mit aktivierten Befehlszeilentools haben dies für mich behoben.
quelle
Für Mac: - Wenn Sie von der Serverseite aus zur Kasse gehen, wird ein neues Fenster geöffnet, in dem Sie das Verzeichnis auf Ihrem lokalen Computer auswählen können. Legen Sie dann den gesamten Code in den ausgewählten Ordner. Öffnen Sie dann die lokale SVN-Seite und fügen Sie das Projekt hinzu und schreiben Sie es fest
quelle
Heute habe ich das gleiche Problem
/FILE_NAME/ is not a working copy
am Morgen gefunden und mehr als zwei Stunden damit verbracht, es zu lösen. Nach langem RND und Google habe ich eine Lösung gefunden und das istCHECKOUT
.CHECKOUT
vonSUBVERSION
zu lokal als neues Projekt.Hoffe es wird hilfreich für Sie.
quelle
Vor kurzem habe ich einen Mac anderer Entwickler verwendet. Ich hatte die gleiche Situation. Das Problem war: Zuerst musste ich get repo path to terminal eingeben, aber ich tat es nicht, als es heißt, wie ist Ihr Benutzername und Passwort.
quelle
Ich bin gerade auf einen Fall gestoßen, in dem sich das .svn-Verzeichnis auf einem NFS-Server auf einem anderen Computer befindet und der NFS-Client den Dateisperrdienst (
lockd
) nicht ausgeführt hat.Dies ging weg, sobald
lockd
es auf dem nfs-Client-Host gestartet wurde.Es scheint, als könnte Subversion eine bessere Fehlermeldung anzeigen, wenn Probleme beim Sperren von Dateien auftreten. Dies war Subversion 1.10.0
quelle
Ich habe eine neue Kasse aus demselben Projekt an einem anderen Speicherort erstellt, dann den .svn-Ordner daraus kopiert und durch meinen alten .svn-Ordner ersetzt. Danach wurde die SVN-Update-Funktion aufgerufen und alles wurde ordnungsgemäß auf dem neuesten Stand synchronisiert.
quelle
Löschen Sie den .svn-Ordner, der auf Ihrem lokalen Computer vorhanden ist. Drücken Sie auf das Windows-Symbol und geben Sie .svn ein. Löschen Sie den gesamten Ordner. Es hat bei mir funktioniert.
quelle