it-swarm-eu.dev

Wie überwinden Sie den Fehler "svn veraltet"?

Ich habe versucht, eine Verzeichnisstruktur in Subversion von einem Ort an einen anderen zu verschieben, erhalte jedoch ein Item '*' is out of date Commit-Fehler.

Ich habe die neueste Version ausgecheckt (soweit ich das beurteilen kann). svn st -u zeigt keine anderen Unterschiede als die mv-Befehle.

329
Tim Visher

Ich bekomme das manchmal mit TortoiseSVN unter Windows. Die Lösung für mich ist, svn update das Verzeichnis, obwohl es keine Überarbeitungen zum Herunterladen oder Aktualisieren gibt. Es macht etwas mit den Metadaten, was es auf magische Weise repariert.

621
Michael

Nachdem Sie alle offensichtlichen Dinge und einige der anderen Vorschläge ausprobiert hatten, führte eine Google-Suche zu diesem Link (der Link funktioniert nicht mehr) - Subversion sagt: Ihre Datei oder Ihr Verzeichnis ist wahrscheinlich veraltet -date

Kurz gesagt, der Trick besteht darin, in das Verzeichnis . Svn zu wechseln (in dem Verzeichnis, das die betreffende Datei enthält) und lösche die "all-wcprops" Datei .

Hat für mich gearbeitet, als nichts anderes getan hat.

41
Tom Bushell

Ich glaube, dass dieses Problem von der .svn Akte kommt. Es ist entweder falsch im alten Elternteil, im neuen Elternteil oder im alten. Ich würde versuchen, zu Ihrem Ausgangspunkt zurückzukehren. Verwenden Sie einen Export, um eine saubere Kopie des Ordners zu erhalten. Verschieben Sie die saubere Kopie an den neuen Speicherort, und verwenden Sie zum Verschieben das Hinzufügen und Löschen. Das macht man manuell, was SVN macht, aber es könnte funktionieren.

39
Jim Deville

Ich habe festgestellt, dass dies bei mir funktioniert:

svn update
svn resolved <dir>
svn commit
32
Per Löwgren

Es wurde versucht, die lokale Kopie zu aktualisieren und das betreffende Element zurückzusetzen, und es wurde weiterhin der Fehler "Veraltet" angezeigt. Das hat aus irgendeinem Grund funktioniert:

svn update --force /path/to/dir/or/file
14
Aaron Hall

Ich hatte nur das gleiche Problem in mehreren Ordnern und dies habe ich getan, um Folgendes zu bestätigen:

1) Klicken Sie in der Perspektive "Team Synchronize" mit der rechten Maustaste auf den Ordner> Override and Update
2) Löschen Sie den Ordner erneut
3) Engagieren Sie sich und seien Sie glücklich

10
Rafael Xavier

Danke. Das hat es gerade für mich gelöst. svn update --force/pfad zum dateinamen /

Wenn Ihre aktuelle Datei im lokalen Verzeichnis identisch ist, werden Sie nicht dazu aufgefordert. Wenn sich die Datei unterscheidet, werden Sie zur Eingabe von tf, mf usw. aufgefordert. Wenn Sie mf (meine voll) auswählen, wird nichts überschrieben, und ich könnte ein Commit durchführen, wenn Sie fertig sind.

Jay CompuMatter

5
Jay

Ich schaffe es, es zu lösen, indem ich einen Update-Knopf drücke

5
Alvin567

Machen Sie den Umzug im Repository, wie @ Alexander-Klyubin vorschlägt. Es wird auch viel schneller sein, besonders wenn Sie eine große Datenmenge verschieben müssen, da Sie nicht alle diese Daten erneut über das Netzwerk übertragen müssen.

svn mv https://[email protected]/svn/old/ https://[email protected]/svn/new/

sollte gut funktionieren

4
Aeon

Entfernen Sie Ihre Datei oder Ihren Pfad mit, bevor Sie den Befehl ausführen

Sudo rm -r /path/to/dir/

nach :

svn up and commit or delete 
3
Clamorious

Es gibt mindestens eine andere Ursache für den Fehler "Veraltet". In meinem Fall war das Problem .svn/dir-props, das durch Ausführen von "svn propset svn: ignore -F .gitignore" erstellt wurde. zum ersten Mal. Das Löschen von .svn/dir-props scheint eine schlechte Idee zu sein und kann andere Fehler verursachen. Verwenden Sie daher möglicherweise "svn propdel", um das fehlerhafte "svn propset" zu bereinigen.

# Normal state, works fine.
> svn commit -m"bump"  
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 509.

# Set a property, but forget to commit.
> svn propset svn:ignore -F .gitignore .
property 'svn:ignore' set on '.'

# Edit a file. Should have committed before the edit.
> svn commit -m"bump"                   
Sending        .
svn: Commit failed (details follow):
svn: File or directory '.' is out of date; try updating
svn: resource out of date; try updating

