إطلاق نظام التحكم في المصدر الموزع Git 2.25

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

مقارنة بالإصدار السابق ، تم قبول 583 تغييرًا في الإصدار الجديد ، الذي تم إعداده بمشاركة 84 مطورًا ، شارك 32 منهم في التطوير لأول مرة. رئيسي الابتكارات:

  • الاقتراب من الاستقرار والاستعداد الكامل هو إمكانية الاستنساخ الجزئي (النسخ الجزئية) ، مما يسمح لك بنقل جزء فقط من البيانات والعمل مع نسخة غير مكتملة من المستودع. ينسخ الاستنساخ العادي جميع البيانات من المستودع ، بما في ذلك كل نسخة من كل ملف في محفوظات التغيير. بالنسبة للمستودعات الكبيرة جدًا ، ينتج عن نسخ البيانات زيادة كبيرة في حركة المرور ومساحة القرص ، حتى لو كان المطور مهتمًا فقط بمجموعة فرعية من الملفات. لتسهيل الحصول على جزء فقط من شجرة مصدر العمل ، يقدم الإصدار الجديد أمر "سحب متقطع" وخيار "- sparse" جديد لأمر "clone".

    في السابق ، كانت عملية الاستنساخ الانتقائي تتم من خلال الوظيفة مرشحات لتصفية المحتوى الزائد وخيار "- no checkout" لتعطيل إكمال الملفات المفقودة. بعد ذلك ، قبل إجراء عملية السحب ، كان من الضروري تمكين إعداد core.sparseCheckout وتحديد قائمة أنماط مسار الاستبعاد في ملف .git / info / sparse-checkout. على سبيل المثال ، للاستنساخ بدون نقاط كبيرة ومنع استخراج الملفات من المجلدات المتداخلة 2 أو أكثر عمقًا ، يمكنك تشغيل:

    git clone --filter = blob: none - no-checkout / your / repository / here repo
    $ مؤتمر نزع السلاح الريبو
    $ cat> .git / info / sparse-checkout
    /*
    ! / *
    EOF
    git config core.sparseCheckout $ 1
    بوابة الخروج $.

    الأمر الجديد "git sparse-checkout" يبسط العمل بشكل كبير ويقلل من عملية تنظيم العمل مع مستودع غير مكتمل للأوامر:

    git clone --filter = blob: none --sparse / your / repository / here repo
    بوابة الخروج المتفرقة مجموعة / المسار / إلى / السحب / الخروج

    يسمح لك الأمر sparse-checkout بتعيين قائمة بمسارات الخروج (مجموعة) دون ضبط .git / info / sparse-checkout يدويًا ، بالإضافة إلى عرض قائمة المسارات الحالية (قائمة) وتمكين عمليات الإعارة الجزئية أو تعطيلها (تمكين / إبطال).

    لتحسين العمل مع المستودعات الكبيرة جدًا وقوائم القوالب ، فإن الإعداد "git config core.sparseCheckoutCone"، الذي يقيد الأنماط المسموح بها (بدلاً من أنماط gitignore العشوائية ، يمكنك تحديد ما إذا كان يجب سحب جميع المسارات وما إذا كان يجب سحب جميع الملفات في دليل فرعي معين). على سبيل المثال ، إذا كان مستودع كبير يحتوي على دليل "A / B / C" وتركز كل العمل في الدليل الفرعي "C" ، فعند تمكين وضع sparseCheckoutCone ، فإن الأمر "git sparse-checkout set A / B / ستقوم C "باستخراج محتويات" C "تمامًا ، ولكن من" A "و" B "لن يتم استخراج سوى الأجزاء الضرورية للعمل مع" C ".

  • تمت إزالة جميع الإشارات إلى خيار "--preserve-merges" من الوثائق ("git rebase -h") ، والذي تم إهماله ويجب استخدامه بدلاً من ذلك لإعادة تعيين مجموعة من الالتزامات.git rebase - rebase-merges".
  • لتحسين إمكانية قراءة رسائل التصحيح المرسلة إلى القوائم البريدية ، تمت إضافة خيار "git format-patch --cover-from-description theme" ، والذي يستخدم الفقرة الأولى من نص وصف الفرع كموضوع خطاب الغلاف للتصحيح تعيين.
  • تم تنفيذ الدعم للاستخدام المشترك للأمر "git application -3way" والإعداد "merge.conflictStyle" (يأخذ "git apply" الآن في الاعتبار نمط وصف التعارض من merge.conflictStyle عندما يكون من الضروري حل التعارض بعد المحاولة لتطبيق ملف التصحيح على المستودع).
  • تم تمديد كود تعريف الوظيفة المستخدم في عمليات مثل "git diff / grep - show-function / --function-Context" لدعم تحديد حدود الوظيفة في البرامج المكتوبة في جوهر الشىء.
  • تمت إضافة خيار جديد "--pathspec-from-file" إلى "git add" و "git الالتزام" و "git reset" وأوامر أخرى ، مما يتيح لك تحميل قائمة بالمسارات من ملف أو دفق إدخال بدلاً من سردها في سطر الأوامر.
  • تم إصلاح مشكلة اكتشاف عمليات إعادة التسمية على مستوى الدليل عند كتابة الالتزامات. لم يعمل التعريف في حالة نقل محتويات الدليل الفرعي إلى جذر المستودع.
  • يُقترح تنفيذ أولي لأمر "git add -i" المعاد تصميمه والذي يسمح لك بإضافة محتوى معدل بشكل تفاعلي ، معاد كتابته من لغة Perl إلى لغة C. تجري إعادة صياغة مماثلة للأمر "git add -p".
  • تم إعادة بناء الأمر "git log --graph" ، والذي يشكل صورة ASCII للرسم البياني مع تاريخ التغييرات في المستودع. جعلت المراجعة من الممكن تحسين المخرجات وتبسيطها بشكل كبير دون تشويه بنية السجل ، والتي ، على سبيل المثال ، حلت المشكلة مع الصورة الزاحفة خارج عرض خط المحطة.
  • خيار "git log --format = .." الذي يسمح لك بتغيير تنسيق الإخراج ،
    مع دعم علامات "l / L" لعرض جزء فقط من عنوان البريد الإلكتروني المحدد قبل الرمز "@" (على سبيل المثال ، يكون مفيدًا عندما يكون لدى جميع المطورين جميع رسائل البريد الإلكتروني في نفس المجال).

  • تمت إضافة الأمر الفرعي "set-url" إلى الأمر "git submodule".
  • تم تحديث مجموعات الاختبار استعدادًا للانتقال إلى
    خوارزمية التجزئة SHA-2 بدلاً من SHA-1.

المصدر: opennet.ru

إضافة تعليق