XML diff chiều dài dòng chịu đựng


13

Tôi đã xem các câu trả lời cho câu hỏi này và thật không may, không ai trong số họ đã giúp tôi cho đến nay.

Không đánh bại bụi cây, phiên bản thứ hai của C # in Depth hiện đang được chỉnh sửa sao chép. Tôi muốn có thể xem những gì trình soạn thảo sao chép thực hiện dễ dàng, vì vậy tôi có thể từ chối hoặc chấp nhận những thay đổi của anh ấy.

Chúng tôi đang sử dụng một dạng tài liệu đã được sửa đổi, nhưng tôi rất vui khi xem nguồn XML thô. Tất cả đều ổn cho đến nay - ngoại trừ khi trình soạn thảo sao chép thực hiện thay đổi, điều đó có thể thay đổi gói dòng. Vì vậy, một cái gì đó được sử dụng để đọc:

<para>Foo bar baz
 second line</para>

bây giờ đọc

<para>Foo bar grontle
 baz second line</para>

Bây giờ thay đổi thực sự ở đây là chèn "grontle". Tôi không quan tâm rằng "baz" đã chuyển từ dòng đầu tiên sang dòng thứ hai, nhưng tất cả các công cụ khác tôi đã thấy.

Tôi nhận ra rằng một lựa chọn sẽ là định dạng lại toàn bộ tài liệu (hoặc có thể chỉ là toàn bộ đoạn văn) thành một dòng duy nhất ... nhưng điều đó thực sự rất khó đọc, bởi vì các công cụ khác không bao bọc khi chúng hiển thị.

Tôi chắc chắn rằng tôi có thể quản lý bằng các công cụ tôi có, nhưng nếu có ai biết về bất cứ điều gì tốt hơn, tôi thực sự rất vui khi nghe về nó. Tôi nghi ngờ các nhà xuất bản của tôi cũng sẽ như vậy.

(Tôi đã bao gồm thẻ Windows ở đây vì tôi thực sự cần nó có sẵn trên Windows. Tôi cũng muốn nghe về bất kỳ phần mềm không phải Windows nào, nhưng chỉ trong trường hợp tôi có thể giúp xây dựng nó trên Windows.

Câu trả lời:


9

Có vẻ như SourceGear DiffMerge sẽ cung cấp cho bạn điều này, với sự hỗ trợ quy tắc của nó cho XML (và rất nhiều ngôn ngữ khác). Tôi không chắc liệu nó có khắc phục được tất cả các vấn đề của bạn không, vì ví dụ này tất nhiên là đơn giản hóa chương trình thực tế. Tôi đã thử những thay đổi phức tạp hơn một chút và những thay đổi đó dường như cũng hoạt động tốt.

Xem mẫu dưới đây cho khác biệt bạn mô tả

khác biệt đơn giản


1
Tôi vừa có một cái nhìn nhanh chóng với các tập tin thực sự, và có vẻ như nó thực hiện công việc một cách hoàn hảo. Cảm ơn bạn rất nhiều!
Jon Skeet

4

Giải pháp của tôi là vượt quá so sánh . (một công cụ mạnh mẽ hơn nhiều)

Vì vậy, chúng tôi bắt đầu bằng cách nhìn thấy vấn đề.

nhập mô tả hình ảnh ở đây

BC có vai trò phân tích cú pháp XML đặc biệt: (nó đã có vai trò XML, nhưng không có phân tích trước - được sắp xếp và sắp xếp lại )

nhập mô tả hình ảnh ở đây

vì vậy chúng tôi truy cập http://www.scootersoftware.com/doad.php?zz=kb_moreformats_alt

nhập mô tả hình ảnh ở đây

và bây giờ -

nhập mô tả hình ảnh ở đây

hy vọng bạn sẽ sử dụng nó cho phiên bản tiếp theo của C # chuyên sâu

ps nếu văn bản trong ảnh quá nhỏ, chỉ cần nhấp vào hình để tải ảnh gốc.


Btw " Namir.78 " nghĩa là gì?
Pacerier


0

Tôi đã có vấn đề tương tự tại một công ty cách đây không lâu. Họ muốn tìm một "XML khác biệt" thực sự và dường như không có bất kỳ giải pháp hoàn chỉnh nào ngoài đó.

Giải pháp đơn giản nhất là chạy một tập lệnh in đẹp trên XML trước để bình thường hóa kết thúc dòng và khoảng cách, sau đó chạy công cụ tìm khác biệt ( WinMerge rất tốt cho windows). Điều này làm giảm rất nhiều flotsam mà hầu hết các công cụ khác nhau sẽ ném vào bạn từ XML và thực sự dễ dàng để xây dựng một tập lệnh xung quanh.


Vấn đề là XML đã được in rất đẹp, hiệu quả - đó là các phần chèn và xóa thay đổi nơi các dòng được gói. Tôi tự hỏi liệu tôi có cần một cái gì đó để định dạng lại một tệp dựa trên các từ xuất hiện ở cuối dòng trong một dòng khác không :(
Jon Skeet

0

Bộ phân biệt thông minh SD so sánh các tài liệu dựa trên cấu trúc trái ngược với bố cục thực tế.

Có một bộ phân biệt thông minh XML. Đối với XML, điều đó có nghĩa là khớp thứ tự các thẻ và nội dung. Cần lưu ý rằng chuỗi văn bản trong đoạn cụ thể mà bạn chỉ ra là khác nhau. (Hiện tại nó không hiểu khái niệm văn bản XML trong đó khoảng trắng được chuẩn hóa so với đáng kể, nhưng tôi nghi ngờ rằng điều đó sẽ không làm tổn thương bạn nhiều).


0

@Jon Skeet: Bạn đã đề cập trong câu hỏi của mình rằng các công cụ khác không bao bọc khi chúng hiển thị.
vimdiff(cũng có sẵn trên windows qua gvim) cho phép bạn bọc các tệp xml được hiển thị với :window set wrap. Liên kết tham khảo .
Ngoài ra, bạn có thể chạy :diffupdateđể làm mới các khác biệt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.