Was soll ich tun, wenn die SVN-Bereinigung fehlschlägt?

245

Ich habe viele Änderungen in einem Arbeitsordner und etwas ist schief gelaufen, als ich versucht habe, ein Update durchzuführen.

Wenn ich jetzt eine 'svn-Bereinigung' herausgebe, bekomme ich:

>svn cleanup .
svn: In directory '.'
svn: Error processing command 'modify-wcprop' in '.'
svn: 'MemPoolTests.cpp' is not under version control

MemPoolTests.cpp ist eine neue Datei, die ein anderer Entwickler hinzugefügt hat und die im Update heruntergefahren wurde. Es war vorher nicht in meinem Arbeitsordner vorhanden.

Kann ich irgendetwas tun, um vorwärts zu kommen, ohne eine neue Kopie des Repositorys auschecken zu müssen?

Erläuterung: Vielen Dank für die Vorschläge, das Verzeichnis aus dem Weg zu räumen und eine neue Kopie herunterzufahren. Ich weiß, dass dies eine Option ist, aber ich möchte diese vermeiden, da es viele Änderungen gibt, die mehrere Verzeichnisse tief verschachtelt sind (dies sollte ein Zweig gewesen sein ...).

Ich hoffe auf eine aggressivere Art der Bereinigung, vielleicht hat die SVN Probleme, die Datei wieder in einen bekannten Zustand zu versetzen (und ich habe versucht, die Arbeitskopie davon zu löschen ... das hat nicht geholfen).

Rob Walker
quelle
Betreff: Verwenden einer neuen Kopie. Holen Sie sich eine Kopie von unvergleichlich, um die Versionen gegeneinander zu unterscheiden
Jon Winstanley
2
Hat die Lösung von amin bei Ihnen nicht funktioniert? Sicherlich eine offensichtliche Antwort, um etwas anderes zu akzeptieren?
Alice Purcell
2
Stellen Sie sicher, dass keine der Dateien von einer Anwendung geöffnet bleibt. Dies kann leicht vergessen werden. Process Explorer und eine schnelle Suche auf dem Pfad sind sehr nützlich, um dies aufzudecken: technet.microsoft.com/en-us/sysinternals/bb896653.aspx
angle
4
IMHO ist das Vorhandensein des Befehls "svn cleanup" ein Eingeständnis eines Fehlers.
Jojo
Haben Sie dieses gesehen: stackoverflow.com/questions/9128598/svn-code-cleanup-issue
Orhan Veli Esen

Antworten:

223

Wenn man von vorne anfängt, ist das keine Option ...

Ich habe die Protokolldatei im .svnVerzeichnis gelöscht (ich habe auch die fehlerhafte Datei gelöscht .svn/props-base), eine Bereinigung durchgeführt und mein Update fortgesetzt.

Peter Mortensen
quelle
3
Ich hatte hier ein ähnliches Problem wie bei der ursprünglichen Frage (aufgrund einer unterbrochenen SVN-Prüfung). Das hat es für mich behoben. Allerdings musste ich auch in das übergeordnete Verzeichnis gehen und dort dasselbe tun.
Nigel Hawkins
2
+1 Ich kann dir nicht sagen, wie oft ich in dieser Situation war. Wenn es sich um einen Sub-Sub-Ordner handelt, löschen Sie einfach den gesamten Ordner, bereinigen und aktualisieren Sie ihn. Wenn es sich jedoch um eine Datei im Stammverzeichnis handelt, ist dies keine billige Option (mehrere Stunden, um das gesamte Projekt erneut auszuchecken). Fantastischer Tipp - vielen Dank.
Ewan Makepeace
9
Für mich hat das Löschen der Sperrdateien es geschafft. Vielleicht von Interesse für jemanden. Sie können sie rekursiv mit dem folgenden Befehl löschen: rm -rffind . -type f -name lock
H6.
1
Der Befehl von happy-coding funktioniert nicht. Dies tut:sudo rm -rf | find . -type f -name lock
Zachary Schuessler
2
Ich konnte nicht finden, dass .svn/prop-baseich habe.svn/[pristine|tmp|entries|format|wc.db]
Bigpony
112

