Frage

Ich habe mit Subversion-code-control mit TortoiseSVN, um eine Schnittstelle mit dem server für die letzten paar Monate, und im Allgemeinen ist es schon groß!Jedoch, gelegentlich meine FoxPro IDE ändern, wird der Fall von einem Datei-Erweiterung ohne Vorwarnung wo "Programm.prg"wird "Programm.PRG") TortoiseSVN anscheinend braucht das bedeuten die erste Datei entfernt wurde, ist immer gekennzeichnet als "fehlt" und der zweite name wird als "nicht versioniert", wütet auf meine Fähigkeit zum verfolgen von änderungen an der Datei.Ich verstehe, dass Subversion hat Ihre Ursprünge in der groß-und Kleinschreibung Welt der *nix-aber, gibt es eine Möglichkeit, um dieses Verhalten zu Steuern, der entweder Subversion oder TortoiseSVN werden Dateinamen groß-und Kleinschreibung, wenn verwendet mit Windows?

War es hilfreich?

Lösung

Leider, Subversion-und Kleinschreibung unterschieden.Dies ist aufgrund der Tatsache, dass Dateien, die von Subversion überprüft werden kann auf beiden case-sensitive file systems (z.B., *nix) und groß- / Kleinschreibung Datei-Systeme (z.B. Windows, Mac).

Diese pre-commit hook-Skript kann Ihnen helfen, Probleme zu vermeiden, wenn Sie Dateien Einchecken.Wenn es nicht lösen Ihr problem, mein bester Vorschlag ist, schreiben Sie ein kleines Skript, um sicherzustellen, dass alle extensions sind klein und führen Sie es jedes mal vor dem check-in/check-out.Es werden eine PITA, aber vielleicht ist Ihre beste Wette.

Andere Tipps

Windows unterstützt die groß-und Kleinschreibung, aber müssen Sie senden Sie das richtige POSIX flags auf CreateFile aus der Windows-API!Ein Registrierungsschlüssel kann geändert brauchen (SFU/Tools für Unix-und Ultimate von Windows 7 hat dieser registry-Eintrag bereits eingestellt, sodass Sie von windows unterstützt-und Kleinschreibung der Dateinamen).

Windows ist entworfen von Unix, aber Dinge wie Explorer.exe und andere Programme sind so konzipiert, dass groß-und Kleinschreibung für die rückwärts-Kompatibilität und-Sicherheit (vor allem, wenn der Umgang mit dos-Ausführung notepad.exe vs.NOTEPAD.EXE,, wo alle caps ist ein virus-oder malware).

Aber Vista+ Sicherheit hat Eigenschaften, die dieses überholte.

TortiousSVN nur nicht unterstützt Weitergabe dieser posix-Flagge, während Herstellung und umbenennen von Dateien.

Ich benutze TortoiseSVN mit VFP und es meist nahtlos mit der groß-flipping.Die einzige Zeit, die es nicht ist, wenn ich die Datei in der IDE geöffnet wird, wenn ich versuche zu tun, Begehen:die lock-Datei VFP hält verwirrt es.Ist das, wo Ihr problem kommt, oder gibt es weitere Fragen?

Ich habe eine Präsentation bei FoxForward letzten Jahr über die Verwendung der VFP, mit Subversion:die meisten der Präsentation befasste sich mit der Befehlszeile, aber es gibt ein paar Folien am Ende mit links zu tools, die Ihnen helfen die Arbeit mit Subversion-im VFP. http://docs.google.com/Presentation?id=dfxkh6x4_3ghnqc4

Ich glaube, der zufälligen groß-und Kleinbuchstaben auf die Erweiterungen nicht zufällig an alle.Ich erinnere mich, Prüfung auf diese.Wenn Sie ändern ein Programm aus dem Projekt-manager.Durch klicken auf die Schaltfläche "ändern" sagen.Und dann speichern Sie die änderungen, die die Erweiterung Kleinschreibung.Wenn Sie eine modify-Befehl von der Kommando-Fenster und speichern Sie die änderungen, die die Erweiterung ist groß.Offenbar die Programmierer bei Microsoft nicht sorgen über die extension Fall der gleiche.

