إصدار التحكم بالمصادر Git 2.35

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

ومقارنة بالإصدار السابق، تضمن الإصدار الجديد 494 تغييرًا، تم إعدادها بمشاركة 93 مطورًا، منهم 35 شاركوا في التطوير لأول مرة. الابتكارات الرئيسية:

  • تم توسيع إمكانيات استخدام مفاتيح SSH للتوقيع رقميًا على كائنات Git. للحد من فترة صلاحية عدة مفاتيح، تمت إضافة دعم لتوجيهات OpenSSH "صالحة قبل" و"صالحة بعد"، والتي يمكنك من خلالها ضمان العمل الصحيح مع التوقيعات بعد أن قام أحد المطورين بتدوير المفتاح. قبل ذلك، كانت هناك مشكلة في فصل التوقيعات بالمفتاح القديم والجديد - إذا قمت بحذف المفتاح القديم، فسيكون من المستحيل التحقق من التوقيعات المصنوعة به، وإذا تركته، فسيظل من الممكن إنشاء توقيعات جديدة باستخدام المفتاح القديم، الذي تم استبداله بالفعل بمفتاح آخر. باستخدام صالح قبل وصالح بعد، يمكنك فصل نطاق المفاتيح بناءً على وقت إنشاء التوقيع.
  • في إعداد merge.conflictStyle، الذي يتيح لك تحديد وضع عرض المعلومات حول التعارضات أثناء الدمج، ظهر دعم لوضع "zdiff3"، الذي ينقل جميع الخطوط القياسية المحددة في بداية أو نهاية التعارض إلى خارج التعارض المنطقة، مما يسمح بعرض أكثر إحكاما للمعلومات.
  • تمت إضافة الوضع "--staged" إلى الأمر "git stash"، والذي يسمح لك بإخفاء التغييرات المضافة إلى الفهرس فقط، على سبيل المثال في الموقف الذي تحتاج فيه إلى تأجيل بعض التغييرات المعقدة مؤقتًا حتى تتمكن أولاً من أضف ما هو جاهز بالفعل واتعامل مع الباقي بعد فترة. يشبه الوضع أمر "git Commit"، حيث يكتب فقط التغييرات الموضوعة في الفهرس، ولكن بدلاً من إنشاء التزام جديد في "git stash —staged"، يتم تخزين النتيجة في منطقة التخزين المؤقتة. بمجرد الحاجة إلى التغييرات، يمكن التراجع عنها باستخدام الأمر "git stash pop".
  • تمت إضافة محدد تنسيق جديد إلى أمر "git log"، "-format=%(describe)"، والذي يسمح لك بدمج مخرجات "git log" مع مخرجات الأمر "git description". يتم تحديد معلمات "وصف git" مباشرة داخل المحدد ("-format=%(describe:match= استبعاد= )")، حيث يمكنك أيضًا تضمين علامات مختصرة ("—format=%(describe:tags= )") وتكوين عدد الأحرف الست عشرية لتحديد الكائنات ("—format=%(describe:abbrev= )"). على سبيل المثال، لسرد آخر 8 عمليات تنفيذ لا تحتوي علاماتها على علامة مرشح للإصدار، وتحديد معرفات مكونة من 8 أحرف، يمكنك استخدام الأمر: $ git log -8 —format='%(describe:exclude=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643-g2b95d94b056ab v2.34.1-642 -gb56bd 95bbc8f7 v2.34.1-203-gffb9f2980902d v2.34.1-640- gdf3c41adeb212 v2.34.1-639-g36b65715a4132
  • يدعم إعداد user.signingKey الآن أنواعًا جديدة من المفاتيح التي لا تقتصر على النوع "ssh-" ويحدد مسار الملف الكامل للمفتاح. يتم تحديد الأنواع البديلة باستخدام البادئة "key::"، على سبيل المثال "key::ecdsa-sha2-nistp256" لمفاتيح ECDSA.
  • تمت زيادة سرعة إنشاء قائمة التغييرات في وضع "-الرسم البياني"، وكذلك عند استخدام خيار "-color-moved-ws"، الذي يتحكم في تمييز المسافات في اختلاف الألوان، بشكل ملحوظ.
  • يوفر أمر "git Jump"، المستخدم لتزويد Vim بمعلومات حول الانتقال الدقيق إلى الموضع المطلوب في ملف عند تحليل تعارضات الدمج، أو عرض الاختلافات، أو إجراء عملية بحث، القدرة على تضييق نطاق تعارضات الدمج المغطاة. على سبيل المثال، لتقييد العمليات بالدليل "foo" فقط، يمكنك تحديد "git Jump merge - foo"، ولاستبعاد دليل "Documentation" من المعالجة - "git Jump merge - ':^Documentation'"
  • تم العمل على توحيد استخدام النوع "size_t" بدلاً من "unsigned long" للقيم التي تمثل حجم الكائنات، مما أتاح استخدام مرشحات "clean" و"smudge" مع الملفات الأكبر من 4 جيجابايت على جميع الأنظمة الأساسية، بما في ذلك الأنظمة الأساسية التي تحتوي على نموذج بيانات LLP64، يكون النوع "طويل غير موقع" والذي يقتصر على 4 بايت.
  • تمت إضافة الخيار "-empty=(stop|drop|keep)" إلى أمر "git am"، والذي يسمح لك بتحديد سلوك الرسائل الفارغة التي لا تحتوي على تصحيحات عند تحليل التصحيحات من صندوق البريد. ستنهي القيمة "stop" عملية التصحيح بأكملها، وستؤدي القيمة "drop" إلى تخطي التصحيح الفارغ، وستؤدي القيمة "keep" إلى إنشاء التزام فارغ.
  • تمت إضافة دعم للفهارس الجزئية (الفهرس المتناثر) للأوامر "gitset" و"git diff" و"gitlem" و"git fetch" و"git pull" و"git ls-files" لتحسين الأداء وتوفير المساحة في المستودعات، التي يتم فيها تنفيذ عمليات الاستنساخ الجزئي (السحب المتناثر).
  • تم إهمال الأمر "git sparse-checkout init" ويجب استبداله بـ "git sparse-checkout set".
  • تمت إضافة التنفيذ الأولي لواجهة خلفية جديدة "قابلة للإصلاح" لتخزين المراجع مثل الفروع والعلامات في المستودع. تستخدم الواجهة الخلفية الجديدة وحدة تخزين الكتل التي يستخدمها مشروع JGit وهي مُحسَّنة لتخزين أعداد كبيرة جدًا من المراجع. لم يتم دمج الواجهة الخلفية بعد مع نظام المراجع وليست جاهزة للاستخدام العملي.
  • تم تعديل لوحة الألوان الخاصة بالأمر "git grep" لتتوافق مع الأداة المساعدة GNU grep.

المصدر: opennet.ru

إضافة تعليق