Mit SVN 1.7 haben sich die Dinge geändert, und die beliebte Lösung zum Löschen der Protokolldatei im Verzeichnis .svn ist mit der Umstellung auf eine Datenbank-Arbeitskopie-Implementierung nicht möglich.

Folgendes schien zu funktionieren:

  1. Löschen Sie das .svn-Verzeichnis für Ihre Arbeitskopie.
  2. Starten Sie eine neue Kasse in einem neuen, temporären Verzeichnis.
  3. Kündigen Sie die Kaufabwicklung (wir möchten nicht warten, bis alles heruntergezogen wird).
  4. Führen Sie eine Bereinigung für diese abgebrochene Kaufabwicklung durch.
  5. Jetzt haben wir ein neues .svn-Verzeichnis mit einer sauberen Datenbank (obwohl keine / wenige Dateien)
  6. Kopieren Sie diese .svn in Ihr altes, beschädigtes Arbeitsverzeichnis.
  7. Führen Sie svn update aus und es sollte Ihr neues partielles .svn-Verzeichnis mit Ihrem alten Arbeitsverzeichnis auf den neuesten Stand bringen.

Das ist alles ein wenig verwirrend, prozessmäßig. Im Wesentlichen löschen wir die beschädigte .svn und erstellen dann eine neue .svn für denselben Checkout-Pfad. Wir verschieben dann diese neue .svn in unser altes Arbeitsverzeichnis und aktualisieren sie auf das Repo.

Ich habe dies gerade in TSVN gemacht und es scheint gut zu funktionieren und erfordert kein vollständiges Auschecken und Herunterladen.

-Jody

JKoplo
quelle
8
Ich mache das anscheinend mindestens zweimal im Monat. So ein Schmerz. Das SVN-Team sollte diese Schritte hinzufügen svn cleanup --force. Und natürlich gehen alle Operationen zum Hinzufügen, Löschen und (mit 1.8) Umbenennen verloren.
Martin
2
@ Adgezaza Ja. Ja tut es.
mjs
1
das behebt es für mich. Es ist ein bisschen anders: Nach dem Ändern von svn schlägt die Aktualisierung für einen bestimmten Ordner fehl. Löschen Sie diesen Ordner und alles ist in Ordnung
Hoàng Long
@Pup sollte es. Im Wesentlichen ziehen Sie nur die Metadaten für eine neue Kasse herunter und füllen sie dann mit Dateien. SVN bestimmt, ob die Dateien mit den Metadaten übereinstimmen oder nicht. Aber, wissen Sie, schließen Sie alles zuerst für alle Fälle ...
JKoplo
1
Ich habe den SVN (Tortoise SVN 1.8) neu installiert, jeden svn-Ordner aus meinem Projekt entfernt und dann die hier genannten Vorgänge ausgeführt und voila! Danke an den Autor!
Dmitry
110

Schau es dir an

http://www.anujvarma.com/svn-cleanup-failedprevious-operation-has-not-finished-run-cleanup-if-it-was-interrupted/

Zusammenfassung des Fixes vom obigen Link (Danke an Anuj Varma)

  1. Installieren Sie die SQLite-Befehlszeilen-Shell (sqlite-tools-win32) von http://www.sqlite.org/download.html

  2. sqlite3 .svn/wc.db "select * from work_queue"

Das SELECT sollte Ihnen Ihren fehlerhaften Ordner / Ihre fehlerhafte Datei als Teil der Arbeitswarteschlange anzeigen. Sie müssen dieses Element aus der Arbeitswarteschlange löschen.

  1. sqlite3 .svn/wc.db "delete from work_queue"

Das ist es. Jetzt können Sie die Bereinigung erneut ausführen - und es sollte funktionieren. Oder Sie können direkt mit der Aufgabe fortfahren, die Sie ausgeführt haben, bevor Sie aufgefordert werden, die Bereinigung auszuführen (Hinzufügen einer neuen Datei usw.).

