Also - ich hatte vor ein paar Revisionen ein Verzeichnis namens mysql. Ich habe es gelöscht und mich entschlossen, von vorne zu beginnen. Wenn ich jedoch versuche, das neue MySQL-Verzeichnis zu erstellen, wird weiterhin der Fehler "Datei existiert bereits" angezeigt:
support:/etc/puppet/modules# mkdir mysql
support:/etc/puppet/modules# svn add mysql/
A mysql
support:/etc/puppet/modules# svn commit -m " Test"
Adding modules/mysql
svn: Commit failed (details follow):
svn: File already exists: filesystem '/var/lib/svn/puppet/db', transaction '11-r', path '/trunk/modules/mysql'
support:/etc/puppet/modules# svn delete mysql
svn: Use --force to override this restriction
svn: 'mysql' has local modifications
support:/etc/puppet/modules# svn --force delete mysql
D mysql
Ich habe einige andere Beiträge gesehen, in denen vorgeschlagen wurde, ein Update zu erzwingen
support:/etc/puppet/modules# svn status
support:/etc/puppet/modules# svn update
At revision 11.
support:/etc/puppet/modules# svn mkdir mysql
A mysql
support:/etc/puppet/modules# svn commit -m "Test"
Adding modules/mysql
svn: Commit failed (details follow):
svn: File already exists: filesystem '/var/lib/svn/puppet/db', transaction '11-s', path '/trunk/modules/mysql'
Hatte ein ähnliches Problem. Um dies zu beheben, wurde vom SVN-Trunk mit der Option der Priorität lokaler Dateien aktualisiert.
Nachdem Sie wie gewohnt festlegen konnten. Seien Sie natürlich vorsichtig damit.
quelle
hatte schon diese Art von Problem.
Meine Lösung war:
Löschen Sie den Ordner aus svn, aber bewahren Sie eine Kopie des Ordners irgendwo auf. Übernehmen Sie die Änderungen. Löschen Sie in der Sicherungskopie rekursiv alle darin enthaltenen .svn-Ordner. dafür könntest du rennen
Löschen Sie das lokale Repository und checken Sie das gesamte Projekt erneut aus. Ich weiß nicht, ob ein teilweises Löschen / Auschecken ausreichend ist.
Grüße
quelle
mysql
langer Zeit gelöscht und ich - aber da hatte ich die Nase voll von "Datei existiert bereits", dass ich nur versucht habe, ein leeres Verzeichnis zu erstellen ... Es würde es immer noch nicht hinzufügen . Auchfind -name '.svn' -exec rm -rf {} \;
viel kürzer Weg, um das zu tun, was Ihre Bash-Sachen tunfind . -name '.svn' -delete
? Es sollte sogar schneller sein als einfind
, mit dem Muscheln erzeugt werden-exec
.Ich habe es geschafft, das Problem zu umgehen, indem ich zur letzten Version zurückgekehrt bin, in der sich das MySQL-Verzeichnis befand, dann den Inhalt des Verzeichnisses gelöscht, den neuen Inhalt darin abgelegt und die neuen Informationen wieder eingecheckt habe. Obwohl ich neugierig bin, ob Jeder hat eine bessere Erklärung dafür, was zum Teufel dort vor sich ging.
quelle
Dies ist ein böser ... mysteriöser Fehler und keine klare Lösung.
update / revert / commit hat in meiner Situation NICHT funktioniert. Ich hatte nichts Seltsames getan - nur ein paar SVN-Bewegungen.
Was DID für mich funktioniert hat war:
Seltsamerweise. Grundsätzlich wurde das
svn remove --force offender
aus irgendeinem Grund nicht vollständig entfernt. Welches ist eine Art, was die Fehlermeldung sagte. Erst durch Entfernen des Elternteils und anschließendes Aktualisieren des Elternteils wurde dies offensichtlich, da der Täter dann wieder auftauchte! svn entfernt den Täter wieder und entfernt ihn dann ordnungsgemäß.quelle
Ich bin mir nicht sicher, ob dies Ihnen hilft, aber ich denke, wenn Sie
svn add mysql
nach dem Löschen ein Verzeichnis erstellen, wird das Verzeichnis nur neu erstellt (machen Sie also kein mkdir selbst). Wenn Sie selbst ein Verzeichnis erstellen, erwartet svn ein .svn-Verzeichnis darin, da es bereits darüber Bescheid weiß.quelle
quelle
Ich hatte dieses Problem bei einem Projekt, das ich auf Netbeans ausführe. Ich habe einfach mit der rechten Maustaste auf die Datei geklickt und sie aktualisiert, um sie zu reparieren (nach dem SVN).
quelle
Diese Lösung verschmilzt reibungslos und verliert nicht die Geschichte:
quelle
Ich bin heute auf dieses Problem gestoßen, als Xcode während einer Zweigzusammenführung abstürzte. Irgendwie wurde die Datei in das SVN-Repository hochgeladen, aber nicht richtig in der SVN-Datenbank aufgezeichnet. Ich habe die folgenden Befehle in dem Verzeichnis ausgeführt, in dem die Datei lokal vorhanden war:
Dann habe ich die Datei von meinem lokalen System erneut hinzugefügt:
Erfolg!
quelle
Diese Situation trat auf, wenn sich Objekte im Repository befinden, die durch die aktuelle Transaktion erstellt werden.
Einfaches Szenario:
Gleiches gilt, wenn Sie dieselben Dateien aus zwei Arbeitskopien hinzufügen.
quelle
Gemäß der Lösung von Atmocreation müssen Sie jedoch nicht das gesamte Projekt erneut auschecken. Dies ist hilfreich, wenn bereits Arbeiten ausgeführt werden.
Angenommen, Sie haben eine Arbeitskopie:
welches Verzeichnisse enthält:
und Sie erhalten die Fehlermeldung beim Festschreiben:
Sichern Sie den Inhalt der Leiste irgendwo:
Löschen Sie die .svn-Steuerverzeichnisse aus der Sicherung. Stellen Sie sicher, dass Sie diesen Befehl richtig ausführen, sonst können Sie ziemlich ernsthaften Schaden anrichten !! Löschen Sie sie manuell, wenn Sie sich nicht sicher sind.
Stellen Sie sicher, dass die Kopie identisch ist:
Entfernen Sie das fehlerhafte Verzeichnis aus der Arbeitskopie: cd / foo rm -rf bar
Und stellen Sie es dann aus dem Repository wieder her:
Kopieren Sie die geänderten Dateien aus dem Backup zurück:
Sie sollten jetzt in der Lage sein, ohne Fehler festzuschreiben.
quelle
Was Sie brauchen, ist der Befehl svn 'export'. Damit können Sie eine Datei oder einen gesamten Verzeichnisbaum in den Status einer anderen Revision in einem anderen Zweig versetzen.
Also so etwas wie
quelle
Das Problem ist, dass das Auschecken auf einem Laptop stattfindet und in diesem Fall die Subversion die Offline-Synchronisation nicht bewältigen kann. Das Problem ist auf einem anderen Laptop reproduzierbar, während ich auf einem Desktop kein Problem damit habe, dasselbe Repository zu überprüfen.
Ich hoffe, diese Antwort wird Ihnen helfen. Ich habe ziemlich lange gebraucht, um das herauszufinden.
quelle