2008-12-15 37 views
26

Ich ziehe mir die Haare aus diesem.SVN - Keine Arbeitskopie Fehler

Ich habe eine Website, die Version mit Subversion gesteuert wird. Ich benutze Aptana (Eclipse, Subclipse), um den Svn zu machen. Ich habe Dateien ein- und ausgecheckt, aktualisiert etc. und alles ist in Ordnung. Das System, das wir erstellt haben, hat jedoch eigene Dateien und Ordner hinzugefügt.

Wenn ich versuche, diese zu begehen, sagt es mir <path> ist keine Arbeitskopie. Wenn ich versuche, eine Bereinigung durchzuführen, gibt es denselben Fehler. Ich habe festgestellt, dass ich jede Datei manuell zur Versionskontrolle hinzufügen kann, aber dies führt zu demselben Fehler. Ein Update hilft nicht, das Aktualisieren des Arbeitsbereichs führt auch nicht dazu. Cleanup scheint nach dem Fehler zu sterben und dann ist das Verzeichnis gesperrt.

Ich weiß, dass Sie Dateien mit SVN hinzufügen sollen, aber wie in aller Welt arbeiten Sie mit generierten Dateien? Wie komme ich hierher "<folder> ist kein Arbeitskopie-Verzeichnis" Fehler? Wie bekomme ich Subversion, um nur die Dateien anzusehen und sie ihrem Repository hinzuzufügen?

Antwort

20

Wenn Sie möchten, dass die generierten Dateien zum SVN hinzugefügt werden, verwenden Sie svn add, um sie rekursiv hinzuzufügen. Dadurch wird sichergestellt, dass alle Verzeichnisse Teil der Arbeitskopie sind und alle Dateien und Verzeichnisse zum SVN hinzugefügt werden verpflichtet als Teil der nächsten svn commit.

Häufig generierte Dateien und Ordner sollten jedoch nicht zum SVN hinzugefügt werden, da sie als Teil eines Builds von die Quelldateien generiert werden. In diesem Fall sollten Sie die Markierung mit svn:ignore so markieren, dass sie nicht Teil der Arbeitskopie sind.

0

"Keine funktionierende Kopie" bedeutet, dass einer der Orte, an dem Ihre IDE svn ausführen möchte, nicht von svn selbst gesteuert wird (wie das Hinzufügen von Dateien in einem Unterverzeichnis nicht unter svn). Ich würde sagen, überprüfen Sie Ihre Pfade innerhalb der IDE.

11

Die kein Arbeitskopie Fehler bedeutet, dass der aktuelle Ordner wurde von SVN korrekt initialisiert nicht.

Um dies zu beheben die Fehler nur die aktuellen Ordner umbenennen und dann eine richtige Arbeitskopie des Projektes von SVN, indem Sie eine Kasse des Projektes erhalten.

Das Auschecken wird dann eine ordnungsgemäß konfigurierte Arbeitskopie dieses Projekts erstellen.

26

Wir hatten dieses Problem heute, als ich versuchte, einen Ordner "A" hinzuzufügen, in dem ich keine Schreibberechtigung hatte (so konnte der Ordner A/.svn nicht erstellt werden).

Running svn Status gab mir ein "~" neben Ordner A. Running Svn Cleanup sagte, dass Eltern von A wurde gesperrt.

Was arbeiten endete war:

cp -r A A~ # backup, since A was not in the repo 
rm -rf A  # removed locked directory 
svn rm A  # remove A from pending commit 
mv ~A A  # restore backup 
svn add A  # re-add to pending commit 
svn cleanup # (had to cleanup several parent folders higher as well) 
+1

Dieses didn‘laufen t arbeite für mich beim ersten Versuch. Beim zweiten Versuch habe ich nach dem SVN einen Svn Commit hinzugefügt, und das schien den Trick zu machen. Danke für den Tipp! +1. – jwismar

2