Siva
quelle
Beachten Sie, dass von Antworten nur mit Links abgeraten wird. SO-Antworten sollten der Endpunkt einer Suche nach einer Lösung sein (im Gegensatz zu einem weiteren Zwischenstopp von Referenzen, die im Laufe der Zeit veralten). Bitte fügen Sie hier eine eigenständige Zusammenfassung hinzu, wobei Sie den Link als Referenz behalten.
Kleopatra
8
Firefox verfügt über eine SQLite Manager- Erweiterung, mit der die Datei .svn / wc.db geöffnet und bearbeitet werden kann. Bietet eine praktische GUI, um äquivalente Operationen für work_queue auszuführen.
Magicianeer
Wenn Sie eine aktuelle Version von SVN und Firefox haben, behebt das SQLite Manager-Addon dieses Problem in 30 Sekunden. Machen Sie sich keine Sorgen, wenn Sie Verzeichnisse löschen oder den Repobrowser verwenden. Im Jahr 2016 denke ich, dass dies die akzeptierte Antwort sein sollte
Arbit
5
Für mich läuft 'aus WC_LOCK löschen;' ist ebenfalls erforderlich.
Tristan.Liu
Perfekt arbeiten! Svn saugt! Aber nach dem Löschen aus work_queue svn gib mir einen anderen Fehler "svn gesperrt", laufe einfach mit Schildkröte (Eclipse hat keine Option) aufräumen mit "Break Locks"
aktiviert
42

Wenn alle Stricke reißen:

  1. In einen neuen Ordner auschecken.
  2. Kopieren Sie Ihre geänderten Dateien über.
  3. Checken Sie wieder ein.
  4. Komprimieren Sie den alten Ordner irgendwo (Sie wissen nie, dass Paranoia gut ist), bevor Sie ihn löschen und den neuen verwenden.
Martin Beckett
quelle
27

Die neueste Version (ich verwende 1.9.5) löst dieses Problem, indem Sie im Bereinigungsmenü die Option "Sperren aufheben" hinzufügen. Stellen Sie einfach sicher, dass dieses Kontrollkästchen beim Aufräumen aktiviert ist.

Fenster aufräumen

Tao
quelle
Es scheint jetzt so offensichtlich! Danke
Billy Jake O'Connor
Lief wie am Schnürchen!
Viswanath
Funktioniert gut für mich.
Sergey
Hat funktioniert! Als ich diese Lösung sah, wusste ich sofort, was das Problem war ... (glaube ich): Ich hatte noch ein Excel offen, das es modifiziert. Ich wollte meine Änderungen an einigen Java-Dateien festschreiben und sah die Excel-Datei und sagte: "Ich habe dort nichts geändert ... zurücksetzen". Was nicht funktioniert hat, dann wurde mir klar, dass es noch offen ist, ich habe es geschlossen, F5, es wurde nicht mehr im Commit angezeigt, also fahren Sie mit dem Commit fort. Und dann sagt es mir "pls run cleanup" und von da an steckte ich fest. So danke! :)
BAERUS
16

Diese Antwort gilt nur für Versionen vor 1.7 (danke @ ŁukaszBachman) .

Subversion speichert seine Informationen pro Ordner (in .svn). Wenn Sie also nur mit einem Unterordner arbeiten, müssen Sie nicht das gesamte Repository auschecken - nur den Ordner, der borked hat:

cd dir_above_borked
mv borked_dir borked_dir.bak
svn update borked_dir

Dadurch erhalten Sie eine gute Arbeitskopie des Ordners borked, aber Ihre Änderungen werden weiterhin in borked_dir.bak gesichert. Das gleiche Prinzip gilt für Windows / TortoiseSVN.

Wenn Sie Änderungen in einem isolierten Ordner haben, schauen Sie sich die an

svn checkout -N borked_dir   # Non-recursive, but deprecated

oder

svn checkout --depth=files borked_dir
# 'depth' is new territory to me, but do 'svn help checkout'
Ken
quelle
Mit Ihrem Vorschlag "Wenn Sie nur mit einem Unterordner arbeiten, müssen Sie nicht das gesamte Repository
auschecken
Dies funktionierte für mich - alles, was ich tat, war svn updas gleiche Repo, das sich mitten svn upin einem anderen Tab befand - ich vergaß, dass ich das getan hatte und ließ es in der Nacht zuvor unvollständig.
Jon z
Nicht mehr wahr - mit der neuesten Version verwendet SVN jetzt nur noch ein .svnVerzeichnis.
ŁukaszBachman
9
$ ls -la .svn
$ rm -f .svn/lock

Dann

$ svn update

Ich hoffe es hilft

ingestado
quelle
6

