Ho appena creato script per i processi, le definizioni di tabella, ecc. Di SQL Server utilizzando SQL Server Management Studio e ho provato ad aggiungerli al mio repository di controllo del codice sorgente Mercurial. Sono stati aggiunti alla perfezione, ma ora quando li cambio e li diff, Mercurial li chiama "file binari" e non mi dà una copia unificata corretta.Perché Mercurial pensa che i miei file SQL siano binari?
Pensavo che la codifica potesse essere un problema, quindi ho provato a rigenerare gli script e specificare ANSI per l'output del file di testo, ma ottengo lo stesso comportamento. Riesco a vederli bene nel blocco note senza che si vedano personaggi dall'aspetto strano. Perché Mercurial pensa che questi file siano binari?
Altrimenti, se qualcuno può consigliare un buon strumento per lo scripting di un database SQL Server che potrebbe non causare questo problema, potrebbe funzionare anche.
Per essere chiari, non è Unicode questo è il problema. È UTF-16, che ha dei null incorporati. UTF-8 non lo fa, a meno che non si usi effettivamente U + 0000 (che generalmente un file SQL non dovrebbe). –
È bello sapere perché hg pensa che sia binario, ma sarà meglio trovare una soluzione per Mercurial per costringerlo a cambiare idea. Ri-salvare tutti gli script è una brutta soluzione. Il problema è in mercurial, non nei file. – Stan
La risposta ha funzionato per me, ma ho usato "Unicode (UTF-8 senza firma) - Codepage 65001" invece di ASCII –