Wir verwenden Tortoise SVN und sind beim Versuch, geänderte Dateien zu übertragen, auf ein Problem gestoßen. Wenn wir versuchen, die Datei zu übertragen, erkennt svn nicht, dass sie geändert oder hinzugefügt wurde und zeigt an "Seit der letzten Übertragung wurden keine Dateien geändert oder hinzugefügt. TortoiseSVN kann hier nichts tun...". Die einzige Möglichkeit, eine Datei zu übertragen, besteht darin, den Ordner zu öffnen, "Auf Änderungen prüfen" auszuwählen und dann auf "Übertragen" zu klicken. Wenn die Prüfung auf Änderungen im Ordner durchgeführt wird, sagt TortoiseSVN wieder, dass es keine Änderungen gibt. Wir haben auch versucht, eine neue Arbeitskopie zu erstellen und von dort aus zu übertragen, aber auch hier tritt das Problem auf. Wir haben versucht, die svn-Datei zu kopieren, falls sie beschädigt war, aber das hat nicht geholfen. Wir verwenden die SVN-Symbole, um anzuzeigen, dass eine Datei geändert wurde - diese Symbole funktionieren immer noch korrekt. Wir haben nach einer Antwort auf die Frage gesucht, warum dies passiert ist und wie man es beheben kann. Könnte bitte jemand etwas Licht in diese Angelegenheit bringen?
Antworten
Zu viele Anzeigen?Desde el FAQ :
Wenn Sie eine Datei geändert haben, aber TortoiseSVN nicht erkennt, dass die Datei geändert wurde, überprüfen Sie bitte zuerst, ob die Datei sich wirklich von dem unterscheidet, was Sie in Ihrer Arbeitskopie haben.
Wenn Sie sich sicher sind, dass die Datei geändert wurde und sie trotzdem nicht im Übertragen-Dialog als geändert angezeigt wird, stellen Sie sicher, dass
- das Datum der letzten Änderung der Datei hat sich geändert (einige Tools wie Hex-Editoren setzen diese Zeit gerne zurück)
- wenn die Eigenschaft svn:eol-style gesetzt ist und die Änderungen nur an Zeilenumbrüchen vorgenommen wurden, wird die Datei nicht als geändert angezeigt, da sie sich für Subversion nicht geändert hat
Subversion ermittelt, ob sich eine Datei geändert hat, mit dem folgenden Ansatz:
- Hat sich das Datum der letzten Änderung und/oder die Größe der Datei geändert?
- wenn nicht: Datei wird nicht geändert
- wenn ja: Vergleich des Dateiinhalts mit der BASE-Datei
- beim ersten abweichenden Byte anhalten und die Datei als geändert markieren
- wenn kein Byte von BASE abweicht, wird die Datei als nicht geändert markiert
Nur für den Fall, dass noch jemand den Weg hierher findet. Ich hatte gerade dasselbe Problem mit einem Repository, das einige Zeit lang gut funktioniert hat. Die Dateien zeigten an, dass sie Änderungen enthielten, aber SVN Commit gab die Meldung aus, dass es keine Commits zu machen gab.
Die Ursache war ein Unterordner, den ich in mein Repository kopiert hatte. Der Unterordner war in einer älteren Version von tortoise erstellt worden. Nachdem ich die Tortoise Option ausgewählt hatte, um ihn auf die neueste Version zu aktualisieren, funktionierte SVN Commit wie erwartet.
Ich hatte ein ähnliches, aber nicht identisches Problem. Ich weiß, dass dieser Stream schon 4 Jahre alt ist, aber für den Fall, dass jemand anderes danach sucht. (Ich bin auf Schildkröte SVN Version 1.8.x).
Meine geänderten Dateien ließen sich nicht übertragen - dasselbe Symptom wie in diesem Stream. Ich klickte mit der rechten Maustaste auf das Projekt und wählte "Aufräumen". Danach konnte ich meine geänderten Dateien übertragen.