Ich hatte genau das gleiche Problem. Ich konnte mich nicht festlegen, und die Bereinigung würde fehlschlagen.

Einsatz einen Kommandozeilen - Client konnte ich eine Fehlermeldung sehen , was anzeigt , dass es versagt , eine Datei bewegen aus .svn/propszu .svn/prop-base.

Ich habe mir die spezifische Datei angesehen und festgestellt, dass sie als schreibgeschützt markiert ist. Nachdem ich das schreibgeschützte Attribut entfernt hatte, konnte ich den Ordner bereinigen und meine Änderungen festschreiben.

DanJ
quelle
Ich habe diesen Baum aufgegeben und am Ende einen neuen bekommen. Aber danke für den Hinweis auf etwas, das Sie beim nächsten Mal überprüfen sollten.
Rob Walker
ha ... ich habe sogar die Ordner im Bereich .svn \ pristine von {name} in {name} _old und dann zurück zum ursprünglichen {name} umbenannt und es hat funktioniert
beauXjames
5

Möglicherweise haben Sie ein Problem mit zwei Dateinamen, die sich nur durch Großbuchstaben unterscheiden. Wenn Sie auf dieses Problem gestoßen sind, wird das Problem durch Erstellen eines anderen Arbeitskopieverzeichnisses nicht behoben.

Aktuelle Windows-Dateisysteme (dh beschissene) machen den Unterschied zwischen Filenameund einfach nicht deutlich FILEname. Sie haben zwei mögliche Korrekturen:

  1. Testen Sie auf der Plattform mit einem echten Dateisystem (Unix-basiert), benennen Sie die Datei um und übernehmen Sie Änderungen.
  2. Wenn Sie mit Windows ausgestattet sind, können Sie Dateien im Eclipse SVN-Repository-Browser umbenennen, der den Unterschied erkennt, und die Datei dort umbenennen.
  3. Sie können die problematischen Dateien auch remote von jedem Befehlszeilen-SVN-Client aus umbenennen svn rename -m "broken filename case" http://server/repo/FILEname http://server/repo/filename
andrej
quelle
Dies stellte sich als mein Problem heraus; Ein Mitarbeiter hatte es irgendwie geschafft, mehrere Xcode-Projektdateien einzuchecken, von denen jede zwei Kopien enthielt, die sich nur in Groß- und Kleinschreibung unterschieden. Ich habe TortoiseSVN verwendet, um das Repo zu durchsuchen und die zusätzlichen Dateien zu löschen. Dann habe ich meine lokalen Ordner mit den doppelten Dateien gelöscht und das SVN-Update war endlich erfolgreich.
Kgriffs
Nicht nur ein Windows-Problem. Dies betrifft auch Macs. Bei Macs HFS + -Dateisystemen wird standardmäßig auch zwischen Groß- und Kleinschreibung unterschieden, wobei jedoch die Dateinamen nicht berücksichtigt werden. Ich habe auf meiner Festplatte eine zweite Partition eingerichtet, die zwischen Groß- und Kleinschreibung unterscheidet, um diese Probleme zu umgehen.
David W.
4

Führen Sie den svn cleanupBefehl in einem Terminal aus (wenn er in Eclipse fehlschlägt, was mein Fall war):

~/path/to/svn-folder/$ svn cleanup

Ich habe verschiedene hier erklärte Lösungen ausprobiert , aber keine hat funktioniert .

Action - TeamUpdate auf den Kopf schlägt fehl:

svn: E155004: In '/ home / user / path / to / svn-folder' befinden sich unvollendete Arbeitselemente. Führen Sie zuerst 'svn cleanup' aus.

Action - TeamCleanup nicht mit dem gleichen Fehler.

Lösung, die bei mir funktioniert hat: Führen Sie den Befehl svn cleanup in einem Terminal aus .

Der Befehl war erfolgreich.

Dann TeamUpdate funktionierte in Eclipse wieder.

Hinweis: Meine SVN-Version ist 1.9.3.

Überprüfen Sie auch Chris 'Antwort, wenn svn cleanupsie nicht funktioniert.

el-teedee
quelle
3

Ich habe versucht, svn cleanupüber die Konsole zu tun und habe eine Fehlermeldung wie:

