فیس بک نے نئے سورس کنٹرول سسٹم سیپلنگ کی نقاب کشائی کی۔

فیس بک (روس میں ممنوع) نے سیپلنگ شائع کیا ہے، جو اندرونی پروجیکٹ کی ترقی کے لیے استعمال ہونے والا سورس کنٹرول سسٹم ہے۔ سسٹم کا مقصد ایک مانوس ورژن کنٹرول انٹرفیس فراہم کرنا ہے جو دسیوں لاکھوں فائلوں، کمٹ اور برانچوں پر پھیلے ہوئے بہت بڑے ذخیروں تک پھیل سکتا ہے۔ کلائنٹ کوڈ Python اور Rust میں لکھا گیا ہے اور GPLv2 لائسنس کے تحت اوپن سورس ہے۔

ریپوزٹری کے ساتھ موثر ریموٹ کام کے لیے ایک الگ سرور کا جزو تیار کیا گیا ہے اور ایک ریپوزٹری کے مقامی سلائس کے ساتھ کام کرنے کے لیے ایک ورچوئل فائل سسٹم تیار کیا گیا ہے گویا یہ ایک مکمل ریپوزٹری ہے (ڈیولپر پوری ریپوزٹری کو دیکھتا ہے، لیکن صرف مطلوبہ ڈیٹا کو مقامی سسٹم میں کاپی کیا جاتا ہے)۔ فیس بک کے انفراسٹرکچر میں استعمال ہونے والے ان اجزاء کا کوڈ ابھی تک اوپن سورس نہیں ہے تاہم کمپنی نے اسے مستقبل میں شائع کرنے کا وعدہ کیا ہے۔ تاہم، پروٹوٹائپ پہلے ہی سیپلنگ ریپوزٹری میں پایا جا سکتا ہے۔ سرور Mononoke (Rust میں لکھا گیا) اور VFS EdenFS (C++ میں لکھا گیا)۔ یہ اجزاء اختیاری ہیں، اور سیپلنگ کلائنٹ، جو گٹ ریپوزٹریوں کو کلون کرنے اور ان کے ساتھ بات چیت کرنے کی حمایت کرتا ہے۔ سرورز Git LFS پر مبنی اور گٹ ہوسٹنگ سروسز جیسے GitHub کے ساتھ کام کرنا۔

سسٹم کے پیچھے بنیادی خیال یہ ہے کہ جب ایک سرشار سرور کے ساتھ بات چیت کرتے ہیں جو ریپوزٹری کو اسٹور کرتا ہے، تمام آپریشنز اسکیل فائلوں کی تعداد کی بنیاد پر جو اصل میں کوڈ میں استعمال کیا جاتا ہے جس پر ڈویلپر کام کر رہا ہے، پوری ریپوزٹری کے مجموعی سائز سے آزاد۔ مثال کے طور پر، ایک ڈویلپر ایک بہت بڑے ریپوزٹری سے کوڈ کا صرف ایک چھوٹا سا حصہ استعمال کر سکتا ہے، اور پورے ریپوزٹری کے بجائے صرف یہ چھوٹا حصہ ان کے سسٹم میں منتقل ہو جائے گا۔ ورکنگ ڈائرکٹری متحرک طور پر آباد ہوتی ہے کیونکہ فائلوں کو ریپوزٹری سے حاصل کیا جاتا ہے۔ یہ، جب کہ ڈیولپر کے کوڈ کے ساتھ کام کو نمایاں طور پر تیز کرتا ہے، نئی فائلوں تک پہلی بار رسائی کرتے وقت بھی سست روی کا باعث بنتا ہے اور اسے مسلسل نیٹ ورک تک رسائی کی ضرورت ہوتی ہے (ایک آف لائن کمٹ موڈ بھی فراہم کیا جاتا ہے)۔

