2009-11-05 30 views
17

Dự án của chúng tôi đang hoạt động trong khoảng khá gần mã (rất nhiều thay đổi xảy ra song song trong một khu vực địa lý khá nhỏ) và luồng công việc git của chúng tôi hoạt động rất tốt cho mã java của chúng tôi.Làm cách nào để xử lý xml/html trong luồng công việc của tính năng git?

Nhưng công cụ xml/html không hoạt động thực sự tốt. Những thay đổi đơn giản không liên quan (một nhà thiết kế thêm một div xung quanh, một nhà phát triển thay đổi một id của một phần tử bên trong) cho các sự hợp nhất thực sự thảm hại.

Tôi nhận thấy có thể có một số tùy chọn về cách xử lý việc này. Việc hợp nhất git xml tốt sẽ là tối ưu hoặc đặt hạn chế về định dạng lại mã xml/html khác. Không làm việc trong các khu gần đó sẽ là một lựa chọn khác (không thể chấp nhận).

Làm thế nào để bạn giải quyết vấn đề này một cách hiệu quả?

Trả lời

17

Git cho phép trình điều khiển hợp nhất tùy chỉnh, được chọn qua gitattributes trên mỗi đường dẫn (ví dụ: đối với tất cả *.xml tệp).

Những gì bạn cần tìm là trình điều khiển hợp nhất nhận thức XML, cộng với cũng có thể viết một kịch bản đơn giản để chuyển đổi giữa các quy ước Git và quy ước hợp nhất trình điều khiển. Có ví dụ XML::Merge mô-đun Perl. Có XyDiff, nhưng có vẻ như nó thiếu ba cách hợp nhất (và tôi đoán rằng đối với XML xây dựng 3-cách sáp nhập từ khác như mô tả trong A Formal Investigation of Diff3 giấy (PDF) sẽ không hoạt động). Bạn cũng có thể đọc Matching, diffing and merging XML bài đăng trên blog (hoặc bài viết được tham chiếu trong đó).

Một giải pháp khác là để hủy đặt thuộc tính hợp nhất cho tệp XML (chúng sẽ được xử lý như tệp nhị phân wrt. Xung đột hợp nhất) và sử dụng một số công cụ kết hợp đồ họa để giải quyết xung đột hợp nhất.

+1

Tôi bằng cách nào đó nghĩ rằng việc hợp nhất chỉ đơn giản là bỏ qua tất cả các loại khoảng trắng đầu/cuối (ngoại trừ dấu ngắt dòng) sẽ hoạt động tốt. Bạn có biết làm thế nào tôi có thể đạt được điều này? – krosenvold

5

Nếu bạn biết bạn có thể tự động hoá một số vấn đề hợp nhất mà bạn đang gặp phải với những tệp sáp nhập của tệp xml đó, bạn có thể viết các giải pháp đó.
Nếu có tập lệnh, bạn có thể gọi cho chúng từ trình điều khiển hợp nhất được điều chỉnh cho các tệp xml/xhtml, chỉ trong một số thư mục.

Xem here cho trình điều khiển hợp nhất (thực sự đơn giản).

Bằng cách đó, mọi xung đột vẫn còn (vì tập lệnh trình điều khiển hợp nhất không giải quyết được) là các vấn đề hợp nhất hợp pháp cần được giải quyết.

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