Kit, Ihr Kommentar oben, dass VFP ist Binär-basierte Quellcode-Dateien sind hart arbeiten mit Subversion.Der link, den ich gab oben erwähnt, ein paar Werkzeuge, die es einfacher machen, aber die, die ich arbeiten mit Christof Wollenhaupt ist TwoFox-Dienstprogramm-es wandelt ein VFP-Projekt, die nur aus text.Sie müssen es manuell ausführen, aber ich habe kein problem mit, dass.

http://www.foxpert.com/docs/cvs.en.htm

Nein, natürlich können Sie das nicht.Der SVN ist case-sensitive, es sei denn, Sie schreiben Sie den code irgendwie ...es ist open-source.

Wir hatten ein ähnliches problem, und ich eine bessere Lösung gefunden als diejenigen, die hier ausgesetzt ist, also Teile ich es jetzt:

  • Für begeht erfolgt Händisch, jetzt TortoiseSVN behebt Fall die Dateinamen automatisch:es benennt die lokalen Dateien übereinstimmen, die bei versionierten Dateien (nur durch die öffnung der commit-Fenster, in, dass Weg), so sollte es sein kein problem mit, dass.

  • Für automatisierte verpflichtet Sie können nicht verwenden Sie TortoiseSVN, wie es erfordert, dass Sie manuell bestätigen Sie die commit (es öffnet sich die commit-Fenster mit einer bestimmten Meldung, aber Sie haben noch auf ok zu klicken).Aber wenn Sie direkt mithilfe von Subversion (svn), um eine automatisierte Begehen, dann haben Sie die groß- / Kleinschreibung Problem auf, dass zu Begehen, als Subversion ist immer noch groß-und Kleinschreibung...

Wie man dieses Problem lösen für automatisierte verpflichtet?Gut, ich habe versucht, ein gemischter Ansatz:erstellen einer batch-Datei aufgerufen FixCaseSensitiveFileNames.bat , dass Sie können Anruf übergeben den Pfad, den Sie korrigieren möchten, bevor Sie die übertragung durchführen, zum Beispiel: call FixCaseSensitiveFileNames.bat C:\MyRepo.Die batch-Datei öffnet TortoiseSVN für ein manuelles Begehen, und korrigiert automatisch die Datei-Namen, aber dann schließt es die commit-Fenster nach einer vordefinierten pause, so können Sie weiterhin mit der automatischen commit mit der groß-und Kleinschreibung der Dateinamen bereits behoben.Die pause arbeitet mit einem lokalen ping, und Sie können die Dauer ändern, durch ändern der -n argument, das die Anzahl der versuche.Wenn Sie nicht lange genug anhalten, es besteht auch die Gefahr, zu schließen, die TortoiseSVN-Fenster, bevor es seinen magic fix.Hier ist es der code der batch-Datei:

@echo off
REM *** This BAT uses TortoiseSVN to fix the case-sensitive names of the files in Subversion
REM *** Call it before an automated commit. The Tortoise commit fixes this issue for manual commits,
REM *** so the trick is opening the commit window and close it automatically after a pause (with ping).
REM *** %1 = path to be fixed

start TortoiseProc.exe /command:commit /path:"%1"
ping localhost -n 10 >nul
taskkill /im TortoiseProc.exe

Diese völlig gelöst ist das Problem für unsere automatisierten daily-build-Prozess.Das einzige problem, das ich sehe, ist ein Fenster öffnen für ein paar Sekunden, das war nicht ein problem für unser tägliches bauen, aber wenn das ein problem für Sie, es könnte sein, Problemumgehungen zu...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top