it-swarm.com.de

SVN-Fehler - Keine Arbeitskopie

Vor kurzem wurde unser SVN-Server geändert und wir haben einen SVN-Switch durchgeführt.

Da die Arbeitskopie sehr viele nicht versionierte Ressourcen hatte, wurde die Arbeitskopie gesperrt und wir begannen, Ordner für Ordner für alle Ordner unter svn zu wechseln, was perfekt funktioniert.

Wenn ich versuche, Dateien zu aktualisieren, erhalte ich auf der obersten Ebene des Repositorys die svn: Arbeitskopie '.' Locked Fehler und Bereinigung hilft auch nicht. Bei der Bereinigung erhalte ich solche Fehler - svn: 'content' ist kein Arbeitskopienverzeichnis

Frische Checkout ist KEINE Option. Gibt es andere Möglichkeiten, die Sperren zu bereinigen und freizugeben und den Schalter vollständig auszuführen?

EDIT: Der letzte Absatz in der Antwort von JesperE

Wenn Sie eine "keine Arbeitskopie" erhalten, wenn eine rekursive "svn-Bereinigung" meines Vermutung ist, dass Sie ein Verzeichnis haben Dies sollte eine Arbeitskopie sein (d. h. das .svn-Verzeichnis auf der obersten Ebene .__ sagt dies), aber es fehlt seine eigene .svn Verzeichnis. In diesem Fall müssen Sie könnte versuchen, das .__ einfach zu entfernen/zu verschieben. Verzeichnis und führen Sie dann ein lokales Update durch

scheint die Lösung des Problems im Repository zu sein. Ich habe diese Ordner identifiziert und eine erneute Überprüfung dieser spezifischen Ordner durchgeführt. Wow, die Sperren werden in der nachfolgenden Bereinigung freigegeben! Vielen Dank JesperE !!

Aber ich kann immer noch nicht den svn-Schalterfehler herausfinden, der jetzt etwas liest wie:

svn: Das Repository unter 'svn: //repourl/reponame/foldername' hat uuid 'm/reponame', aber das WC hat 'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'

Irgendwelche Ideen ?

208
Vijay Dev

Wenn Sie bei einem rekursiven svn cleanup eine "keine Arbeitskopie" erhalten, vermute ich, dass Sie ein Verzeichnis haben, das eine Arbeitskopie sein soll (dh das .svn-Verzeichnis auf oberster Ebene sagt dies), jedoch fehlt das eigene .svn-Verzeichnis . In diesem Fall könnten Sie versuchen, das Verzeichnis einfach zu entfernen/verschieben und dann ein lokales Update durchzuführen (d. H. rm -rf content; svn checkout content).

Wenn Sie einen not a working copy-Fehler erhalten, bedeutet dies, dass Subversion dort kein richtiges .svn-Verzeichnis finden kann. Prüfen Sie, ob in contents ein .svn-Verzeichnis vorhanden ist.

Die ideale Lösung ist, wenn möglich, eine frische Kasse.

123
JesperE

Ich bin auf eine andere Weise in eine ähnliche Situation (svn: 'papers' is not a working copy directory) geraten, also dachte ich, ich würde meine Schlachtgeschichte (vereinfacht) posten:

$ svn add papers
svn: Can't create directory 'papers/.svn': Permission denied

Hoppla! Berechtigungen korrigieren ... dann:

$ svn add papers
svn: warning: 'papers' is already under version control
$ svn st
~     papers
$ svn cleanup
svn: 'papers' is not a working copy directory

Und selbst papers aus dem Weg zu räumen und svn up (der für das OP funktionierte) auszuführen, hat es nicht behoben. Folgendes habe ich getan:

$ mv papers papers_
$ svn cleanup
$ svn revert papers
Reverted 'papers'
$ mv papers_/ papers
$ svn add papers

Das hat funktioniert.

46
Ken Arnold

Ich habe es durch gelöst

  1. Kopieren Sie eine Sicherung der betroffenen Ordner
  2. SVN setzen die betroffenen Ordner zurück
  3. Fügen Sie die Dateien wieder aus der Sicherung ein

In meinem Fall lag das Problem an gelöschten .svn-Dateien. 

6

Vielleicht haben Sie nur den Ordnerbaum kopiert und versucht, den niedrigsten Ordner hinzuzufügen.

SVN
|_
  |
  subfolder1
       |
       subfolder2   (here you get an error)

in diesem Fall müssen Sie das Verzeichnis auf der oberen Ebene festschreiben.

5
Hextler

Problemumgehung: Umbenennen des Verzeichnisses, das nicht 'Arbeitskopie' ist Checkout/Update/Wiederherstellen dieses Verzeichnisses Verschieben Sie die Dateien aus dem umbenannten Verzeichnis in das neue Commit-Änderungen

Grund: Sie haben einige Änderungen an Dateien im .svn-Verzeichnis vorgenommen, wodurch die 'Arbeitskopie' unterbrochen wird.

3
abatishchev

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.

2
HenryF

