تقسیم شدہ سورس کنٹرول سسٹم Git 2.26 کی ریلیز

دستیاب تقسیم شدہ سورس کنٹرول سسٹم کی رہائی Git 2.26.0. Git سب سے زیادہ مقبول، قابل اعتماد اور اعلی کارکردگی والے ورژن کنٹرول سسٹمز میں سے ایک ہے، جو برانچنگ اور انضمام پر مبنی لچکدار غیر لکیری ترقیاتی ٹولز فراہم کرتا ہے۔ تاریخ کی سالمیت کو یقینی بنانے اور سابقہ ​​تبدیلیوں کے خلاف مزاحمت کو یقینی بنانے کے لیے، ہر کمٹ میں پوری پچھلی تاریخ کی مضمر ہیشنگ کا استعمال کیا جاتا ہے؛ ڈویلپرز کے ڈیجیٹل دستخطوں کے ساتھ انفرادی ٹیگز اور کمٹ کی تصدیق کرنا بھی ممکن ہے۔

پچھلی ریلیز کے مقابلے میں، نئے ورژن میں 504 تبدیلیاں شامل ہیں، جو 64 ڈویلپرز کی شرکت سے تیار کی گئی ہیں، جن میں سے 12 نے پہلی بار ترقی میں حصہ لیا۔ اہم بدعات:

  • پہلے سے طے شدہ کو تبدیل کر دیا گیا ہے۔ دوسرا ورژن Git کمیونیکیشن پروٹوکول، جو اس وقت استعمال ہوتا ہے جب کوئی کلائنٹ دور سے Git سرور سے جڑتا ہے۔ پروٹوکول کا دوسرا ورژن سرور کی طرف شاخوں اور ٹیگز کو فلٹر کرنے کی صلاحیت فراہم کرنے کے لیے قابل ذکر ہے، کلائنٹ کو لنکس کی ایک مختصر فہرست واپس کرتا ہے۔ اس سے پہلے، کوئی بھی پل کمانڈ کلائنٹ کو ہمیشہ پوری ریپوزٹری میں حوالہ جات کی مکمل فہرست بھیجتا تھا، یہاں تک کہ جب کلائنٹ صرف ایک برانچ کو اپ ڈیٹ کر رہا ہو یا یہ چیک کر رہا ہو کہ ان کی ریپوزٹری کی کاپی اپ ٹو ڈیٹ ہے۔ ایک اور قابل ذکر جدت پروٹوکول میں نئی ​​صلاحیتوں کو شامل کرنے کی صلاحیت ہے کیونکہ ٹول کٹ میں نئی ​​فعالیت دستیاب ہوتی ہے۔ کلائنٹ کوڈ پرانے پروٹوکول کے ساتھ مطابقت رکھتا ہے اور نئے اور پرانے دونوں سرورز کے ساتھ کام کرنا جاری رکھ سکتا ہے، اگر سرور دوسرے کو سپورٹ نہیں کرتا ہے تو خود بخود پہلے ورژن پر واپس آجاتا ہے۔
  • "-show-scope" آپشن کو "git config" کمانڈ میں شامل کر دیا گیا ہے، جس سے اس جگہ کی شناخت کرنا آسان ہو گیا ہے جہاں کچھ سیٹنگز کی وضاحت کی گئی ہے۔ گٹ آپ کو مختلف جگہوں پر سیٹنگز کی وضاحت کرنے کی اجازت دیتا ہے: ریپوزٹری میں (.git/info/config)، یوزر ڈائرکٹری میں (~/.gitconfig)، سسٹم وائیڈ کنفیگریشن فائل میں (/etc/gitconfig)، اور کمانڈ کے ذریعے لائن کے اختیارات اور ماحولیاتی متغیرات۔ "git config" پر عمل کرتے وقت یہ سمجھنا کافی مشکل ہے کہ مطلوبہ ترتیب کی بالکل وضاحت کہاں کی گئی ہے۔ اس مسئلے کو حل کرنے کے لیے، "-show-origin" آپشن دستیاب تھا، لیکن یہ صرف اس فائل کا راستہ دکھاتا ہے جس میں سیٹنگ کی وضاحت کی گئی ہے، جو کہ مفید ہے اگر آپ فائل میں ترمیم کرنا چاہتے ہیں، لیکن اگر آپ اس میں مدد نہیں کریں گے۔ آپشنز "--system"، "--global" یا "-local" کا استعمال کرتے ہوئے "git config" کے ذریعے قدر کو تبدیل کرنے کی ضرورت ہے۔ نیا آپشن "-show-scope" متغیر تعریفی سیاق و سباق کو ظاہر کرتا ہے اور اسے -show-origin کے ساتھ مل کر استعمال کیا جا سکتا ہے:

    $ git --list --show-scope --show-origin
    عالمی فائل:/home/user/.gitconfig diff.interhunkcontext=1
    عالمی فائل:/home/user/.gitconfig push.default=current
    مقامی فائل:.git/config branch.master.remote=origin
    مقامی فائل:.git/config branch.master.merge=refs/heads/master

    $ git config --show-scope --get-regexp 'diff.*'
    عالمی diff.statgraphwidth 35
    مقامی diff.colormoved سادہ

    $ git config --global --unset diff.statgraphwidth

  • بائنڈنگ سیٹنگز میں اسناد یو آر ایل میں ماسک کے استعمال کی اجازت ہے۔ گٹ میں کسی بھی HTTP ترتیبات اور اسناد کو تمام کنکشنز (http.extraHeader، credential.helper) اور یو آر ایل پر مبنی کنکشنز (credential.https://example.com.helper، credential.https://example) دونوں کے لیے سیٹ کیا جا سکتا ہے۔ com.helper)۔ اب تک، وائلڈ کارڈز جیسے *.example.com کو صرف HTTP سیٹنگز کے لیے اجازت دی گئی تھی، لیکن کریڈینشل بائنڈنگ کے لیے معاون نہیں تھے۔ Git 2.26 میں، ان اختلافات کو ختم کر دیا گیا ہے اور، مثال کے طور پر، تمام ذیلی ڈومینز کے لیے صارف نام کو باندھنے کے لیے آپ اب وضاحت کر سکتے ہیں:

    [تصدیق "https://*.example.com"]

    صارف نام = ttaylorr

  • جزوی کلوننگ (جزوی کلون) کے لیے تجرباتی تعاون کی توسیع جاری ہے، جس سے آپ ڈیٹا کا صرف ایک حصہ منتقل کر سکتے ہیں اور ذخیرہ کی نامکمل کاپی کے ساتھ کام کر سکتے ہیں۔ نئی ریلیز میں ایک نئی کمانڈ "git sparse-checkout add" شامل کی گئی ہے، جو آپ کو "git" کمانڈ کے ذریعے ایسی تمام ڈائریکٹریوں کو ایک ساتھ درج کرنے کے بجائے، ورکنگ ٹری کے صرف ایک حصے پر "چیک آؤٹ" آپریشن کو لاگو کرنے کے لیے انفرادی ڈائریکٹریز کو شامل کرنے کی اجازت دیتی ہے۔ sparse-checkout set" (آپ ہر بار پوری فہرست کی دوبارہ وضاحت کیے بغیر، ایک ایک کرکے ڈائرکٹری شامل کر سکتے ہیں)۔
    مثال کے طور پر، بلابز کیے بغیر گٹ/گٹ ریپوزٹری کو کلون کرنے کے لیے، چیک آؤٹ کو صرف ورکنگ کاپی کی روٹ ڈائرکٹری تک محدود کرنا، اور "t" اور "دستاویزات" ڈائریکٹریز کے لیے الگ سے چیک آؤٹ کو نشان زد کرنا، آپ وضاحت کر سکتے ہیں:

    $ git clone --filter=blob: none --sparse [ای میل محفوظ]:git/git.git

    $cd گٹ
    $ git sparse-checkout init --cone

    $git sparse-checkout add t
    ....
    $ git sparse-checkout دستاویزات شامل کریں۔
    ....
    $ git sparse-checkout list
    دستاویزی
    t

  • "گٹ گریپ" کمانڈ کی کارکردگی، جو کہ ریپوزٹری کے موجودہ مواد اور تاریخی ترمیم دونوں کو تلاش کرنے کے لیے استعمال ہوتی ہے، نمایاں طور پر بہتر کی گئی ہے۔ تلاش کو تیز کرنے کے لیے، ایک سے زیادہ تھریڈز ("git grep -threads") کا استعمال کرتے ہوئے ورکنگ ٹری کے مواد کو اسکین کرنا ممکن تھا، لیکن تاریخی نظرثانی میں تلاش سنگل تھریڈڈ تھی۔ اب اس حد کو آبجیکٹ اسٹوریج سے پڑھنے کے عمل کو متوازی کرنے کی صلاحیت کو نافذ کرکے ہٹا دیا گیا ہے۔ پہلے سے طے شدہ طور پر، دھاگوں کی تعداد CPU کور کی تعداد کے برابر مقرر کی جاتی ہے، جس کے لیے اب زیادہ تر صورتوں میں "-threads" کے اختیار کو واضح طور پر ترتیب دینے کی ضرورت نہیں ہے۔
  • ذیلی کمانڈز، راستوں، لنکس اور "گٹ ورک ٹری" کمانڈ کے دیگر دلائل کے ان پٹ کی خودکار تکمیل کے لیے معاونت شامل کی گئی، جو آپ کو ریپوزٹری کی کئی ورکنگ کاپیوں کے ساتھ کام کرنے کی اجازت دیتی ہے۔
  • روشن رنگوں کے لیے شامل کیا گیا سپورٹ جن میں ANSI فرار کی ترتیب ہے۔ مثال کے طور پر، ہائی لائٹ رنگوں کی سیٹنگز میں "git config -color" یا "git diff -color-moved" آپ روشن نیلے رنگ کے لیے "--format" آپشن کے ذریعے "%C(brightblue)" کی وضاحت کر سکتے ہیں۔
  • سکرپٹ کا نیا ورژن شامل کیا گیا۔ fsmonitor- چوکیدار، میکانزم کے ساتھ انضمام فراہم کرنا فیس بک چوکیدار فائل کی تبدیلیوں اور نئی فائلوں کی ظاہری شکل کو تیز کرنے کے لیے۔ گٹ کو اپ ڈیٹ کرنے کے بعد ضروری ہے۔ تبدیل کریں ذخیرہ میں ہک.
  • بٹ میپس کا استعمال کرتے وقت جزوی کلون کو تیز کرنے کے لیے اصلاح شامل کی گئی۔
    (بٹ میپ مشینری) آؤٹ پٹ کو فلٹر کرتے وقت تمام اشیاء کی مکمل تلاش سے بچنے کے لیے۔ جزوی کلوننگ کے دوران بلابس (—filter=blob:none اور —filter=blob:limit=n) کی جانچ کرنا اب انجام دیا جاتا ہے۔
    نمایاں طور پر تیزی سے. GitHub نے ان اصلاحوں اور جزوی کلوننگ کے لیے تجرباتی تعاون کے ساتھ پیچ کا اعلان کیا۔

  • "git rebase" کمانڈ کو 'patch+apply' کی بجائے ڈیفالٹ 'merge' میکانزم (پہلے "rebase -i" کے لیے استعمال کیا جاتا تھا) کا استعمال کرتے ہوئے، ایک مختلف بیک اینڈ پر منتقل کر دیا گیا ہے۔ بیک اینڈ کچھ چھوٹے طریقوں سے مختلف ہوتے ہیں، مثال کے طور پر، تنازعہ کو حل کرنے کے بعد آپریشن جاری رکھنے کے بعد (git rebase --continue)، نیا بیک اینڈ کمٹ میسج میں ترمیم کرنے کی پیشکش کرتا ہے، جبکہ پرانا صرف پرانے میسج کو استعمال کرتا ہے۔ پرانے رویے پر واپس جانے کے لیے، آپ "--apply" آپشن استعمال کر سکتے ہیں یا 'rebase.backend' کنفیگریشن متغیر کو 'apply' پر سیٹ کر سکتے ہیں۔
  • .netrc کے ذریعے بیان کردہ توثیق کے پیرامیٹرز کے لیے ایک ہینڈلر کی مثال کو باکس سے باہر استعمال کرنے کے لیے موزوں شکل میں کم کر دیا گیا ہے۔
  • ڈیجیٹل دستخط کی توثیق کرنے والے مختلف عناصر کے لیے کم از کم اعتماد کی سطح سیٹ کرنے کے لیے gpg.minTrustLevel ترتیب شامل کی گئی۔
  • "-pathspec-from-file" آپشن کو "git rm" اور "git stash" میں شامل کیا گیا۔
  • ٹیسٹ سویٹس کی بہتری SHA-2 کی بجائے SHA-1 ہیشنگ الگورتھم میں منتقلی کی تیاری میں جاری رہی۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں