it-swarm.com.de

Umbenannte Datei, jetzt SVN, die mich nicht zulässt

Ich entwickle eine ColdFusion-Website mit Aptana. Wir verwenden SVN zur Versionskontrolle.

Ich habe ein paar Dateien umbenannt und versuche jetzt, eine davon festzuschreiben. Ich erhalte jedoch die folgende Fehlermeldung:

'SVN Commit' has encountered a problem.
org.Apache.Subversion.javahl.ClientException: Illegal target for the requested operation
svn: Commit failed (details follow):
svn: Cannot commit 'R:\myPath\My-New-File-Name.cfm' because it was moved from 'R:\myPath\My-Old-File-Name.cfm' which is not part of the commit; both sides of the move must be committed together

Dies scheint darauf hinzudeuten, dass ich sowohl die vorherige Datei (die umbenannt wurde) als auch die neue umbenannte Datei zusammen übergeben müssen. Wie kann ich eine Datei übergeben, die nicht mehr existiert ...?

45
froadie

Bestätigen Sie das Verzeichnis, nicht die Datei.

Stellen Sie sich ein Verzeichnis als Textdatei vor, die die Liste der darin enthaltenen Dateien enthält. Wenn Sie das Commit erfolgreich ausführen möchten, müssen Sie das Verzeichnis selbst aktualisieren, damit es den alten Eintrag entfernen und den neuen Eintrag hinzufügen kann. Dies wird in SVN als Löschen der alten und Hinzufügen der neuen Datei angezeigt (dh 2 Änderungen im Verzeichnis, nicht 1 Änderungen in der Datei)

Wenn Sie nur die 1-Datei festschreiben möchten, müssen Sie die anderen geänderten Dateien vorübergehend einer Ignorierliste hinzufügen.

83
gbjbaanb

Verschiedene Kunden scheinen damit besser fertig zu werden als andere.

AnkhSVN für Visual Studio stößt auf diesen Fehler und kann nicht damit umgehen.

TortiseSVN (Shell-Erweiterung) funktioniert jedoch - die alte Datei kann gelöscht und die neue hinzugefügt werden. 

Wenn Sie also unter Windows arbeiten, können Sie dies einfach umgehen, indem Sie TortiseSVN aus dem Explorer verwenden, um ein Commit für das Verzeichnis durchzuführen (wodurch der alte Dateiname gelöscht und der neue hinzugefügt wird).

12
Ray Ackley

In Eclipse with Subversion konnte ich diesen verwirrenden Fehler umgehen, indem ich eine Team-> Synchronisierung auf einem Ordner mit genügend hoher Ebene im Projekt durchführte, der sowohl die alten als auch die neuen Dateinamen und Speicherorte umfasste. Wenn Sie Ihre Dateien verschoben und umbenannt haben oder nicht wissen, was genau passiert, kann es nicht schaden, auf der obersten Ebene Ihres Projekts zu synchronisieren.

Bei diesem Vorgang wurden die alten Versionen der umbenannten Dateien in der Synchronisierungsansicht angezeigt. Nachdem ich sie mit "override and commit" verwendet hatte, verschwanden sie wieder. An diesem Punkt werden sich die neuen endlich richtig festlegen.

6
Paul Cuddihy

Fügen Sie eine Datei mit dem alten Namen hinzu, und führen Sie ein Commit aus.

Es besteht die Möglichkeit, dass eine der Dateien umbenannt wird.

Sehen Sie sich die Dateinamen im Fehler an und prüfen Sie, ob diese mit Ihren Dateien übereinstimmen.

Wenn die Dateinamen nicht übereinstimmen, benennen Sie Ihre Datei in die im Fehler angegebene um und legen Sie alle Dateien fest, die Sie festschreiben möchten . Danach können Sie Ihre Datei umbenennen und erneut festschreiben.

2
MCollard

Wenn wirklich Probleme auftreten, besteht die einfachste Lösung darin, den Ordner aus dem Repository zu löschen und ihn in seiner aktuellen Form wieder hinzuzufügen.

SVN-Abwischen und Ersetzen:

  1. Kopieren Sie den Ordner mit allen Änderungen an einen temporären Speicherort.
  2. Verwenden Sie SVN Delete für den Ordner und bestätigen Sie anschließend den Commit.
  3. Kopieren Sie die Sicherungskopie zurück in Ihre Arbeitskopie und bestätigen Sie Ihre Eingabe.
0

svn commit 'R:\meinPfad\Mein-Neuer-Dateiname.cfm' 'R:\MeinPfad\Mein-Alter-Dateiname.cfm'

funktioniert bei mir. Sie müssen nur die gelöschte Datei hinzufügen.

0
rkiko

Bei Visual Studio 2015 habe ich einen Fix für Ankh SVN übergangen. In meinem Fall ist der Fehler darauf zurückzuführen, dass während der Entwicklung eine "Form1.cs" umbenannt wurde (und möglicherweise verschoben wurde). Das verursachte Probleme mit den alten und neuen RESX-Dateien.

  • Markieren Sie das Projekt im Projektmappen-Explorer, um das Fenster mit den ausstehenden Änderungen zu öffnen.
  • Wählen Sie "Datei"> "Subversion"> "Ausstehende Änderungen"
  • Deaktivieren Sie den Pfad
  • Überprüfen Sie die zwei oder mehr Dateien, die Subversion benötigt. Wenn "Neue" nicht in der Liste enthalten ist, ändern Sie ihren Inhalt auf nicht zerstörerische Weise, sodass er in der Liste angezeigt wird.
  • Führen Sie ein Commit aus.

Hoffe, das funktioniert für dich.

0
Tad Macy

Wenn Sie IntelliJ IDEA verwenden und mit TortoiseSVN ein Commit ausführen, kann es vorkommen, dass der Ordner nicht von IDEA gelöscht wird und Subversion diesen Fehler ausgibt. 

In diesem Fall bedeutet dies "Bitte übergeben Sie keinen Ordner/eine Datei, die Sie als gelöscht markiert haben."

0
Chavjoh