Das habe ich gemacht:

  1. stamm umbenennen in trunk_
  2. erstellen Sie einen neuen Ordnerstamm
  3. Erneut auschecken und den Vorgang unterbrechen, nachdem nur wenige Dateien ausgecheckt wurden
  4. Verschieben Sie die Dateien von trunk_ in trunk
  5. Svn bereinigen
  6. Svn update durchführen. Dadurch wird der Status der Dateien aktualisiert, und alle Ihre Dateien werden versioniert.
1

Ich habe gerade "keine Arbeitskopie" bekommen, und der Grund war für mich der Automouter unter Unix . Nur ein neues "cd/path/to/work/directory" hat den Trick geleistet.

1
AlexLa

Das gleiche, ich musste einen 'Contrib' Ordner aktualisieren:

  1. Der alte Ordner wurde verschoben, 
  2. Den neuen kopiert
  3. Kopierte die .svn-Ordner in jeden (in meinem Fall nur drei) neue Ordner.

In meinem Fall lag das Problem auch an gelöschten .svn-Ordnern.

Gelöst.

1
arieltools

Ich treffe dieses Problem auch in der svn diff-Operation. Es wurde durch einen falschen Dateipfad verursacht. Sie sollten './' hinzufügen, um das aktuelle Dateiverzeichnis anzugeben.

1
Armstrongya

Ich habe versucht, den Ordner .svn aus dem Unterordner in den Stammordner einzufügen. Es klappt!!!

1
navin

@JesperE Erwähnt dass Sie die UUID ändern müssen. Folgendes 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 schwieriger 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 hexadezimale Zahl wie die Arbeitskopie sein, daher könnte diese Aktion die Dinge insgesamt verbessern :-)

[Ich habe ursprünglich die Antwort von @ JesperE kommentiert, aber diese Antwort erstellt, um sie für die Menschen offensichtlicher und für Google hilfreicher zu machen. Ich habe meine Kommentare seitdem entfernt. ]

0
alastairs

Ich bin gerade auf einen Fall gestoßen, in dem sich das Verzeichnis .svn auf einem NFS-Server auf einem anderen Rechner befindet und der NFS-Client den Dateisperrdienst (lockd) nicht ausgeführt hat.

svn: E155007: '/mnt/svnworkdir' is not a working copy

Dies ging nach dem Start von lockd auf dem nfs-Client-Host verloren.

Es scheint, als könnte Subversion mit einer besseren Fehlermeldung aufwarten, wenn es Probleme beim Sperren von Dateien gibt. Dies war Subversion 1.10.0

0
Juan

Hatte das gleiche Problem, stellte sich heraus, dass wir Slik 1.6.2 sowie Tortoise auf derselben Maschine hatten. Tortoise war aktualisiert worden (und hatte die Arbeitskopie aktualisiert), aber Slik nicht, also funktionierte Tortoise gut, aber die Befehlszeilen versagten mit:

svn: '.' ist kein Arbeitskopienverzeichnis

Sowohl das Entfernen von Tortoise als auch von Slik und das erneute Installieren von Tortoise mit Befehlszeilentools haben dieses Problem behoben.

0
Twoayem

Vor kurzem verwendete ich andere Entwickler Mac Ich hatte die gleiche Situation, Problem war; Zuerst musste ich get-Repo-Pfad zum Terminal eingeben, tat es aber nicht. Dann wird der Benutzername und das Kennwort angegeben. 

0
Sam

Heute habe ich am Morgen dasselbe Problem /FILE_NAME/ is not a working copy gefunden, und ich habe mehr als zwei Stunden gebraucht, um es zu lösen. Nach langem RND und Google fand ich eine Lösung und das ist CHECKOUT.

  1. CHECKOUT von Subversion zu lokal als neues Projekt.
  2. Ändern Sie einen Teil des Codes in der Java-Datei und COMMIT das Projekt.
  3. Es funktioniert für mich.

Ich hoffe es wird für Sie hilfreich sein.

0
Chintan Khetiya

svn: Das Repository unter 'svn: // repourl/reponame/foldername' hat uuid 'm/reponame', aber das WC hat 'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'

Jedes Subversion-Repo hat eine eindeutige Kennung (uuid). Subversion verwendet dies, um sicherzustellen, dass das Repo beim Wechseln tatsächlich gleich ist. Sie sollten wahrscheinlich die uuid auf dem Server so ändern, dass sie dieselbe ist wie zuvor.

0
JesperE

für mac: - checkout vom Server aus. Ein neues Fenster wird geöffnet, in dem Sie das Verzeichnis von Ihrem lokalen Computer auswählen können. Dann wird der gesamte Code in den ausgewählten Ordner gestellt 

0
RaviPatidar

Könnte es ein ungleiches Arbeitskopierformat sein? Es wurde zwischen svn 1.4 und 1.5 geändert, und neuere Tools konvertieren das Format automatisch, aber die älteren funktionieren nicht mehr mit der konvertierten Kopie.

0
agnul

Sie müssen eine SVN-Basisdatei aus Ihrem Projekt gelöscht haben (dies sind schreibgeschützte Dateien). Aus diesem Grund erhalten Sie diesen Fehler.

Checken Sie ein neues Projekt erneut aus, führen Sie die Änderungen (falls vorhanden) Ihres älteren SVN-Projekts mit "Winmerge" zusammen und übernehmen Sie die Änderungen in Ihrem letzten Checkout.

0
Samiksha