svn: E720002: Can't open file '..\.svn\pristine\40\40d53d69871f4ff622a3fbb939b6a79932dc7cd4.svn-base':
The system cannot find the file specified.

Also habe ich diese Datei manuell erstellt (leer) und svn cleanupwieder gemacht. Diesmal war es OK.

Nikita Bosik
quelle
3

Ich hatte das gleiche Problem. Für mich war die Ursache ein Konflikt mit EasySVN und (TortoiseSVN oder nur SVN). Ich hatte ein automatisches Update und Commit mit EasySVN (was nicht funktionierte).

Als ich dies deaktivierte, konnte ich nicht bereinigen, festschreiben oder aktualisieren. Keine der oben genannten Lösungen hat funktioniert, aber ein Neustart hat funktioniert :)

Jimi
quelle
Yaaaaay jimi, du bist mein Held (in).
TRoa
2

Ich hatte gerade das gleiche Problem unter Windows 7 64-Bit. Ich habe die Konsole als Administrator ausgeführt und das .svn-Verzeichnis aus dem Problemverzeichnis gelöscht (habe einen Fehler bezüglich Protokollen oder Ähnlichem erhalten, ihn aber ignoriert). Dann habe ich im Explorer das Problemverzeichnis gelöscht, das nicht mehr unter Versionskontrolle angezeigt wurde. Dann habe ich ein Update ausgeführt und die Dinge verliefen wie erwartet.

Carnix
quelle
2

Wenn das Problem die Groß- und Kleinschreibung ist (was beim Auschecken auf einem Mac sowie unter Windows ein Problem sein kann) und Sie nicht die Möglichkeit haben, auf einem * nix-System auszuchecken, sollte Folgendes funktionieren. Hier ist der Prozess von Anfang an:

% svn co http://[domain]/svn/mortgages mortgages

(Kasse folgt… dann…)

svn: In directory 'mortgages/trunk/images/rates'
svn: Can't open file 'mortgages/trunk/images/rates/.svn/tmp/text-base/Header_3_nobookmark.gif.svn-base': No such file or directory

Hier versucht SVN, zwei Dateien mit ähnlichen Namen auszuchecken, die sich nur von Fall zu Fall unterscheiden - Header_3_noBookmark.gifund Header_3_nobookmark.gif. Bei Mac-Dateisystemen wird die Groß- und Kleinschreibung standardmäßig so berücksichtigt, dass SVN in solchen Situationen erstickt. So...

% cd mortgages/trunk/images/rates/
% svn up
svn: Working copy '.' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)

Wie svn cleanupwir wissen , funktioniert Laufen jedoch nicht.

% svn cleanup
svn: In directory '.'
svn: Error processing command 'modify-wcprop' in '.'
svn: 'spacer.gif' is not under version control

spacer.gifist hier nicht das Problem ... Es kann einfach nicht über den vorherigen Fehler hinaus zur nächsten Datei verschoben werden. Also habe ich alle Dateien aus dem Verzeichnis gelöscht .svnund das SVN-Protokoll entfernt. Dadurch funktionierte die Bereinigung, sodass ich die fehlerhafte Datei auschecken und umbenennen konnte.

% rm *; rm -rf .svn/log; svn cleanup
% svn up Header_3_nobookmark.gif
A    Header_3_nobookmark.gif
Updated to revision 1087.
% svn mv Header_3_nobookmark.gif foo
A         foo
D         Header_3_nobookmark.gif
% svn up
A    spacer.gif
A    Header_3_noBookmark.gif

Anschließend konnte ich zum Stammverzeichnis des Projekts zurückkehren und es ausführen svn up den Rest des überprüfen.

Chris Wade
quelle
2

Wenn ich ähnliche Probleme habe, verwende ich rsync (Hinweis: Ich verwende Linux oder Mac OS X), um wie folgt zu helfen:

# Go to the parent directory
cd dir_above_borked

# Rename corrupted directory
mv borked_dir borked_dir.bak

# Checkout a fresh copy
svn checkout svn://... borked_dir

# Copy the modified files to the fresh checkout
# - test rsync
#   (possibly use -c to verify all content and show only actually changed files)
rsync -nav --exclude=.svn borked_dir.bak/ borked_dir/

# - If all ok, run rsync for real
#   (possibly using -c again, possibly not using -v)
rsync -av --exclude=.svn borked_dir.bak/ borked_dir/

