يصل Git 2.29.0 مع دعم تجريبي لـ SHA-256 والتحسينات والمزيد

Git هو أحد أشهر أنظمة التحكم في الإصدارات ، موثوقة وعالية الأداء ، وتوفر أدوات تطوير مرنة غير خطية تعتمد على التفرع والدمج. لضمان تكامل السجل ومقاومته للتغييرات "بأثر رجعي" ، يتم استخدام التجزئة الضمنية لكل السجل السابق في كل التزام ، ومن الممكن أيضًا المصادقة بالتوقيعات الرقمية للعلامات الفردية وإلزام المطورين.

مؤخرا تم الإعلان عن نسخته الجديدة "Git 2.29.0" ومقارنة بالإصدار السابق ، تم اعتماد 627 تغييرًا في الإصدار الجديد، تم إنتاجه بمشاركة 89 مطورًا ، شارك 24 منهم في التطوير لأول مرة.

بوابة 2.29.0 الميزات الجديدة الرئيسية

في هذا الإصدار الجديد ، يتضمن خيارًا تجريبيًا لاستخدام خوارزمية التجزئة SHA-256 بدلاً من SHA-1 المخترق عند كتابة الأشياء إلى المستودع. يتم إنشاء التجزئة من محتوى كل كائن في Git وهو معرف فريد له. أي تغيير في البيانات أو رؤوس الكائن يؤدي إلى تغيير في معرفه. لا يمنع حدوث التصادمات في خوارزمية التجزئة نظريًا تكوين مجموعتين مختلفتين من البيانات مع تجزئة ناتجة.

لسوء الحظ، تبين أن خوارزمية SHA-1 ليست مقاومة لتشكيل الاصطدام الاصطناعي، ولكن لارتكاب هجمات حقيقية لاستبدال الكائنات في Git عن طريق معالجة تصادمات SHA-1 ، وهو أمر غير محتمل ، لأنه لإلغاء كائن منفصل ، من الضروري أن يحتوي الكائن الملغى بالفعل على نمط تصادم ، أي أن الكتلة التعسفية لا يمكن استبدال.

نظرًا لأن كل تصادم يتطلب موارد حوسبة هائلة ، فإن القوالب المحسوبة بالفعل معروفة مما أدى إلى حدوث تصادمات وفي وقت سابق في Git تمت إضافة فحص لمحاولات استخدامها على الكائنات.

في هذه المرحلة من التطوير ، يمكنك فقط الاختيار بين SHA-1 و SHA-256 ، لكن حتى الآن لا يمكنك دمج تجزئات مختلفة في المستودع في نفس الوقت. أيضًا ، حتى الآن ، لا يدعم أي موفر Git ، بما في ذلك GitHub ، المستودعات باستخدام تجزئات SHA-256. هناك خطط لإضافة ميزات قابلية في المستقبل.

تغيير آخر في هذا الإصدار الجديد في الأمر "Git fetch" و "git push" إلى أولئك الذين يضيف دعمًا لمواصفات الارتباط الحصرية (refspec) ، يوسع حقوق الارتباط المطابقة بين الفروع في المستودعات المحلية والخارجية. يمكن أن يكون استبعاد المواصفات المرجعية مفيدًا في المواقف التي لا تحتاج فيها إلى التحديد فقط ، ولكن أيضًا استبعاد بعض الفروع من التعيين. على سبيل المثال ، عندما كان من الضروري التحقق من جميع فروع "refs / heads / *" ، باستثناء واحد "refs / heads / ref-to -lusion" ، كان من الضروري أولاً تحديد قائمة كاملة ، بما في ذلك صراحةً كل فرع.

تمت إضافة حقول جديدة إلى "git for-each-ref" والتي يمكن تحديدها باستخدام خيار "-format" ، بالإضافة إلى اسم الكائن ونوعه ومعرفه. على سبيل المثال ، محتوى الحقول المضافة: الحجم ، والموضوع: التعقيم ، والمعدل: قصير لعرض معرفات الكائنات القصيرة. يُسمح أيضًا بتحديد وسيطات متعددة "مدمجة" و "غير مدمجة" لتصفية الروابط.

عند حدوث تعارض أثناء عملية "git merge" ، أصبح عنوان رسالة الالتزام الآن بين قوسين مربعين للفصل بشكل أكثر وضوحًا بيانات الالتزام من رسائل تشخيص Git.

تمت إضافة إعداد جديد "merge.renormalize" ، عند التعيين ، يتم تنفيذ عمليات السحب والسحب لكل مرحلة من المراحل الثلاثية.

تم التراجع عن الإصدار الثاني من بروتوكول اتصال Git ، والذي تم تعطيله في الإصدار 2.27 ، ويتم استخدامه عندما يتصل العميل عن بعد بخادم Git. تم تشخيص الخطأ الذي يسبب مشاكل الاستقرار وإصلاحه.

تمت إضافة خيار "–first-parent" إلى الأمر "git bisect"أن يستخدم لتحديد المراجعة التي حدث فيها تغيير ارتدادي ، لتغيير تحديد الالتزامات التي تمر بين مراجعة العمل المعروفة والمراجعة التي حدثت فيها المشكلة. إذا حددت "–first-parent" ، فسيتم احتساب الإيداعات على الفرع المدمج فقط ، مع تجاهل التزام الدمج نفسه.

تم تحسين كفاءة الأمر الداخلي "git index-pack" تُستخدم عند تنفيذ "git push" أو "git fetch" عند موازنة تعبئة فهرس على أنظمة متعددة النواة.

تمت إضافة إعداد "merge.suppressDest" ، الذي يتحكم في إضافة العبارة "in $ dest" إلى رسائل "Merge $ upstream في $ dest" الصادرة عند دمج الفروع (سابقًا ، كانت عبارة "in $ dest" لم يكن يظهر للفرع الرئيسي بشكل افتراضي).

تم إصلاح ثغرة أمنية في الواجهة الخلفية "Contrib / mw-to-git" (لم يتم إنشاؤه افتراضيًا) لدفع واسترداد البيانات من ميدياويكي. سمحت المشكلة بتنظيم تنفيذ الكود عند الوصول إلى مثيل ميدياويكي كان تحت سيطرة مهاجم.

أخيرًا ، إذا كنت تريد معرفة المزيد عنها ، فيمكنك التحقق من التفاصيل في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.