2009-05-09 13 views
8

Il nostro team di sviluppo di Delphi 7 memorizza i file in formato (dfm) in modalità testo e utilizza un sistema di controllo del codice sorgente (Subversion) per tracciare le modifiche.A volte Delphi ripristina i file di testo (DFM) in formato binario?

A volte, abbiamo notato che un file di modulo tornava in formato binario tra le revisioni, causando problemi con strumenti come TortoiseMerge.

Utilizzando il registro delle modifiche di Subversion, posso vedere che il file DFM è stato memorizzato in forma di testo prima. Gli sviluppatori di software non cambiano mai il formato del file di archiviazione in binario manualmente.

Avete incontrato lo stesso? È un problema noto?

risposta

4

Ho visto accadere in Delphi 7 quando una forma ereditata da un'altra forma da un altro progetto è stata aperta in Delphi da sola senza il progetto a cui appartiene per essere aperta.

2

Se qualcuno ha aperto il progetto con una versione diversa di Delphi (o modificato le impostazioni predefinite), può salvare i moduli in formato diverso.

+0

Buon suggerimento, controllerò questo. Abbiamo installato anche Delphi 2007 e 2009. Le impostazioni predefinite sono solo per i nuovi moduli, quindi non sono sicuro di come possano influire sui moduli esistenti. – mjn

2

No, non ho mai visto (o sentito) che questo accada da solo prima. Abbiamo centinaia di .DFM in una dozzina di dozzine di app, e questo è successo solo quando qualche idiota fa clic per errore su un modulo per errore e deseleziona "Text DFM" nel menu di scelta rapida.

+0

Forse era il famigerato "clic destro e deselezionare il virus dfm"? ;) – mjn

+0

Nah ... Il nostro software AV l'avrebbe catturato. Era un idiota.

+0

È Delphi 7? – mjn

1

Abbiamo sicuramente incontrato questo. Usiamo esclusivamente D7.

Non è mai arrivato fino in fondo, come accade solo una mezza dozzina di volte all'anno, e anche se è una seccatura, è abbastanza facile rimediare.

Ero interessato a vedere la risposta di Lars, e cercherò sicuramente di vedere se è una possibile causa la prossima volta che succede.

1

Potresti essere interessato a studiare l'uso di Beyond Compare invece dello strumento di fusione incorporato di TortoiseSVN. Beyond Compare è scritto in Delphi e in modo nativo sa come leggere i DFM binari. Ciò significa che diventa meno un problema (o addirittura nessun problema) se i tuoi DFM sono archiviati in Subversion in binario o testo. Beyond Compare V3 fa anche un merging a 3 vie che rende davvero facile unire più commit ecc. Anche ignorando la possibilità di diff DFM binari, è ancora un visualizzatore diff molto migliore degli strumenti integrati di TortoiseSVN. Lo consiglio vivamente, ed è molto economico (non ho alcuna connessione con Scooter Software, oltre ad essere un cliente molto felice).

Scooter Software

4

Questo a volte succede quando l'IDE si confonde.

Di solito inizia dopo una violazione di accesso all'interno dell'IDE di Delphi 7.

A volte anche uno o più dei buffer dell'editor Delphi all'interno dell'IDE diventano di sola lettura (mentre i file sul disco sono ancora in lettura/scrittura).

il comportamento si verifica molto meno che in Delphi 5 o 6, ma a volte si verifica in Delphi 7.

La cosa migliore che puoi fare è riavviare l'IDE Delphi 7, non appena si ottiene una violazione di accesso.

1

Abbiamo anche questo problema di volta in volta, e sembra essere correlato a guardare la fonte del DFM (Alt-F12) e quindi fare un'operazione di Visual Source Safe (ad esempio il check-in).

11

Ciò accade in Delphi 7 ma è stato risolto nelle versioni successive. Di solito si accede ai moduli nell'IDE aprendo il file .pas e quindi passando alla vista modulo. Fai clic con il pulsante destro del mouse sul modulo e verrà visualizzato che "Text DFM" è spuntato se l'hai già fatto prima.

Si verificherà il problema descritto da un DFM di testo che passa a un DFM binario quando nell'IDE di Delphi 7 si apre direttamente il file .dfm. per esempio. File-> Apri-> Somefile.dfm. Fai clic con il tasto destro del mouse su dfm e seleziona "Visualizza come modulo". Ora fai clic con il pulsante destro sul modulo, vedrai che il "Testo DFM" non è selezionato.

Abbiamo riscontrato il problema quando abbiamo aperto un DFM che era un risultato di ricerca grep. Ci ha lasciato perplessi e causerebbe il danneggiamento del dfm in cvs come è stato archiviato come testo.

+2

+1 per fare clic con il tasto destro sul modulo, selezionare Text DFM. –

Problemi correlati