Ich traf nur die „keine Arbeitskopie“ Fehler in meiner, ähem, Arbeitskopie. Dies war für ein JDeveloper-Projekt und es stellte sich heraus, dass das JDeveloper-Upgrade (11.1.1.2.0), das ich gerade installiert hatte, eine spätere Version von SVNKit enthielt als das, das ich für den Kommandozeilen-SVN-Zugriff (jsvn) nutze. Also hatte JDeveloper das Format der .svn-Dateien ruhig aktualisiert, was bedeutete, dass der Befehlszeilenclient sie nicht verstehen konnte. Der Penny fiel, als jsvn über eine fehlende Datei ".svn/format" im obersten Verzeichnis meines Projekts beschwerte. Ich fand haufenweise davon in Unterordnern, die alle identisch aussahen und nur die Ziffer "9" enthielten. Also kopierte ich einen in den Ordner der obersten Ebene und jsvn gab schließlich eine entsprechende Nachricht: "svn: Dieser Client ist zu alt, um mit der Arbeitskopie zu arbeiten '.'; Bitte einen neueren Subversion-Client". Sobald ich (über Google) identifiziert und die kompatible Client SVNKit-Ebene installiert hatte, konnte die neue verbesserte jsvn erkennen, dass meine Arbeitskopie tatsächlich eine Arbeitskopie ist. Moral der Geschichte: Wenn Sie diesen Fehler erhalten und Sie verschiedene SVN-Clients auf dem gleichen Computer verwenden, kann das Problem sein, dass sie nicht mehr synchron sind.

1

Ran in diese jetzt mit TortoiseSVN bereinigen einige tote Verzeichnisse. Ich habe eine Sicherungskopie der Dateien erstellt und dann den Rep-Browser benutzt, um das fehlerhafte Verzeichnis zu löschen (was sowieso ein Gönner war). Dann hat die Bereinigung des Projekts funktioniert und ich kann jetzt mit meinen aktuellen Dateien weitermachen.

0

Da ich alle Aufgaben mit visuellen Werkzeugen ausführe, kann ich nicht sagen, welche Befehle ausgeführt werden müssen.

Das ist meine Umgebung, Windows XP. tortoiseSVN 1.6.7 mit Subversion 1.6.9, Eclipse 3.5 mit Subclipse 1.6.10. und das Repository wird mit Visual SVN Server über Windows verwaltet.

  1. In Visual SVN-Server I gelöscht den Ordner, die von dem anderen Werkzeug erstellt wurde (das war das Problem, wie Keltia sagte).
  2. In meinem Windows Explorer rechtsklicken Sie auf mein Projekt und mit den Optionen von Tortoise SVN drücken Update. Mit dieser Aktion wurde der Ordner in meiner Arbeitskopie gelöscht.
  3. Committed alle meine Änderungen.
  4. lief das Werkzeug, das den Ordner erstellen (wieder).
  5. mit Schildkröte SVN Ich markierte mit hinzufügen, um Liste zu ignorieren.

Hoffe, das hilft.

1

Bitte versuchen Sie herauszufinden, wo das Problem liegt. Ist dies die fehlende .svn-Datei oder etwas anderes? Denken Sie daran, dass die .svn-Datei erstellt wird, wenn Sie mit dem Einchecken fertig sind. und enthält den entsprechenden Verzeichnispfad, Codenamen mit einer eindeutigen Nummer, die ihnen zugeordnet ist. Gehen Sie zum Basispfad Ihres Projekts, von dem Sie glauben, dass es perfekt eingecheckt ist. Erstellen Sie ein neues temporäres Paket und fügen Sie einen Beispiel-Java-Code in diesem Pfad hinzu. Fügen Sie der Version hinzu und versuchen Sie, zu committen. Wenn Sie eine Fehlermeldung erhalten, dass der Ordner gesperrt ist (Versuch, den bereits gesperrten Ordner zu sperren), gehen Sie in den .svn-Ordner und benennen Sie die Sperrdatei um. Versuchen Sie noch einmal zu checken und commit

Wenn es funktioniert, dann sind Sie fertig. Verwenden Sie das gleiche Basisverzeichnis und checken Sie Ihren Code nach dem Aufräumen erneut von diesem Verzeichnis in Ihre Ordnerebene ein.

0

In meinem Fall verschiebe ich Eclipse-Arbeitsbereich auf einen anderen, dann ist ein Problem aufgetreten. Zur Problemlösung habe ich ein Checkout-Projekt vom svn repo. Dann putze ich im alten Projekt alle SVN-Dateien. (einfache Suche .svn und löschen) dann kopiere ich den Inhalt auf den gerade ausgecheckten, meine Änderungen werden sichtbar und mein Projekt ist aktuell. Diese Methode kann für andere störende Fehler angewendet werden.Hofft, dass jemand helfen

0

bitte move aktuelles Verzeichnis in einem anderen Ort, und svn update Befehl ausführen, dann ersetzen Verzeichnis mit bewegte Verzeichnis
, wenn die Verwendung tortoisteSVN, können Sie vor svn update, führte Bereinigung Sie Root-Verzeichnis

Verwandte Themen