# Delete the property.
> svn propdel svn:ignore .              
property 'svn:ignore' deleted from '.'.

# Now the commit works fine.
> svn commit -m"bump"     
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 510.
2
infogizmo

Wenn Sie die Svn-Brücke von Github verwenden, ist es wahrscheinlich, dass sich etwas auf der Seite von Github geändert hat. Die Lösung ist einfach: Sie müssen nur svn switch Ausführen, damit es sich selbst richtig findet, dann aktualisiert und alles funktioniert. Führen Sie einfach die folgenden Schritte im Stammverzeichnis Ihrer Kasse aus

svn info | grep Relative 
svn switch path_from_previous_command
svn update

oder

svn switch `svn info | grep Relative | sed 's_.*: __'`
svn update

Die Basis für diese Lösung ist Lee Preimesbergers Blog

2
Perkins

Sind Sie sicher, dass Sie den Kopf und nicht eine niedrigere Revision ausgecheckt haben? Haben Sie auch ein Update durchgeführt, um sicherzustellen, dass Sie die neueste Version haben?

Es gibt eine Diskussion darüber auf http://svn.haxx.se/users/archive-2007-01/0170.shtml .

2
jgreep

Führen Sie die Verschiebung direkt im Repository durch.

2
Alexander

Aktualisieren Sie Ihren Server und Ihren Client auf Subversion 1.9.

Wenn der out of date Fehler tritt zufällig auf, wenn dies normalerweise nicht der Fall sein sollte. Wenn Sie ein Commit ausführen, kann dies darauf hinweisen, dass Sie einen veralteten und nicht unterstützten Subversion 1.7-Client oder -Server verwenden.

Sie sollten den Server und die Clients aktualisieren, um das Problem zu beheben. Siehe den entsprechenden Eintrag in den Versionshinweisen zu Subversion 1.9: Fehler "Veraltet" beim Festschreiben über HTTPv1.

1
bahrep

Der Fehler liegt darin, dass Sie diese bestimmte Datei nicht aktualisiert haben. Erst die Aktualisierung, dann können nur Sie die Datei festschreiben.

1
abhishek pant

Bewegen Sie es mit svn mv oder nur mv? Ich denke, dass die Verwendung von nur mv dieses Problem verursachen kann.

1
Ryan Bigg

Ich habe das gemacht und es hat bei mir funktioniert:
1. Erstellen Sie eine Sicherungskopie Ihrer Datei. Sie können Ihren Code einfach in eine Textdatei kopieren.
2. Klicken Sie mit der rechten Maustaste auf die Datei, für die Sie ein Commit durchführen möchten. >> Team >> Verlauf anzeigen. 3. Im Bereich "Verlauf anzeigen" sehen Sie alle Revisionen dieser Datei. Klicken Sie mit der rechten Maustaste auf die neueste Version der Datei >> Get Revision: Ihre lokalen Änderungen werden überschrieben.
4. Verbinden Sie nun Ihren Code mit der neuesten Datei mit der Sicherungsdatei (Schritt 1).
5. Synchronisieren und Übernehmen Sie die neu zusammengeführte Datei.

1
Sameer Patel

Ich habe diesen Fehler zufällig erhalten, nachdem ich einige Verzeichnisse gelöscht hatte, die jeweils einige Dateien enthielten. Ich habe die Verzeichnisse über Netbeans gelöscht und festgestellt, dass sie nicht wirklich gelöscht wurden. Es schien nur alles in den Verzeichnissen zu löschen und den Verweis auf das Verzeichnis in Netbeans zu entfernen. Sie waren jedoch noch im Dateisystem vorhanden. Stellen Sie sicher, dass sie aus dem Dateisystem gelöscht wurden, und wiederholen Sie das Festschreiben.

1
Bower

Ich habe das Verzeichnis auf meinen lokalen Rechner verschoben, um es sicher zu verwahren, dann habe svn das dumme Verzeichnis gelöscht und dann festgeschrieben. Als ich versuchte, den Ordner von meinem lokalen Computer hinzuzufügen, warf er NOCH den Fehler auf (SVN-Verschiebung tat dasselbe, als ich versuchte, den Ordner umzubenennen). Also habe ich zurückgesetzt, dann habe ich ein mkdir DIRNAME gemacht, hinzugefügt und festgeschrieben. Dann habe ich den Inhalt hinzugefügt und festgeschrieben, und es hat funktioniert.

1
Melissa

Wenn Sie einmal ein ähnliches Problem gelöst haben, indem Sie einfach eine neue Arbeitskopie auschecken und das .svn-Verzeichnis ersetzen, wodurch die Commit-Fehler durch dieses neu ausgecheckte ersetzt werden. Der Grund in meinem Fall war, dass die Arbeitskopie nach einer Repository-Beschädigung und Wiederherstellung aus einer Sicherung auf eine Revision zeigte, die im wiederhergestellten Repository nicht vorhanden war. Außerdem wurden "Artikel nicht mehr aktuell" -Fehler gemeldet. Das Aktualisieren der Arbeitskopie vor dem Festschreiben hat das Problem nicht gelöst, das Ersetzen der .svn-Datei wie oben beschrieben jedoch.

