2010-02-11 4 views
82

Ich verwende Versionen für SVN.SVN (Subversion) Problem "Datei ist für den Zusatz geplant, aber fehlt" - Verwenden von Versionen

ich versuchen, diese Nachricht zu begehen und erhalten:

failed Commit (Details folgen): ‚/Users/mike/Sites/mysite.com/astss-cvsdude/Trunk/cart/flashfile.swf ' ist für die Zugabe geplant, ist aber

fehlt ich nehme an, das liegt daran, dass ich Dateien in die Repo hinzugefügt hatte, und dann gelöscht sie über das Dateisystem.

Ich möchte es einfach meine Änderung notieren, und die Änderung auf das Repo anwenden.

Wie kann ich das umgehen?

Antwort

9

Eine Datei hinzufügen und dann löschen ist die Art von Operation, die als Fehler angesehen wird - und so sagt Ihnen SVN. Sie haben gesagt, dass Sie einige Dateidaten erwarten sollten, und geben Sie sie dann nicht an, wenn Sie sich verpflichten, die roten Lichter blinken und die Sirenen gehen aus!

Die Antwort ist, Ihre add rückgängig zu machen, alternativ die Datei zu committen und dann 'svn rm' zu verwenden, um sie aus dem Dateisystem und dem Repo zu entfernen.

+0

ich dies von Xcode, wo ich eine Datei hinzufügen und tat es falsch oder etwas und Xcode sagen zu löschen (Umzug nach Müll). Leider lässt Xcode es in diesem Zustand und tut nicht das RM von Svn für mich, obwohl es die Datei löscht ... – chadbag

107

Ich bin mir nicht sicher, was Sie zu tun versuchen: Wenn Sie die Datei über

svn add myfile 

hinzugefügt Sie nur svn sagte diese Datei in Ihrem Repository zu setzen, wenn Sie Ihr nächstes tun begehen. Es gibt in das Repository keine Änderung, bevor Sie eine

svn commit 

Typ Wenn Sie die Datei löschen, bevor der Commit, svn hat es in seinen Aufzeichnungen (weil Sie es hinzugefügt), aber kann es nicht in das Repository senden, da die Datei nicht mehr existieren.

Entweder möchten Sie die Datei im Repository speichern und dann aus Ihrer Arbeitskopie löschen: In diesem Fall versuchen Sie, Ihre Datei zurück zu bekommen (aus dem Papierkorb?), Machen Sie das Commit und löschen Sie die Datei danach über

svn delete myfile 
svn commit 

Wenn Sie die add rückgängig machen wollen und nur die Datei wegwerfen, können Sie zu einem

svn revert myfile 

die svn erzählt (in diesem Fall), um das Add-Vorgang rückgängig zu machen.

EDIT

Sorry, war mir nicht bewusst, dass Sie die "Versionen" GUI-Client für Max OS X verwenden. Also entweder versuchen Sie eine Rückkehr auf das enthaltende Verzeichnis mit Hilfe der GUI oder springen in das kalte Wasser und feuern Sie Ihre versteckte Mac-Kommandozeile :-) (es heißt "Terminal" in der deutschen OSX, keine Ahnung, wie man es in Englisch bringen Version ...)

+2

Das Problem hier ist, dass er eine GUI verwendet. Wenn er die Kommandozeile trotzdem benutzen kann, könnte er die Datei einfach "svn rm", auch wenn sie nicht im Verzeichnis existiert. – Pikrass

+0

Ok, mir war der "Version" Client für OSX nicht bekannt. Er sollte sowieso "zurück" benutzen können, oder? Das würde mit TortoiseSVN unter Windows funktionieren. – MartinStettner

+0

Svn Cleanups und Svn RMS später ... Danke für Ihre Hilfe Jungs. Gibt es eine Möglichkeit, svn zu sagen, "schau, ich habe einige Dateien über den Standard-Dateimanager meines OS hinzugefügt, und gerade jetzt, die Sachen in diesem Ordner, ist, was ich den aktuellen Zustand dieses Repo sein möchte ... jetzt lass es passieren ... sag mir nicht, was ich mit diesen Dateien machen kann und was nicht, aber ja, behalte das alles für mich im Auge. "? – Mike

21

Ich hatte das gleiche Problem mit Versionen, die die gleiche Nachricht anzeigen. Ich klickte einfach die fehlerhaften Dateien an und wählte "Revert ..." aus dem Rechtsklick-Menü und alles war gut.

Grundsätzlich Versionen (eigentlich Subversion) denkt, dass Sie immer noch die Datei hinzufügen möchten, aber es kann nicht gefunden werden, weil Sie es im Dateisystem gelöscht haben. Die Revert-Option weist Subversion an, das Hinzufügen zu vergessen.

+0

Ich bekam diesen Fehler, weil ich einen Ordner aus der App-Hierarchie gelöscht hatte. Ich habe gerade einen leeren Ordner mit dem gleichen Namen hinzugefügt und es hat funktioniert. – Yogi

2

Verwenden Sie Xcode nicht zum Umbenennen von Dateien in einer Ordnerreferenz. Wenn Sie eine Datei mit Xcode umbenennen, wird sie zum Festschreiben markiert. Wenn Sie es später vor dem Festschreiben löschen, erhalten Sie diesen Fehler.

1

This löste mein ähnliches Problem. Ich kann es verwendet, um die Änderungen rückgängig machen, dann habe ich alles und commited Änderungen im Terminal mit

svn add folder_path/* 
svn commit -m "message"