我剛剛使用SQL Server Management Studio編寫了SQL Server存儲過程,表定義等,並試圖將它們添加到我的Mercurial源代碼管理存儲庫中。他們被添加得很好,但現在當我改變和區分它們時,Mercurial稱它們爲「二進制文件」,並沒有給我一個適當的統一差異。爲什麼Mercurial認爲我的SQL文件是二進制文件?
我認爲編碼可能是一個問題,所以我試圖重新生成腳本並指定ANSI文本文件輸出,但我得到了相同的行爲。我可以在記事本中查看它們,沒有任何奇怪的角色出現。爲什麼Mercurial認爲這些文件是二進制的?否則,如果有人可以推薦一個用於腳本化SQL Server數據庫的好工具,這可能不會導致此問題,那也可以。
要明確,這不是Unicode的問題。它是UTF-16,它嵌入了空值。 UTF-8不會,除非你實際使用U + 0000(一個SQL文件通常不會)。 – 2010-03-02 22:04:22
很高興知道爲什麼hg認爲它是二元的,但最好找到一個修復mercurial來迫使它改變主意。重新保存所有腳本是非常糟糕的解決方法。問題在於mercurial,而不是在文件中。 – Stan 2012-01-24 09:41:24
答案對我很有幫助,但我使用了「Unicode(UTF-8無簽名) - Codepage 65001」而不是ASCII – 2012-04-05 14:56:55