قبل بضعة أيام تم الإعلان عن إصدار الإصدار الجديد من Git 2.3، أحد أكثر أنظمة التحكم في الإصدارات شيوعًا وموثوقية وعالية الأداء ، حيث يوفر أدوات تطوير مرنة غير خطية تعتمد على التفرع والدمج.
مقارنة بالإصدار السابق ، تم اعتماد 679 تغييرًا في الإصدار الجديد ، معدة بمشاركة 85 مطوروالتي شارك 23 منها في التطوير لأول مرة.
بوابة 2.31 الميزات الجديدة الرئيسية
في هذا الإصدار الجديد من Git 2.31 يتم تمييز إضافة الأمر "git Maintenance" أن يسمح بالعمل الدوري على الأنظمة التي لا تدعم cron. على سبيل المثال ، باستخدام الأمر الجديد ، يمكنك الترتيب لبدء عملية حزم المستودع بشكل دوري حتى لا تضطر إلى الانتظار حتى يكتمل قفل المستودع عند اكتمال الحزم تلقائيًا عند تشغيل أوامر متعددة.
التغيير الآخر الذي يبرز هو ذلك إضافة دعم للاحتفاظ بمؤشر عكسي على القرص (مراجعة) لملفات الحزمة ، لأن Git يخزن جميع البيانات في شكل كائنات ، والتي يتم تخزينها في ملفات منفصلة. لتحسين كفاءة العمل مع المستودع ، يتم وضع الكائنات بالإضافة إلى ذلك في ملفات الحزم ، حيث يتم تقديم المعلومات في شكل دفق من الكائنات التي يتم اتباعها واحدة تلو الأخرى.
لكل ملف حزمة ، يتم إنشاء ملف فهرس (.idx) ، مما يسمح باستخدام معرف الكائن لتحديد الإزاحة بسرعة كبيرة في ملف الحزمة الذي تم تخزين هذا الكائن فيه. الفهرس العكسي (.rev) المقترح بتنسيق يهدف Git 2.31 إلى تبسيط عملية تحديد معرف الكائن من المعلومات حول موقع الكائن في ملف الحزمة.
في السابق ، كان هذا التحويل يتم بشكل سريع أثناء التحليل من ملف الحزمة وتم تخزينه في الذاكرة فقط ، التي لم تسمح بإعادة استخدام الفهارس المذكورة وأجبرت على إنشاء الفهرس في كل مرة. عملية بناء الفهرس هي تخفيض لإنشاء مصفوفة من أزواج موضع الكائن وفرزها حسب الموضع ، مما قد يستغرق وقتًا طويلاً لملفات الحزم الكبيرة.
من ناحية أخرى ، يمكننا أن نجد ذلك تمت إضافة تحسينات الأداء بناء على المظهر في تنسيق ملف مخطط التأكيد، والتي تُستخدم لتحسين الوصول إلى المعلومات حول التأكيدات ، وبيانات جديدة حول إنشاء عدد التأكيدات ، والتي يمكن استخدامها لتسريع العمليات الإضافية مع التأكيدات.
وبالإضافة إلى ذلك، إضافة القدرة على تجاوز اسم الفرع الافتراضي في المستودعات الجديدة (تكوين init.defaultBranch). عند الوصول إلى المستودعات الخارجية ، يحاول git التحقق من الفرع الذي يشير إليه HEAD ، أي إذا كان الخادم الخارجي يستخدم الفرع "الرئيسي" افتراضيًا ، فستحاول عملية "git clone" العثور على "main" محليًا.
من التغييرات الأخرى التي تبرز:
- خيار "استخدام القرص" تمت إضافته إلى الأمر "git rev-list" لعرض ملخص لحجم الكائنات.
- تمت إزالة دعم مكتبة التعبير العادي PCRE1 المهملة.
- توفير القدرة على حظر استخدام الاختصارات بقوة ، والعمل بشكل مستقل عن خوارزمية التجزئة. يتم تمكين المنع من خلال تعيين القيمة "no" للمعامل core.abbrev.
- تمت إضافة خيار "–path-format" إلى الأمر "git rev-parse" لتعريف مخرجات المسارات النسبية أو المطلقة بشكل صريح.
- تعمل نصوص الإكمال التلقائي في Bash على تسهيل إضافة قواعد الإكمال لأوامر "git" الفرعية المخصصة.
- تمت إضافة خيار "–stdin" إلى الأمر "git bundle" لقراءة الروابط من تدفق الإدخال القياسي.
- تمت إضافة خياري "اليسار فقط" و "اليمين فقط" إلى الأمر "git range-diff" لإظهار جانب واحد فقط من النطاق المقارن.
- خيار مضاف "–skip-to = إلى الأمر "git difftool" لاستئناف جلسة متقطعة من مسار عشوائي.
- تم تحديث مدونة قواعد السلوك (مدونة السلوك) ، التي تحدد المبادئ الأساسية لحل النزاعات بين المطورين ، إلى الإصدار 2.0 (تم استخدام الإصدار 1.4 سابقًا).
أخيرا إذا كنت تريد معرفة المزيد عنها، يمكنك استشارة الرابط التالي.