انکولی ڈیٹا لوڈنگ کے علاوہ، سیپلنگ ایسی اصلاح کو بھی لاگو کرتا ہے جس کا مقصد تبدیلی کی تاریخ کے ساتھ معلومات کی لوڈنگ کو کم کرنا ہے (مثال کے طور پر، کور کے ساتھ ریپوزٹری میں ڈیٹا کا 3/4 حصہ Linux (یہ تبدیلی کی تاریخ سے مراد ہے)۔ تبدیلی کی سرگزشت کے ساتھ مؤثر طریقے سے کام کرنے کے لیے، متعلقہ ڈیٹا کو ایک منقسم نمائندگی میں محفوظ کیا جاتا ہے، جس سے کمٹ گراف کے انفرادی حصوں کو سرور سے ڈاؤن لوڈ کیا جا سکتا ہے۔ کلائنٹ سرور سے متعدد کمٹ کے درمیان تعلقات کے بارے میں معلومات کی درخواست کرسکتا ہے اور گراف کا صرف مطلوبہ حصہ ڈاؤن لوڈ کرسکتا ہے۔

یہ پروجیکٹ پچھلے 10 سالوں سے تیار ہو رہا ہے اور اسے ایک ہی ماسٹر برانچ کے ساتھ بہت بڑے یک سنگی ذخیروں تک رسائی کو منظم کرنے کے چیلنجوں سے نمٹنے کے لیے بنایا گیا تھا، جو عام طور پر "ضم" کے بجائے "ری بیس" پر انحصار کرتی تھی۔ اس وقت، اس طرح کے ذخیروں کے ساتھ کام کرنے کے لیے اوپن سورس حل کی کمی تھی، اور فیس بک کے انجینئرز نے ایک نیا ورژن کنٹرول سسٹم بنانے کا فیصلہ کیا جو کمپنی کی ضروریات کو پورا کرے گا بجائے اس کے کہ پروجیکٹوں کو چھوٹے ذخیروں میں تقسیم کرے، جس سے انحصار کا انتظام پیچیدہ ہوگا (مائیکروسافٹ نے پہلے بھی اسی طرح کے مسئلے کو حل کرنے کے لیے GVFS پرت بنائی تھی)۔ ابتدائی طور پر، فیس بک نے مرکیوریل کا استعمال کیا، اور سیپلنگ پروجیکٹ کو ابتدائی طور پر مرکیوریل کی تکمیل کے طور پر تیار کیا گیا۔ وقت گزرنے کے ساتھ، یہ نظام اپنے پروٹوکول، سٹوریج فارمیٹ، اور الگورتھم کے ساتھ ایک آزاد پروجیکٹ میں تیار ہوا، جسے Git کے ذخیروں کے ساتھ تعامل کی حمایت کے لیے بھی بڑھایا گیا۔

"sl" کمانڈ لائن یوٹیلیٹی کام کے لیے فراہم کی جاتی ہے، عام تصورات، ورک فلو، اور گٹ اور مرکیوریل سے واقف ڈویلپرز کے لیے ایک انٹرفیس کو نافذ کرنا۔ سیپلنگ میں اصطلاحات اور احکام گٹ سے قدرے مختلف ہیں اور مرکریئل کے قریب ہیں۔ مثال کے طور پر، شاخوں کے بجائے "بُک مارکس" استعمال کیے جاتے ہیں (نام کی شاخیں تعاون یافتہ نہیں ہیں)؛ پہلے سے طے شدہ طور پر، کلون/پل پر عمل کرتے وقت، صرف مین برانچ کو ڈاؤن لوڈ کیا جاتا ہے، پوری ریپوزٹری کو نہیں؛ کمٹ کی کوئی پری مارکنگ نہیں ہے (اسٹیجنگ ایریا)؛ کمانڈ "git fetch" کے بجائے "sl pull --rebase"، "git pull" کے بجائے "sl goto COMMIT"، "git checkout COMMIT" کے بجائے "sl goto COMMIT"، "git reflog" کی بجائے "sl journal"، "sl revert FILE" کا استعمال تبدیلی کو واپس کرنے کے لیے کیا جاتا ہے، اور "HEAD" استعمال کیا جاتا ہے۔ لیکن مجموعی طور پر، شاخوں اور کلون/پل/پش/کمیٹ/ریبیس آپریشنز کے عمومی تصورات ایک جیسے ہی رہتے ہیں۔

سیپلنگ ٹول کٹ کی اضافی خصوصیات میں سے، سمارٹ لاگ سپورٹ نمایاں ہے۔ یہ آپ کو اپنے ذخیرے کی حالت کا بصری طور پر جائزہ لینے، انتہائی اہم معلومات کو نمایاں کرنے اور غیر متعلقہ تفصیلات کو فلٹر کرنے کی اجازت دیتا ہے۔ مثال کے طور پر، جب بغیر دلیل کے sl یوٹیلیٹی چلاتے ہیں، تو صرف آپ کی اپنی مقامی تبدیلیاں ظاہر ہوتی ہیں (دیگر تبدیلیاں منہدم ہو جاتی ہیں)، اور بیرونی شاخوں، ترمیم شدہ فائلوں اور نئے کمٹ ورژنز کی حیثیت دکھائی جاتی ہے۔ ایک انٹرایکٹو ویب انٹرفیس بھی دستیاب ہے، جس سے آپ سمارٹ لاگ پر تیزی سے تشریف لے جا سکتے ہیں، درخت کو تبدیل کر سکتے ہیں اور کمٹ کر سکتے ہیں۔

فیس بک نے نئے سورس کنٹرول سسٹم سیپلنگ کی نقاب کشائی کی۔

سیپلنگ میں ایک اور قابل ذکر بہتری غلطیوں کو ٹھیک کرنے اور ان کا جائزہ لینے کے ساتھ ساتھ پچھلی حالتوں پر واپس جانا ہے۔ مثال کے طور پر، "sl undo" "sl redo," "sl uncommit" اور "sl unamend" کمانڈز بہت سے آپریشنز کو کالعدم کرنے کے لیے دستیاب ہیں۔ "sl hide" اور "sl unhide" عارضی طور پر چھپانے کے وعدوں کے لیے دستیاب ہیں۔ اور "sl undo -i کمانڈ" ماضی کی حالتوں کو انٹرایکٹو نیویگیٹ کرنے اور ایک مخصوص نقطہ پر واپس جانے کے لیے دستیاب ہے۔ سیپلنگ ایک کمٹ اسٹیک کے تصور کی بھی حمایت کرتا ہے، جو پیچیدہ فعالیت کو چھوٹی، زیادہ قابل انتظام اضافی تبدیلیوں (بنیادی کنکال سے لے کر مکمل خصوصیت تک) کے سیٹ میں توڑ کر مرحلہ وار جائزہ لینے کی اجازت دیتا ہے۔

سیپلنگ کے لیے کئی ایڈ آنز تیار کیے گئے ہیں، بشمول ReviewStack چینج ریویو انٹرفیس (GPLv2 کے تحت کوڈ)، جو GitHub پر پل کی درخواستوں کو ہینڈل کرنے اور تبدیلیوں کے اسٹیک پر مبنی منظر کا استعمال کرنے کے قابل بناتا ہے۔ VSCode اور TextMate ایڈیٹرز کے ساتھ انضمام کے لیے ایڈ آنز بھی شائع کیے گئے ہیں، نیز ISL (انٹرایکٹو اسمارٹ لاگ) انٹرفیس اور سرور کا نفاذ بھی۔

ماخذ: opennet.ru

DDoS تحفظ، VPS VDS سرورز والی سائٹوں کے لیے قابل اعتماد ہوسٹنگ خریدیں۔ DDoS تحفظ، VPS VDS سرورز کے ساتھ قابل اعتماد ویب سائٹ ہوسٹنگ خریدیں۔ ProHoster