git am / format-patch: định dạng điều khiển của phần cuối dòng

Tôi đã tạo một bản vá từ ba lần cam kết bằng cách sử dụng

git format-patch 

Điều này tạo ba tệp bản vá mà tôi đã gửi qua thư từ sổ ghi chép của mình và đọc thư trên máy tính để bàn của tôi (cả hai đều là hộp Windows).

Khi tôi thực hiện

git am --3way --ignore-space-change *.patch

, các bản vá sẽ được áp dụng, nhưng tôi không nhận được ID SHA1 giống nhau cho cam kết. Tìm kiếm một chút trong các tệp đã vá, tôi thấy rằng các dòng sửa đổi trên máy tính để bàn của tôi kết thúc bằng LF , trong khi các dòng đã sửa đổi trên sổ ghi chép (nơi tôi đã tạo bản vá) kết thúc bằng CR LF .

Vì vậy, suy nghĩ đầu tiên của tôi là gọi git am mà không có - ignore-space-change , nhưng điều này khiến tôi gặp lỗi ( bản vá không áp dụng ).

Làm cách nào để tôi có thể nói với git format-patch hoặc git am về cách xử lý phần cuối dòng (msysgit 1.7.4)?

Làm Tôi thực sự phải sử dụng VIM và thay đổi định dạng tệp từ UNIX thành DOS ​​trước khi có thể áp dụng các bản vá?


CHỈNH SỬA: Thậm chí không sửa đổi được các tệp vá bằng VIM có ích gì: Tôi nghĩ, set ff = dos :% s / ^ M // g sẽ hữu ích, nhưng nó không hữu ích t!

Theo ý kiến ​​của tôi, việc áp dụng bản vá sẽ dẫn đến chính xác cùng một nội dung và cũng có cùng một băm cam kết giống như tôi đã lấy từ repo khác nơi bản vá được tạo. Tôi có đang nghĩ sai về điều đó không?

12
задан eckes 10 June 2011 в 10:10
поделиться