TortoiseSVN fehlende Datei im Update

12

Wir hatten gelegentlich ein Problem mit TortoiseSVN (ich nehme an, es ist Tortoise und nicht unser SVN-Repository), bei dem eine Datei in das Repository eingecheckt wird (in einem Repo-Browser können Sie die Dateien dort sehen) und für die Person existiert Wer hat sie übernommen, aber wenn eine andere Person ein Update vornimmt, werden diese Dateien nicht zur Arbeitskopie hinzugefügt. Wenn ich dann im Repo-Browser "In Arbeitskopie kopieren ..." wähle und ein Commit versuche, werden die Dateien für mich als neu behandelt und mein Client versucht, sie hinzuzufügen, was zu einem Fehler führt. Das Aktualisieren führt auch zu einem Fehler (ich weiß nicht, wie ich das reproduzieren soll, also weiß ich nicht, was genau dies verursachen würde, und ich erinnere mich nicht an die genauen Fehler). Ich muss dann die Dateien aus dem Repository löschen und die Dateien als neu festschreiben. Danach,

Auf das Repository wird über das Protokoll svn: // auf einen Server zugegriffen, auf dem Version 1.4.6 ausgeführt wird. Es wird auf einem Windows Server 2003-Computer gehostet, der als Windows-Dienst ausgeführt wird.

Das Repository ist wie folgt aufgebaut:

[Repository] / Code / [Projekte]
[Repository] / Code / [Website] / * eine Seite hier *
[Repository] / Data / [Verschiedene Datendateien]
[Repository] / Referenzen / [DLLs / Referenzen]

Dies geschieht fast ausschließlich mit .aspx / .aspx.cs / .aspx.designer.cs und normalerweise mit jeweils drei Elementen. Als ob nicht eine ganze "Seite" zu meinem Ordner hinzugefügt würde. Dies ist geschehen, wenn Visual Studio geöffnet ist und die Projektmappe ausgeführt wird, und wenn auch kein Visual Studio geöffnet ist.

Hat das schon mal jemand gesehen und kennt ihr die Ursache / Lösung?

