Tôi chỉ viết kịch bản các procs được lưu trữ trong SQL Server, các định nghĩa bảng, v.v. sử dụng SQL Server Management Studio và cố gắng thêm chúng vào kho lưu trữ kiểm soát nguồn Mercurial của tôi. Họ đã được thêm vào chỉ là tốt, nhưng bây giờ khi tôi thay đổi và diff chúng, Mercurial gọi chúng là "tập tin nhị phân" và không cho tôi một sự khác biệt thống nhất thích hợp.Tại sao Mercurial nghĩ rằng các tệp SQL của tôi là nhị phân?
Tôi nghĩ rằng mã hóa có thể là một vấn đề, vì vậy tôi đã cố gắng tạo lại các tập lệnh và chỉ định ANSI cho đầu ra tệp văn bản, nhưng tôi nhận được cùng một hành vi. Tôi có thể xem chúng tốt trong notepad mà không có bất kỳ ký tự kỳ lạ nào xuất hiện. Tại sao Mercurial nghĩ rằng các tệp này là nhị phân?
Nếu không, nếu ai đó có thể đề xuất một công cụ tốt để tạo kịch bản cho cơ sở dữ liệu SQL Server có thể không gây ra sự cố này, điều đó cũng có thể hoạt động.
Để rõ ràng, nó không phải là Unicode đó là vấn đề. Đó là UTF-16, trong đó có nhúng null. UTF-8 không, trừ khi bạn thực sự sử dụng U + 0000 (mà một tập tin SQL thường sẽ không). –
Thật tốt khi biết lý do tại sao hg cho rằng đó là nhị phân, nhưng sẽ tốt hơn nếu tìm một sửa chữa cho mercurial để buộc nó thay đổi ý định của nó. Việc lưu lại tất cả các tập lệnh là giải pháp thay thế xấu. Vấn đề là trong mercurial, không phải trong các tập tin. – Stan
Câu trả lời phù hợp với tôi, nhưng tôi đã sử dụng "Unicode (UTF-8 không có chữ ký) - Codepage 65001" thay vì ASCII –