Perbedaan XML panjang garis toleran

13

Saya telah melihat jawaban untuk pertanyaan ini , dan sayangnya tidak ada yang membantu saya sejauh ini.

Bukan untuk bertele-tele, edisi kedua C # di Kedalaman sekarang dalam copy edit. Saya ingin dapat melihat apa yang dilakukan penyunting dengan sangat mudah, sehingga saya dapat menolak atau menerima perubahannya.

Kami menggunakan bentuk dokumen yang dimodifikasi, tapi saya cukup senang melihat sumber XML mentah. Semua baik-baik saja sejauh ini - kecuali bahwa ketika editor salin membuat perubahan, itu dapat mengubah pembungkus baris. Jadi sesuatu yang biasa dibaca:

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

sekarang terbaca

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

Sekarang perubahan nyata di sini adalah penyisipan "grontle". Saya tidak peduli bahwa "baz" telah berpindah dari baris pertama ke baris kedua, tetapi semua alat berbeda yang saya lihat lakukan.

Saya menyadari bahwa satu opsi adalah memformat ulang seluruh dokumen (atau mungkin hanya seluruh paragraf) menjadi satu baris ... tapi itu sangat sulit dibaca, karena alat yang berbeda tidak membungkus ketika mereka ditampilkan.

Saya yakin saya bisa mengelola dengan alat yang saya punya, tetapi jika ada yang tahu sesuatu yang lebih baik, saya akan sangat senang mendengarnya. Saya curiga penerbit saya juga.

(Saya sudah memasukkan tag Windows di sini karena saya benar-benar membutuhkannya tersedia di Windows. Saya juga ingin mendengar tentang perangkat lunak non-Windows, tetapi hanya jika saya dapat membantu membuatnya di Windows.

Jon Skeet
sumber

Jawaban:

9

Sepertinya SourceGear DiffMerge akan memberi Anda ini, dengan dukungan ruleset untuk XML (dan banyak bahasa lainnya). Saya tidak yakin apakah ini akan memperbaiki semua masalah Anda, karena contohnya tentu saja merupakan penyederhanaan dari program yang sebenarnya. Saya mencoba perubahan yang sedikit lebih kompleks, dan itu tampaknya bekerja dengan baik juga.

Lihat contoh di bawah ini untuk perbedaan yang Anda jelaskan

diff sederhana

Sander Rijken
sumber
1
Saya baru saja melihat cepat dengan file yang sebenarnya, dan sepertinya itu melakukan pekerjaan dengan sempurna. Terima kasih begitu banyak!
Jon Skeet
4

Solusi saya adalah dengan luar biasa . (alat yang jauh lebih kuat)

Jadi kita mulai dengan melihat masalahnya.

masukkan deskripsi gambar di sini

BC memiliki peran parsing XML khusus: (sudah memiliki peran XML, tetapi tidak dengan pra-analisis - yang diurutkan dan dirapikan )

masukkan deskripsi gambar di sini

jadi kami pergi ke http://www.scootersoftware.com/download.php?zz=kb_moreformats_alt

masukkan deskripsi gambar di sini

dan sekarang -

masukkan deskripsi gambar di sini

harap Anda akan menggunakannya untuk edisi C # selanjutnya secara mendalam

ps jika teks dalam gambar terlalu kecil, cukup klik pada gambar untuk memuat yang asli.

Royi Namir
sumber
Btw apa arti " Namir.78 "?
Pacerier
0

Saya punya masalah yang sama di sebuah perusahaan belum lama ini. Mereka ingin menemukan "perbedaan XML" yang sebenarnya, dan tampaknya tidak ada solusi lengkap di luar sana.

Solusi termudah adalah dengan menjalankan skrip cetak cantik pada XML terlebih dahulu untuk menormalkan akhir-akhir dan spasi, dan kemudian jalankan alat bantu pilihan ( WinMerge bagus untuk windows). Ini menjatuhkan banyak flotsam yang sebagian besar difftools akan berikan kepada Anda dari XML, dan sangat mudah untuk membuat skrip.

jweede
sumber
Masalahnya adalah bahwa XML sudah yang cantik-dicetak, secara efektif - itu adalah sisipan dan penghapusan bahwa perubahan di mana garis dibungkus. Saya bertanya-tanya apakah saya perlu sesuatu untuk memformat ulang satu file berdasarkan pada kata-kata yang muncul di akhir baris dalam file lain :(
Jon Skeet
0

SD Smart Differencer membandingkan dokumen berdasarkan struktur yang bertentangan dengan tata letak yang sebenarnya.

Ada XML Smart Differencer. Untuk XML, itu artinya mencocokkan urutan tag dan konten. Harus dicatat bahwa string teks dalam fragmen spesifik yang Andaindikasikan berbeda. (Saat ini tidak memahami gagasan XML teks di mana spasi dinormalisasi vs signifikan, tapi saya menduga itu tidak akan banyak menyakiti Anda).

Ira Baxter
sumber
0

@ Jon Skeet: Anda menyebutkan dalam pertanyaan Anda bahwa alat yang berbeda tidak membungkus ketika mereka ditampilkan.
vimdiff(juga tersedia di windows via gvim) memungkinkan Anda untuk membungkus file xml yang ditampilkan dengan :window set wrap. Tautan referensi .
Anda juga dapat menjalankan :diffupdateuntuk menyegarkan diff.

GuruM
sumber