Ich benutze ein externes Diff-Tool mit Subversion (Beyond Compare-Regeln!), und eines der großartigen Features ist, dass ich mit dem diff-Programm kleinere Änderungen an der Datei vornehmen kann, während ich die Änderungen überprüfe gemacht.
Aber svn diff
funktioniert bei verschiedenen meiner Projekte anders. Alles in allem ist die linke Datei eine temporäre Datei, die die letzte in Subversion gespeicherte Version (den Kopf) enthält. In einigen Fällen ist die rechte Datei die eigentliche Arbeitsdatei, in anderen ist es eine temporäre Dateikopie der Arbeitsdatei. Im ersten Fall kann ich Änderungen im diff-Programm vornehmen und sie beeinflussen die Arbeitskopie. Im zweiten Fall bearbeite ich eine temporäre Datei, so dass Änderungen verloren gehen.
Warum unterscheidet sich Subversion manchmal von der Arbeitsdatei, aber manchmal von einer temporären Kopie der Arbeitsdatei? Wie kann ich dafür sorgen, dass immer die Arbeitsdatei verwendet wird?
Haben Sie irgendwelche svn: keywords für diese Dateien? Wenn ja, wird Subversion zuerst eine temporäre Datei erstellen, in der alle erweiterten Schlüsselwörter "nicht expandiert" sind. Dies soll verhindern, dass alle Keyword-Zeilen als unterschiedlich angezeigt werden, auch wenn sie nicht geändert wurden.
Wenn Sie z. B. eine Datei in Ihrer Arbeitskopie gegen BASE verteilen, werden in der BASE-Datei keine Schlüsselwörter erweitert (und wird auch mit LF-Zeilenenden gespeichert), während die Datei in Ihrer Arbeitskopie alle Schlüsselwörter erweitert (und möglicherweise auch) gespeichert mit CRLF-Zeilenenden). Wenn Sie diese Datei nicht lokal geändert haben, würde 'svn diff' alle Zeilen als unterschiedlich anzeigen (wenn die Zeilenenden nicht übereinstimmen) oder zumindest alle Zeilen mit den Schlüsselwörtern würden als unterschiedlich angezeigt - was nicht der Fall ist erwarten.
Vielleicht gibt es einige Zugriffsprobleme. Versuchen Sie, eine Datei schreibgeschützt zu setzen. Wenn svn jetzt eine temporäre Datei öffnet, ist dies eine mögliche Antwort auf Ihre Frage. In diesem Fall wird vielleicht ein Editor / IDE, den Sie verwenden, die Datei schreibgeschützt.