أداة OmniDiff تعرض الفروق داخل الصور والخطوط وملفات PDF بدل عبارة الملفان مختلفان
حين يصل أمر git diff إلى ملف غير نصي، يكتفي بسطر واحد يقول إن الملفين مختلفان. وتحاول أداة جديدة مفتوحة المصدر باسم OmniDiff أن تجيب عن السؤال التالي: ما الذي اختلف بالضبط؟
في الكود، تفهم الأداة 25 لغة برمجة عبر tree-sitter، وهي مكتبة تحلل بنية الكود لا نصه فقط. لذلك تعرض التغيير على مستوى تركيب الكود لا السطر كله. وفي المثال الوارد في ملف المشروع، يحتوي السطر على تغيير واحد، فتلوّن الأداة الجزء المتغير وحده لا عملية الإسناد كاملة.
والجديد أنها تقارن الملفات غير النصية بمحتواها: الصور بكسلًا بكسلًا، والخطوط حرفًا حرفًا، والأرشيفات ملفًا ملفًا، وملفات PDF صفحةً صفحة، وملفات الترجمة رسالةً رسالة.
وتُثبَّت بأمر واحد عبر cargo أو brew أو apt، ولها نسخ جاهزة لأنظمة Windows وmacOS وLinux، وتكامل مع VS Code وNeovim. وبعد أمر إعداد واحد تعمل داخل git difftool.
ويذكر المشروع عن نفسه، في قياس على جهاز محدد في الملف لا في قياس مستقل، أن الوسيط 4.2 ميلي ثانية على 2,302 حالة اختبار، وأن 97.6% من الحالات تنتهي في أقل من 100 ميلي ثانية، ولم تتجاوز أي حالة ثانية واحدة. ويذكر أيضًا الأهداف التي لم يبلغها بعد: الهدف 90% من الحالات دون أي بايت خاطئ، والواقع 60% في وضع و69.6% في وضع آخر. ويفصح صاحب المشروع بأنه يعتمد على الذكاء الاصطناعي في التطوير بشكل كبير.
والرخصة AGPL-3.0، وهي رخصة تُلزم بنشر الكود في حالات معينة، ومعها رخصة تجارية باشتراك شهري عبر GitHub Sponsors للشركات التي لا تريد نشر كودها. ولذلك تصبح الرخصة أول ما يُقرأ عند التفكير في استخدام الأداة داخل شركة.