2009-10-20 21 views

Trả lời

17

Các bản vá, sản lượng git diff được xử lý chính xác bằng công cụ patch.

patch bỏ qua tất cả thông tin bổ sung mà git gắn vào tệp bản vá. Để áp dụng bản vá, rất có thể bạn sẽ cần tùy chọn -p1.

+0

Cảm ơn. Sẽ thử nó ra, tôi đoán tôi cần thêm cà phê ... –

+2

Các bản vá được tạo bởi 'git format-patch' cũng được xử lý đúng cách bởi bản vá GNU ... trừ khi chúng được tạo bằng tùy chọn -M/-C và chứa thông tin về đổi tên , v.v. –

+2

Từ trang 'patch' man:" patch cố gắng bỏ qua bất kỳ rác thải hàng đầu nào, áp dụng diff, và sau đó bỏ qua bất kỳ thùng rác nào sau ". Điều độc đáo lớn nhất trong git diffs là việc bổ sung các mô hình (ví dụ: "chỉ mục ...", "đổi tên ...", "tệp mới ...") và bản vá có thể đơn giản bỏ qua chúng. Git cũng tiền tố tên tệp, ví dụ: "a/path/to/file", nhưng điều này có thể bị bỏ qua bởi patch -p1. – Cascabel

1

Các trạng thái trả lời chấp nhận như sau:

Patches, rằng sản lượng git diff, được xử lý một cách chính xác bằng công cụ vá.

Tôi chắc chắn rằng tôi chỉ gặp phải trường hợp không chính xác. /usr/bin/patch chỉ im lặng (không báo cáo lỗi) bỏ qua bản vá của tôi bao gồm thông tin đổi tên tệp, do đó phá vỡ triển khai (may mắn thay tôi chỉ thử nghiệm triển khai tại thời điểm này :-) ...

Tôi đang đăng câu trả lời thay thế này như một người đứng đầu cho những người khác chạy vào cùng một vấn đề bởi vì tôi đã gãi đầu của tôi trong một thời gian ... Ngoài ra ý kiến ​​cho câu trả lời trên StackOverflow dường như không thể chứa dấu ngoặc kép.

Trớ trêu thay, bây giờ tôi đã chuyển sang định dạng khác thống nhất để khắc phục sự cố này và bây giờ triển khai của tôi bị hỏng theo cách khác vì các khác biệt thống nhất không thể đại diện cho việc tạo tệp trống (ví dụ: __init__.py). Nói về việc giữa một tảng đá và một nơi khó khăn!

Các vấn đề liên quan