Goldener Schnitt
quelle
1
Könnten Sie die Version von TortoiseSVN veröffentlichen und wie Ihr SVN gehostet wird (http: //, svn: //, lokal usw.) und auf welche Weise (Apache, IIS, VisualSVN usw.), einschließlich anderer Versionsnummern?
Richard Slater
1
Versuchen Sie auch, die Arbeitsverzeichnisse neu zu erstellen (erstellen Sie einfach ein zusätzliches Verzeichnis), um festzustellen, ob beim ersten Auschecken ein Fehler aufgetreten ist.
Reconbot
1
Als erster Schritt Upgrade auf die neueste Version von TSVN (1.6.3 im Moment). Ich glaube, es gab einen verwandten Fehler in 1.6.x, der in Version 1.6.2 behoben wurde.
Milen A. Radev
2
Wir haben das gleiche Problem mit dem TortoiseSVN 1.7-Client, der mit einem Subversion 1.6-Repository verbunden ist. Gibt es irgendwo eine ähnliche Lösung?
JNappi

Antworten:

10

Ich hatte auch schon mal das beschriebene Problem. Gerade im Moment ist es wieder passiert. Gleiche Situation: Auf dem SVN-Server wurden mehrere Dateien von einem SVN-Client A geändert / hinzugefügt / gelöscht / verschoben, und SVN-Client B aktualisierte seine Arbeitskopie (unter Verwendung von Tortoise SVN). Nach dem Update sind einige der von A hinzugefügten Dateien in der Arbeitskopie von B nicht vorhanden, aber der Repository-Browser zeigt sie am richtigen Ort auf dem SVN-Server an. Bei einem erneuten Update mit Tortoise wird immer behauptet, dass sich alles in der aktuellen Version befindet. Auch ein "svn up" in dem Ordner, in dem die Dateien fehlen, besagt, dass sich alles in der aktuellen Revision befindet.

Ich benutze

Tortoise SVN 1.6.6, Build 17493 - 64 Bit

Visual SVN 1.7 (SVN-Integration in Visual Studio 2008)

Bearbeiten: Es scheint ein bekanntes Problem zu sein, hier ist die Lösung: http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2379518


quelle
1
Für alle anderen: Hier ist die direkte Lösung: Verwenden Sie für jede der problematischen Arbeitskopien "Update to revision" und setzen Sie die Arbeitskopientiefe auf "Fully Recursive".
Coding_idiot
3

Sie können mit den Befehlszeilentools testen, ob es sich um Schildkröte oder SVN handelt. Geben Sie "svn up" in das WC-Stammverzeichnis ein.

Wie Sie sagen, sind Sie auf 1.4.6, Sie haben kein Problem mit spärlichen Verzeichnissen. Haben Sie Dateien in Ihren Client-Einstellungen ignoriert? Sind Sie sicher, dass Ihr WC auf die richtige URL im Repository verweist und nicht zu einem anderen Zweig gewechselt wurde? (Sie können dies in den Eigenschaften des Ordners sehen - es gibt eine Subversion-Registerkarte)

Wenn Sie in Ihrem WC den Status 'svn' haben, sollten Sie die Liste der geänderten Dateien im Serververzeichnis sehen.

gbjbaanb
quelle
3

Ich habe das gleiche Problem mit SVN 1.6.2 und 1.6.3 (Kommandozeile, Tortoise und Subclipse) erlebt. Es scheint also, dass das Problem mit SVN selbst zusammenhängt. Es gibt folgende Problemumgehung: Versuchen Sie, in dasselbe Verzeichnis auszuchecken. Es werden nur fehlende Dateien hinzugefügt.

al0
quelle
1

Ich habe auch diesen Fehler mit Tortoise SVN mit mindestens 1.6.2 zu dem erlebt, was ich aktuell mit 1.6.5 verwende. "Get latest" ruft die Dateien nicht aus dem Repository ab. Ich musste das betroffene Verzeichnis löschen und auf das übergeordnete Verzeichnis zugreifen, um das Verzeichnis und seinen Inhalt neu zu erstellen.

Dies ist definitiv kein Fall von ignorierten Dateien oder getauschten Zweigen.


quelle
1

Ich war nicht in der Lage, dieses Problem mithilfe der Anweisungen in Daniels Link zu lösen, aber ich stimme zu, dass es zumindest bei den meisten SVN-Implementierungen in Windows ein Kernproblem zu sein scheint.

Um mein Problem mit dem fehlenden Ordner zu beheben, waren meine Schritte:

  1. "Auf Revision aktualisieren": Wählen Sie eine Festschreibungsnummer aus, bevor eine Datei im Ordner geändert, hinzugefügt oder gelöscht wurde, und stellen Sie sicher, dass Sie "Vollständig rekursiv" auswählen. (Dies wird einen seltsamen Fehler in Tortoise verursachen. Das wird erwartet!)
  2. Führen Sie eine Bereinigung durch.
  3. Aktualisieren Sie den Ordner erneut und Sie sollten den gesamten Ordner erhalten!

Hoffe das hilft jemand anderem da draußen.

Matt DeKrey
quelle
0

Leider haben die vorherigen Antworten bei mir nicht funktioniert. Ich hatte das gleiche Problem: Ein Ordner, an dem ich arbeitete, enthielt einige nicht festgeschriebene Objekte. Dieser Ordner wurde von einem anderen Benutzer mit vielen Objekten aktualisiert. Ich konnte die Objekte dieses Benutzers im Repository sehen, aber jedes Mal, wenn ich ein Update durchführte, bekam ich die Objekte dieses Benutzers nie.

Das Problem wurde behoben, indem TortoiseSVN Revert für den Ordner verwendet wurde.

Allen
quelle