2008-09-11 5 views
3

Wir haben ein Problem mit der Verwendung von Subversion unter Windows festgestellt. Ein Entwickler hat eine Datei foo.Data.sql und später ein anderer Entwickler eine Datei namens foo.data.sql committed. Dies verursachte natürlich ein Problem bei Windows-Clients (alle Clients sind Windows in unseren Umgebungen), da Dateien in Subversion, aber nicht in Windows die Groß-/Kleinschreibung beachten.Verhindern Datei Gehäuse Probleme in Subversion

Wir haben es geschafft, dieses Problem zu lösen, indem Sie eine der Dateien direkt im Repository löschen, aber ich habe noch zwei Fragen:

  1. Wie ist es möglich, dass ein Entwickler diese einen Windows-Client zu tun? Hat er eine ungültige Arbeitskopie oder gibt es einen Fehler im Client (TortoiseSVN)?
  2. Wie können wir verhindern, dass Änderungen wie diese in das Repository gelangen (d. H. Hat jemand ein Hook-Skript geschrieben, das eine Plausibilitätsprüfung auf Probleme mit der Dateihülle durchführt)?

Antwort

4

Es gibt definitiv ein Hook-Skript, das die Groß-/Kleinschreibung überprüft - Sourceforge haben es als eine ihrer Optionen. Eine schnelle Google auftaucht: http://www.subversionary.org/howto/using-check-case-insensitive-py-on-windows und http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/case-insensitive.py

Das Problem auf einer Windows-Plattform aufgetreten wird, wenn Benutzer 1 hinzugefügt foo.data.sql und Benutzer 2 hinzugefügt foo.Data.sql bevor ein Update von Benutzern bekommen 1.

Hoffe, dass hilft :)

0

1; Es ist möglich, weil die zwei Dateien von zwei Entwicklern stammen. Einer ist das Umbenennen oder Erstellen der Datei mit verschiedenen Fällen und während des Commits merkt es nicht, dass es sich um ein Add- und kein Commit-Änderungen handelt.

2; Überprüfen Sie TortoiseSVN FAQ

2

Unter Windows sind Groß-und Kleinschreibung, aber Case-Erhaltung. Sie können eine Datei umbenennen und den Fall ändern, und Windows behält die Änderung bei. Das Problem tritt auf, wenn Subversion versucht, die zweite Datei zu erstellen. Windows meldet, dass die Datei bereits existiert.

Wenn Sie die beiden Dateien zu einer einzigen Kopie zusammenführen möchten, anstatt die Datei im Repository zu löschen, können Sie die fehlerhafte Datei im Repository umbenennen (z. B. ein Suffix wie '.temp' anhängen), den Client aktualisieren , in die gute Datei zusammenführen und dann die fehlerhafte Datei löschen.