Domanda

Sto usando Subversion per il controllo del codice con TortoiseSVN per interfaccia con il server per il passato pochi mesi, e, in generale, è stato andando alla grande!Tuttavia, di tanto in tanto il mio FoxPro IDE cambierà il caso di un file con estensione senza preavviso dove "programma.prg"diventa "programma.PRG") TortoiseSVN apparentemente si intende con questo il primo file è stato rimosso, diventando contrassegnato come "mancanti" e il secondo nome è "non-versione", scatenando il caos sulla mia capacità di tenere traccia delle modifiche al file.Capisco che Subversion ha le sue origini nel caso sensibile al mondo *nix, ma, c'è un modo per controllare questo comportamento in Subversion o TortoiseSVN per essere il nome del file e minuscole, quando utilizzato con Windows?

È stato utile?

Soluzione

Purtroppo, Subversion è case-sensitive.Questo è dovuto al fatto che i file da Subversion può essere controllato sia case-sensitive sistemi di file (ad esempio, *nix) e minuscole, i sistemi di file (ad esempio, Windows, Mac).

Questo pre-commit script hook può aiutare a evitare problemi quando si controlla nel file.Se questo non risolve il tuo problema, il mio miglior suggerimento è quello di scrivere un piccolo script per assicurarsi che tutte le estensioni sono minuscole e lanciarlo ogni volta prima del check-in/check-out.Sarà una valle di lacrime, ma forse la vostra scommessa migliore.

Altri suggerimenti

Windows non supporta il caso di sensibilità, ma è necessario inviare la corretta POSIX bandiere CreateFile dall'API di Windows!Una chiave del registro di sistema può essere necessario modificare (SFU/Strumenti per Unix e Ultimate di Windows 7 ha questa voce del registro di sistema già impostato in modo che windows supporta minuscole nomi di file).

Windows è progettato off di Unix, ma cose come Explorer.exe e altri programmi sono progettati per impedire caso di sensibilità per la compatibilità e la sicurezza (soprattutto quando ha a che fare con il dos in esecuzione notepad.exe vsNOTEPAD.EXE dove scrivere tutto in maiuscolo è un virus o un malware).

Ma Vista+ ha gli attributi di protezione che rende obsolete.

TortiousSVN non supporta il passaggio di questo posix bandiera durante la produzione e la ridenominazione dei file.

Io uso TortoiseSVN con visual foxpro, e per lo più senza soluzione di continuità gestisce il caso di capovolgimento.L'unica volta che non è che se ho aperto il file in IDE quando provo a fare il commit:il file di blocco VFP detiene confonde con esso.Questo è dove il problema arriva, o ci sono altri problemi?

Ho fatto una presentazione in FoxForward l'anno scorso sull'utilizzo di visual foxpro con Subversion:la maggior parte della presentazione trattati con la riga di comando, ma ci sono un paio di diapositive, alla fine, che hanno collegamenti a strumenti che consentono di lavorare con Subversion in visual foxpro. http://docs.google.com/Presentation?id=dfxkh6x4_3ghnqc4

Credo che il random superiore e inferiore caso le estensioni, non è casuale.Mi ricordo di test su questo.Se si modifica un programma dal project manager.Cliccando sul pulsante modifica, diciamo.E quindi salvare le modifiche l'estensione è minuscolo.Se si fa una modifica comando dalla finestra e salvare le modifiche l'estensione è la parte superiore del caso.A quanto pare i programmatori di Microsoft non preoccuparti per l'estensione caso è lo stesso.

Kit, è il commento di cui sopra che VFP binario basato su file di origine sono difficili da lavorare con Subversion.Il link che ho dato sopra cita un paio di strumenti per rendere più facile, ma quello che mi è Christof Wollenhaupt del TwoFox utilità -- converte un progetto di visual foxpro per solo testo.È necessario eseguire manualmente, ma non ho un problema con questo.

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

No di sicuro voi non potete.SVN è case-sensitive a meno che non si dovesse riscrivere il codice in qualche modo ...si è open-source.

Abbiamo avuto un problema simile e ho trovato una soluzione migliore rispetto a quelli esposti qui, quindi mi condivisione di adesso:

  • Per commette il fatto manualy, ora TortoiseSVN risolve il caso dei nomi di file automaticamente:rinomina il file locali per abbinare il caso delle versioni di un file (solo aprendo il commit finestra in quel percorso), quindi non ci dovrebbero essere nessun problema con che.

  • Per automatizzato si impegna non è possibile utilizzare TortoiseSVN, in quanto richiede di confermare manualmente il commit (apre il commit finestra con un messaggio specifico, ma è ancora necessario fare clic su ok).Ma se si utilizza direttamente Subversion (svn) per rendere un sistema automatizzato di impegnarsi, allora sarà il caso sensibile al problema che si impegnano, come Subversion è ancora maiuscole e minuscole...

Come risolvere questo automatizzata commette?Bene, ho provato un approccio misto:creazione di un file batch FixCaseSensitiveFileNames.bat che si può chiamare passando il percorso che si desidera risolvere prima del commit, per esempio: call FixCaseSensitiveFileNames.bat C:\MyRepo.Il file batch si apre TortoiseSVN per un manuale di commettere, e che consente di correggere automaticamente i nomi dei file, ma poi chiude il commit finestra dopo un determinato pausa, quindi si può continuare con la automatizzati impegnarsi con distinzione tra maiuscole e minuscole nomi di file già risolto.La pausa è emulato con un locale di ping, e si può modificare la durata cambiando il -n argomento, che è il numero di tentativi.Se non si fanno abbastanza lunga pausa, esiste il rischio di chiudere la TortoiseSVN finestra prima che fa la sua magia fix.Qui è il codice del file batch:

@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

Questo totalmente risolto il problema per la nostra automatico giornaliero del processo di compilazione.L'unico problema che vedo è una finestra aperta per un paio di secondi, che non era un problema per il nostro daily build, ma se questo è un problema per voi ci potrebbero essere soluzioni alternative troppo...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top