Auf diese Weise haben Sie eine neue Kasse, aber mit den gleichen Arbeitsdateien. Für mich funktioniert das immer wie ein Zauber.

Magentron
quelle
2

Ich bin in letzter Zeit auch darauf gestoßen. Der Trick für mich war, nach Auswahl von "Aufräumen" im Popup-Optionsdialog "Sperren aufheben" und dann "OK" zu aktivieren. Es hat für mich erfolgreich aufgeräumt.

Pei Yang
quelle
1
SVN hat per se keinen Popup-Dialog. Vielleicht benutzt du Tortoise. Das OP verwendet den Befehlszeilenclient, daher ist Ihr Rat nicht sehr hilfreich.
Robert
1

Subclipse wird durch das wirklich teuflische Sperrverhalten von Windows verwirrt. Unlocker ist dein Freund. Dadurch können gesperrte Dateien gefunden und die Sperren zwangsweise aufgehoben werden.

Peter Moffatt
quelle
1

(Bevor Sie versuchen, Ordner zu verschieben und eine neue Kaufabwicklung durchzuführen.)

Löschen Sie den Ordner, in dem sich die betreffenden Dateien befinden - ja, sogar den .svnOrdner, und führen Sie dann einen svn cleanupOrdner ganz oben / übergeordnet aus.

Judy K.
quelle
1

Ich stand vor dem gleichen Problem. Nach einiger Suche im Internet fand der folgende Artikel . Dann wurde mir klar, dass ich als Benutzer angemeldet war, der sich von dem Benutzer unterschied, unter dem ich SVN eingerichtet hatte, ein Berechtigungsproblem im Grunde.

user_v
quelle
1

Wenn ich mit TortoiseSVN (Windows) auf dieses Problem stoße, gehe ich zu Cygwin und führe von dort aus die ' svn-Bereinigung ' aus. es räumt für mich richtig auf, danach funktioniert alles von TortoiseSVN.

Aqura
quelle
Dies funktioniert auch mit einem Cmd-Fenster. Ich weiß nicht, warum es funktioniert, wenn Tortoise versagt, aber manchmal schon.
Watusimoto
0

Die Antworten hier haben mir nicht geholfen, aber bevor ich das Projekt erneut auscheckte, habe ich Eclipse geschlossen und geöffnet (Subversive ist mein SVN-Client) und das Problem ist verschwunden.

Crag
quelle
0

Es gilt möglicherweise nicht in allen Situationen, aber als ich kürzlich auf dieses Problem stieß, bestand mein "Fix" darin, das Subversion-Paket auf meinem System zu aktualisieren. Ich hatte 1.4.something ausgeführt, und als ich auf die neueste Version aktualisiert habe (in meinem Fall 1.6.6), funktionierte die Kaufabwicklung.

(Ich habe versucht, es erneut herunterzuladen, aber ein Auschecken in ein sauberes Verzeichnis hing immer an derselben Stelle.)

dan_linder
quelle
0

Schreibgeschützte Sperren treten manchmal auf Netzwerklaufwerken mit Windows auf. Versuchen Sie, die Verbindung zu trennen und erneut herzustellen. Dann bereinigen und aktualisieren.

Artjom Kurapov
quelle
0

Nachdem ich die meisten der hier genannten Lösungen durchgesehen hatte, wurde immer noch der Fehler angezeigt.

Das Problem war OS X ohne Berücksichtigung der Groß- und Kleinschreibung . Das Auschecken eines Verzeichnisses mit zwei Dateien mit demselben Namen, aber unterschiedlicher Groß- und Kleinschreibung verursacht ein Problem. Beispielsweise sollten sich ApproximationTest.java und Approximationtest.java nicht im selben Verzeichnis befinden. Sobald wir eine der Dateien entfernen, verschwindet das Problem.

Shilpa
quelle
0

Ich bin auf ein Problem gestoßen, bei dem SVN nach einem Update einen Ordner als in Konflikt stehend anzeigte. Seltsamerweise war dies nur über die Befehlszeile sichtbar - TortoiseSVN fand alles in Ordnung.

#>svn st
!       my_dir
!       my_dir\sub_dir

svn cleanup, svn revert, svn updateUndsvn resolve alle waren erfolglos bei dieser Fixierung.

