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

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

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

  • يتضمن الهيكل الرئيسي الأداة المساعدة "العددية"، التي طورتها Microsoft لإدارة المستودعات الكبيرة. تمت كتابة الأداة في الأصل بلغة C#، لكن git يتضمن نسخة معدلة بلغة C. تختلف الأداة المساعدة الجديدة عن الأمر git من خلال تمكين ميزات وإعدادات إضافية افتراضيًا تؤثر على الأداء عند العمل مع مستودعات كبيرة جدًا. على سبيل المثال، عند استخدام العددية فإنه ينطبق:
    • الاستنساخ الجزئي للعمل مع نسخة غير كاملة من المستودع.
    • آلية مدمجة لتتبع التغييرات في نظام الملفات (FSMonitor)، والتي تتيح لك الاستغناء عن البحث في دليل العمل بأكمله.
    • فهارس تغطي الكائنات في ملفات حزمة مختلفة (حزمة متعددة).
    • ملفات الرسم البياني للالتزام مع فهرس الرسم البياني للالتزام المستخدم لتحسين الوصول إلى معلومات الالتزام.
    • العمل الدوري في الخلفية للحفاظ على البنية المثالية للمستودع في الخلفية، دون عرقلة الجلسة التفاعلية (يتم العمل مرة كل ساعة لتنزيل كائنات جديدة بشكل استباقي من المستودع البعيد وتحديث الملف باستخدام الرسم البياني للالتزام، وعملية التعبئة يبدأ المستودع كل ليلة).
    • وضع "sparseCheckoutCone"، الذي يحد من الأنماط المسموح بها أثناء الاستنساخ الجزئي.
  • تمت إضافة خيار --update-refs إلى أمر "git rebase" لتحديث الفروع التابعة التي تتداخل مع الفروع التي يتم نقلها، بدلاً من الاضطرار إلى التحقق يدويًا من كل فرع تابع للتبديل إلى الالتزام المطلوب.
  • جعل الأمر "git rm" متوافقًا مع الفهارس الجزئية.
  • تم تحسين سلوك الأمر "git mv AB" عند نقل ملف من مساحة عمل ذات فهارس جزئية في الوضع "المخروطي" إلى نطاق خارجي لا يحتوي على هذا الوضع.
  • تم تحسين تنسيق ملف الصورة النقطية للعمل مع المستودعات الكبيرة - تمت إضافة جدول فهرس اختياري بقائمة من الالتزامات المحددة وإزاحاتها.
  • يطبق أمر "git merge-tree" وضعًا جديدًا يتم من خلاله، بناءً على التزامين محددين، حساب شجرة بنتيجة الدمج، كما لو تم دمج تواريخ هذه الالتزامات.
  • تمت إضافة إعداد "safe.barerepository" للتحكم في القدرة على استضافة المستودعات العارية (المستودعات التي لا تحتوي على شجرة عمل) داخل مستودعات git الأخرى. عند التعيين على "صريح"، سيكون من الممكن العمل مع المستودعات المجردة الموجودة في الدليل العلوي فقط. لتتمكن من وضع المستودعات المجردة في الدلائل الفرعية، استخدم القيمة "الكل".
  • أضاف أمر "git grep" خيار "-m" ("—max-count")، والذي يشبه الخيار الذي يحمل نفس الاسم في GNU grep ويسمح لك بتحديد عدد التطابقات المعروضة.
  • يطبق أمر "ls-files" خيار "--format" لتكوين حقول الإخراج (على سبيل المثال، يمكنك تمكين إخراج اسم الكائن والأوضاع وما إلى ذلك).
  • في "ملف git cat"، عند عرض محتويات الكائنات، من الممكن مراعاة روابط المؤلف والبريد الإلكتروني المحددة في ملف خريطة البريد.

المصدر: opennet.ru

إضافة تعليق