1
fileunderwater

Versucht alle, aber direkt in .svn ändern. Nichts hat geholfen, also hier ist meine Lösung.

In Eclipse> Fenster> Ansicht anzeigen> Verlauf Ich habe gesehen, dass die Datei nicht auf dem neuesten Stand ist, obwohl ich mehrere svn "Override & Update"/"Revert"/Datei löschen und auschecken gemacht habe.

Also ging ich zum Package Explorer> Rechtsklick auf Datei> Ersetzen durch> Neueste aus dem Repository.

Ein weiterer Blick in die Verlaufsansicht zeigte, dass sich die Datei jetzt in der neuesten Version befand.

1
katana0815

"Clean Up" Es bringt Sie auf Kurs.

Klicken Sie mit der rechten Maustaste auf den Ordner "svn" und klicken Sie auf "Bereinigen". Tun Sie dies, wenn Sie diesen Fehler erhalten.

1

In meinem Fall war nur das Löschen der lokalen Version und das erneute Auschecken einer neuen Kopie eine Lösung.

0
Macilias

Ich habe dies gerade erhalten, als ich versucht habe, commit aus einem trunk - Verzeichnis zu entfernen. Das Ausführen von svn update Aus dem Verzeichnis trunk hat den Fehler nicht behoben. Indem Sie jedoch svn update aus dem übergeordneten Verzeichnis (zu dem das Verzeichnis .svn gehört) ausführen, wurde der Fehler behoben.

Meine Vermutung, was passiert ist (ein Anwendungsfall, unter anderem, kann es mehrere Gründe für diese "svn: E160024: Ressource veraltet; versuchen Sie es zu aktualisieren" geben): neben trunk gab es eine branches Verzeichnis. Ich habe einen branches/branch-1 In master von GitHub gezogen. Das Ausführen von svn update Aus dem übergeordneten Verzeichnis (d. H. Dem Stammverzeichnis meiner Arbeitskopie) anstelle von trunk scheint zusätzlich zu branches etwas in trunk bewirkt zu haben. ]. Als ich erneut commit versuchte, gab es keinen Fehler.

Wie ich bereits sagte, ist dies jedoch ein Fall unter wahrscheinlich vielen anderen.

Randnotiz: Anders als von jemandem vorgeschlagen, halte ich es nicht für eine gute Idee, manuell im Verzeichnis .svn Zu spielen.

0
Hibou57

ich habe diese Fehlermeldung erhalten, als ich versucht habe, einige Dateien festzuschreiben. Es handelte sich lediglich um eine Datei/einen Ordner, die/der in meiner Arbeitskopie nicht vorhanden war. Ich wollte wirklich nicht durch den Aufwand des Verschiebens der Dateien und des erneuten Überprüfens gehen, am Ende habe ich die .svn/entries-Datei bearbeitet und den fehlerhaften Verzeichnisverweis entfernt.

0
Al W

Dies geschah, als ich einen Zweig einer früheren Version mit Dateien aus dem Trunk aktualisierte. Ich habe mit Windows Explorer Ordner aus meinem Trunk-Checkout-Ordner kopiert und sie in meine Eclipse-Ansicht des Checkout-Ordners für den Release-Zweig eingefügt. Der Windows Explorer wurde jetzt so konfiguriert, dass keine "versteckten" Dateien angezeigt werden, die mit "." Beginnen, sodass ich nicht bemerkte, dass alle falschen .svn-Dateien in den Checkout-Ordner meines Release-Zweigs eingefügt wurden. Doh!

Meine Lösung bestand darin, das beschädigte Eclipse-Projekt wegzublasen, es erneut auszuchecken und dann die neuen Dateien sorgfältiger zu kopieren. Ich habe auch Windows geändert, um "versteckte" Dateien anzuzeigen.

0
Jim Ferrans

Führen Sie einfach svn in der Befehlszeile aus oder wählen Sie in Windows die Option svn update aus.

  • Sobald dies erledigt ist, können Sie weitere Aktionen wie das Festschreiben und andere ausführen.
0
Indrajeet Gour

Um das Problem zu lösen, musste ich die Datei mit dem Problem zurücksetzen und meine Arbeitskopie aktualisieren. Später änderte ich die Datei erneut und nach diesen Schritten trat der Fehler nicht mehr auf.

0
sandolkakos

Ich habe gerade diesen Fehler bekommen. Ich empfehle, zuerst auf Ihrem Server zu überprüfen, ob die Originaldatei vorhanden ist. Manchmal werden die Änderungen nicht in Ihrem lokalen Ordner vorgenommen. Wenn dies Ihre Situation ist, löschen Sie einfach Ihren Ordner und checken Sie ihn erneut aus.

0
brunch875