Ich habe das Problem schließlich wie folgt gelöst:

  • Suchen Sie im .svn-Verzeichnis nach "sub_dir".
  • Verwenden Sie RC -> Eigenschaften, um das Flag "Schreibgeschützt" in der Eintragsdatei zu deaktivieren
  • Öffnen Sie die Eintragsdatei und löschen Sie die Zeile "unvollendet ..." und die entsprechende Prüfsumme
  • Speichern Sie das schreibgeschützte Flag und aktivieren Sie es erneut
  • Wiederholen Sie diesen Vorgang für das Verzeichnis my_dir

Danach war alles in Ordnung.

Hinweis: Ich hatte keine lokalen Änderungen, daher weiß ich nicht, ob Sie in diesem Fall einem Risiko ausgesetzt wären. Ich habe die von anderen vorgeschlagene Lösch- / Aktualisierungsmethode nicht verwendet - ich bin in diesen Zustand gekommen, indem ich das im Verzeichnis my_dir / sub_dir / sub_sub_dir versucht habe (das mit denselben Symptomen begann) - also wollte ich nicht riskieren, die Dinge noch schlimmer zu machen nochmal!

Nicht ganz thematisch, aber vielleicht hilfreich, wenn jemand wie ich auf diesen Beitrag stößt.

Sam
quelle
0

Nein nein Nein! Wenn Sie SVN 1.7 oder höher verwenden, sollte der Bereinigungsbefehl den Job erledigen!

Ich habe auch einige Experimente durchgeführt und festgestellt, dass die Lösung (zumindest in Eclipse ) die Bereinigung nur für den in der Fehlermeldung angegebenen Ordner und nicht für das gesamte Projekt ausführt!

Laura Liparulo
quelle
Das hat heute bei mir funktioniert, also gehe ich auf +1. Andererseits war ein anderes Mal, als ich in eine Schleife geriet, genau das Gegenteil - ich klickte mit der rechten Maustaste auf einen Ordner und wählte "Bereinigen", wenn ich stattdessen mit der rechten Maustaste auf eine leere Stelle klicken musste. Es kommt also sehr auf die spezifische Situation an.
Daphne B
Downvote, weil die Antwort auf "Wie behebe ich Dinge, wenn die SVN-Bereinigung fehlschlägt" nicht "es sollte funktionieren"
lautet
0

Ich musste sudo chmod 777 -R .die Berechtigungen ändern können. Ohnesudo würde es nicht funktionieren und mir den gleichen Fehler geben wie beim Ausführen anderer Befehle.

Jetzt können Sie svn updateoder was auch immer tun , ohne Ihr gesamtes Verzeichnis zu verschrotten und neu zu erstellen. Dies ist besonders hilfreich, da in Ihrer IDE oder Ihrem Texteditor möglicherweise bereits bestimmte Registerkarten geöffnet sind oder Synchronisierungsprobleme auftreten. Sie müssen Ihr Arbeitsverzeichnis nicht verschrotten und durch diese Methode ersetzen.

ahnbizcad
quelle
0

Ich habe dieses Problem gelöst, indem ich das .svn-Verzeichnis eines Kollegen in mein Verzeichnis kopiert und dann meine Arbeitskopie aktualisiert habe. Es war eine schöne, schnelle und saubere Lösung.

Bigpony
quelle
0

Die vorherige Antwort enthält einige sehr gute Vorschläge. Wenn Sie jedoch ein Problem mit TortoiseSVN unter Windows haben (ein gutes Produkt, aber ...), greifen Sie immer auf die Befehlszeile zurück und führen Sie zuerst eine einfache "svn-Bereinigung" durch.

In vielen Fällen führt der Windows-Client den Bereinigungsbefehl nicht aus, aber die Bereinigung funktioniert einwandfrei mit dem SVN-Befehlszeilenprogramm.

paul.da.programmer
quelle
0

Bei einem ähnlichen Problem konnte das Problem durch manuelles Zusammenführen in der Repository-Synchronisierungsansicht behoben werden.

Ein Dateiname stand in Konflikt mit dem anderen und erwähnte das Problem deutlich. Durch Umbenennen der neueren Datei in einen anderen Namen wurde das Problem behoben.

dev
quelle