Alat pembangun · Perbandingan teks
Perkara yang 'Abaikan Ruang kosong' Sebenarnya Abaikan dalam Perbezaan Teks Baris demi Baris
· Bagaimana ia berfungsi
perbezaan teks aliran kerja pembangun ruang kosong
Memecahkan jenis ruang kosong yang perbandingan boleh dinormalkan, daripada mengetuai lekukan kepada larian dalaman dan memberi amaran di mana ruang kosong membawa maksud dan tidak boleh diabaikan.
Setiap baris berubah, tetapi tiada apa yang benar-benar berlaku — dibuka dengan fail yang diinden semula dari tab ke ruang yang ditunjukkan sebagai dinding perbezaan
Pemformat menukar lekukan empat ruang kepada dua ruang dan perbezaan garisan melukis keseluruhan fail sebagai diubah. Perubahan itu mungkin bunyi visual, jadi paparan tidak sensitif ruang kosong boleh membantu pengulas mencari pengeditan sebenar. Tetapi "teks yang sama tanpa ruang kosong" tidak sama dengan "program yang sama." Bandingkan pandangan biasa dan biasa bersama sebelum meluluskan konfigurasi atau fail sumber.
Empat jenis perbezaan ruang kosong — memisahkan lekukan utama, ruang mengekor, larian dalaman dan garisan kosong, kerana setiap satunya disebabkan oleh alat atau tabiat yang berbeza
Perubahan ruang kosong berlaku di beberapa tempat. Lekukan utama selalunya datang daripada pemformatan; ruang belakang daripada copy/paste; ruang atau tab berulang di dalam baris mungkin memisahkan perkataan atau lajur; garisan kosong boleh membahagikan blok. Pilihan Abaikan ruang kosong ToolAcre memangkas setiap baris dan meruntuhkan setiap larian dalaman ruang kosong kepada satu ruang untuk perbandingan. Ia bukan sekadar mengalih keluar semua ruang kosong atau menganggap kiraan baris berbeza sebagai sama: dua baris kosong kekal sebagai dua unit perbandingan melainkan operasi lain mengalihkannya.
Cara normalisasi berlaku sebelum membandingkan — menerangkan bahawa pilihan mengubah setiap baris kepada bentuk kanonik untuk dipadankan manakala teks asal anda ialah apa yang anda baca
Kunci baris dikira daripada teks asal sebelum dipadankan: trim() mengalih keluar ruang kosong di awal dan hujung (/trailing) dan ungkapan biasa menggantikan larian dalaman dengan satu ruang. Algoritma diff membandingkan kunci tetapi menyimpan teks asal dalam baris yang dipaparkan. Awalan dan akhiran biasa dibuang sebelum membina jadual LCSnya, jadi pengeditan kecil dalam dokumen besar tidak semestinya memerlukan membandingkan setiap baris dengan satu sama lain. Terdapat penutup garisan berbeza 2,000, kerana jadual pengaturcaraan dinamik tumbuh dengan kedua-dua panjang sisi.
Contoh yang berfungsi: fungsi Python yang diinden semula dan fail YAML — menunjukkan pilihan membersihkan paparan Python, kemudian menyembunyikan perubahan inden YAML yang sebenarnya mengubah struktur dokumen
Bayangkan fungsi Python yang seluruh badannya berubah daripada empat ruang kepada dua sambil kekal pada tahap bersarang yang sama. Mengabaikan lekukan boleh menyembunyikan bunyi pemformatan itu. Dalam YAML, mengalihkan kunci dari bawah services.web ke bawah perkhidmatan menukar pemetaan induknya walaupun aksara setiap baris adalah sama selepas ruang kosong dipangkas. Jalankan pilihan pada kedua-dua coretan: paparan Python mungkin menjadi lebih mudah untuk disemak, manakala perubahan YAML boleh hilang walaupun menukar pepohon data. Jangan sekali-kali menggunakan output tidak sensitif ruang kosong sahaja untuk meluluskan format sensitif lekukan.
Apabila ruang kosong ialah data — menyenaraikan format yang ruang membawa maksud: YAML, Makefiles, blok kod Markdown, eksport lebar tetap dan literal rentetan
Ruang ialah data dalam lekukan YAML, resipi Makefile, blok kod Markdown dan eksport lebar tetap. Di dalam literal rentetan, menggantikan berbilang ruang boleh menukar teks yang boleh dilihat pengguna atau nilai yang ditandatangani atau dicincang. Malah kod dengan pemformatan umumnya fleksibel mempunyai konteks di mana ruang kosong adalah penting: Blok Python dan shell di sini-dokumen adalah contoh yang jelas. Pilihan tidak boleh membuat kesimpulan konteks tersebut, kerana ia melihat garis biasa, bukan tatabahasa bahasa. Pilihnya sahaja apabila anda memahami fail yang dibandingkan.
Menggabungkan pilihan ruang kosong dan kes — menerangkan cara mendayakan kedua-duanya menyempitkan perbandingan kepada huruf yang sama dalam susunan yang sama dan perkara yang disembunyikan
Menggabungkan ruang kosong Abaikan dengan huruf besar Abaikan menyempitkan padanan kepada baris yang baki huruf dan tanda bacanya bersetuju tanpa mengira huruf besar atau jarak. Itu mungkin menjadikan dokumen berat pemformatan senyap, tetapi ia juga boleh menyembunyikan pengecam sensitif huruf besar kecil, kunci pengepala atau laluan sistem fail yang diubah. ToolAcre huruf kecil kekunci perbandingan sahaja apabila anda menghidupkan pilihan kedua itu; ia masih memaparkan teks baris asal. Tukar pilihan satu demi satu supaya anda boleh melihat perubahan yang mana setiap satu dialih keluar.
Perkara ini tidak meliputi — pilihan membandingkan garisan selepas normalisasi; ia tidak mengalirkan semula perenggan, mengesan blok yang dialihkan atau membandingkan pemformatan dalam dokumen yang kaya
Ciri ini tidak mengalir semula perenggan, mengesan blok yang dialihkan, membandingkan pemaparan HTML atau memutuskan sama ada dua AST program adalah setara. Perbezaan ToolAcre ialah pengaturcaraan dinamik LCS berasaskan baris dengan pemangkasan awalan biasa/suffix, bukan algoritma Myers yang diterangkan dalam beberapa tutorial perbezaan am. Pada fail yang ditampal besar, ia akan berhenti dan bukannya memperuntukkan matriks tidak terhad. Gunakan penghurai yang mengetahui bahasa atau semakan kawalan versi untuk tuntutan struktur.
Bawa pulang: togol, jangan lalai — mengesyorkan menjalankan kedua-dua perbandingan dan menunjukkan cara Perbandingan Teks ToolAcre membolehkan anda menghidupkan dan mematikan pilihan ruang kosong untuk pasangan teks yang sama
Togol Abaikan ruang kosong sebagai pandangan, bukan kebenaran lalai. Perbandingan teks menyimpan semua yang anda tampal dalam pelayar, membolehkan anda membandingkan kedua-dua paparan semakan yang sama tanpa memuat naik kontrak atau fail konfigurasi. Jika perubahan hilang dalam paparan biasa, tanya sama ada format asas memberikan makna ruang kosong sebelum memutuskan bahawa ia tidak berbahaya.