مواد پر جائیں

PR کا ریویو اور مرج کریں

یہ گائیڈ دکھاتی ہے کہ کسی pull request کا ریویو کیسے کریں اور اسے کیسے مرج کریں۔

  1. سائیڈبار میں Pull requests پر جائیں
  2. فہرست سے کوئی PR منتخب کریں

کوئی PR ایک واحد صفحے کے بجائے ٹیبز والے ورک بینچ کی صورت میں کھلتا ہے۔ بطورِ ڈیفالٹ پانچ ٹیبز اِسی ترتیب سے کھلتے ہیں: جائزہ، Diff، سورس کنٹرول، چیٹ اور ایکشنز (CI چیکس ورک فلو کے لحاظ سے گروپ کیے گئے)۔ ریویو — ریویو پائپ لائن کی پیش رفت، اور پھر وہ آرٹی فیکٹ جو اُس نے اپنے نتائج کی ریل کے ساتھ شائع کیا — جان بوجھ کر اُن میں شامل نہیں ہے: کسی PR کا کوئی ریویو اُس وقت تک نہیں ہوتا جب تک کوئی اُس کی درخواست نہ کرے، چنانچہ اُسے AI سے پوچھیں کھولتا ہے۔ ایک ٹرمنل، ایک واحد فائل کا ایڈیٹر، ایک ایمبیڈڈ code-server اور ایک اِن ایپ براؤزر طلب پر کھلتے ہیں؛ جب PR پر کوئی پیش نظارہ URL پکڑا جائے تو ڈیپلائمنٹ-پیش نظارہ ٹیبز خود بخود داخل کر دیے جاتے ہیں۔ آپ کے ٹیبز کی ترتیب ہر PR کے لیے یاد رکھی جاتی ہے۔

جائزہ ٹیب PR کا میٹا ڈیٹا (مصنف، برانچ، لیبلز، تفویض شدہ افراد، ری ایکشنز، کمیٹس، چیک اسٹیٹس) اور ایکشن قطار رکھتا ہے: ریفریش، ریویو، مرج، IDE میں کھولیں اور ایک ⋯ اوور فلو مینو۔

پورا PR ڈف ایک ہی بار دیکھنے کے لیے Diff ٹیب کھولیں؛ ساتھ میں فائلوں کے درمیان کودنے کے لیے ایک فائل ٹری بھی ہوتا ہے۔

  • ڈف ٹول بار میں سیٹنگز کا بٹن تقسیم (ساتھ ساتھ) اور یکجا ویو کے درمیان بدلتا ہے اور لائن ریپنگ نیز کوڈ فونٹ لیگیچرز کو ٹوگل کرتا ہے۔
  • @@ ہنک ہیڈرز کی جگہ N سطریں دکھائیں / فائل کا اختتام دکھائیں والی سہولیات لے لیتی ہیں، جو کلک پر ارد گرد کا کانٹیکسٹ شامل کر دیتی ہیں۔
  • فائلوں کے درمیان چلنے کے لیے j / k دبائیں، زیرِ توجہ فائل کو سمیٹنے یا پھیلانے کے لیے c، سائیڈبار کو فائل ٹری پر واپس لانے کے لیے t اور پورے ڈف میں تلاش کے لیے ⌘F (Enter / Shift+Enter میچز پر چلتے ہیں)۔
  • زیرِ توجہ فائل کو دیکھی گئی کے طور پر نشان زد کرنے کے لیے v دبائیں، اور کرسر اگلی فائل پر آگے بڑھ جاتا ہے۔ GitHub پر دیکھی گئی کی حالت forge پر محفوظ ہوتی ہے، چنانچہ وہ کلائنٹس کے درمیان آپ کے ساتھ چلتی ہے؛ GitLab اور Bitbucket میں ایسی کوئی API نہیں، اس لیے وہاں یہ صرف اِسی ڈیوائس پر یاد رکھی جاتی ہے۔

کوڈ کے علاقے میں ماؤس سے ڈریگ کرنا متن کو بالکل درست کالم تک منتخب کرتا ہے اور ⌘C رینڈر شدہ ڈف مارکرز کے بجائے خام سورس کاپی کرتا ہے۔

  1. اُس لائن پر اینکر شدہ کمپوزر کھولنے کے لیے کوڈ کی کسی قطار کے گٹر پر ٹیپ کریں، یا فائل کی سطح کے تبصرے کے لیے فائل ہیڈر پر + بٹن استعمال کریں
  2. اپنا فیڈبیک Markdown میں لکھیں
  3. جمع کرائیں

GitHub اور GitLab پر کمپوزر دو جمع کرانے کے راستے دیتا ہے: اکیلا تبصرہ شامل کریں فوراً پوسٹ کر دیتا ہے، اور ریویو شروع کریں / ریویو میں شامل کریں تبصرے کو ایک زیرِ التوا ریویو میں قطار میں لگاتا ہے جو منظور کریں، تبدیلیاں مانگیں یا تبصرہ کے ساتھ جاتا ہے۔ Bitbucket میں زیرِ التوا ریویو کی بیچنگ نہیں، چنانچہ وہاں ہر جمع کرانا فوراً پوسٹ ہو جاتا ہے۔ فوری پوسٹ ایک زیرِ التوا حالت دکھاتا ہے جب تک forge اُس کی تصدیق نہ کرے، پھر سنک شدہ پر پلٹ جاتا ہے۔ اگر پوسٹ ناکام ہو، تو تھریڈ کو اُس خرابی کے ساتھ نشان زد کر دیا جاتا ہے اور دوبارہ کوشش کی پیشکش کی جاتی ہے۔

صرف ریویو کا باڈی مسودہ ہوتا ہے: ٹائپ کرنا بند کرنے کے ایک لمحے بعد وہ سرور کی طرف (owner، repo، PR نمبر) کے خلاف محفوظ ہو جاتا ہے، چنانچہ ری لوڈ کے بعد بھی بچا رہتا ہے اور ڈیسک ٹاپ اور ویب کلائنٹس کے درمیان آپ کے ساتھ چلتا ہے۔

  1. جائزہ کی ایکشن قطار میں ریویو دبائیں (یہ آپ کے اپنے PRs اور کسی بند یا مرج شدہ PR پر چھپا رہتا ہے)
  2. ریویو کا باڈی لکھیں۔ آپ کوئی تصویر منسلک کر سکتے ہیں، ایموجی یا GIF داخل کر سکتے ہیں اور لکھنے اور پیش نظارہ کے درمیان ٹوگل کر سکتے ہیں
  3. تبدیلیاں مانگیں، تبصرہ یا منظور کریں دبائیں

فیصلہ خود بٹن ہے — کوئی الگ فیصلہ چننے والا نہیں ہوتا۔ منظور کریں یا تبدیلیاں مانگیں کے بعد بٹن اپنا لیبل بدل کر منظور یا مانگی گئی تبدیلیاں کر لیتا ہے اور مسودہ باڈی صاف کر دی جاتی ہے۔ تبصرہ کا فیصلہ بٹن پر ریویو کا لیبل برقرار رکھتا ہے۔

مرج بٹن اُس وقت ظاہر ہوتا ہے جب آپ کو لکھنے کی رسائی ہو اور PR کھلا ہو اور مسودہ نہ ہو۔ اُس کا رنگ مطلوبہ منظوریوں اور چیک کی حالت (تیار / زیرِ التوا / بلاک شدہ) سے اخذ کردہ تیاری کا اشارہ ہے — یہ محض مشورے کے لیے ہے۔ بٹن کو ریویو کی حالت کبھی غیر فعال نہیں کرتی؛ forge کا اپنا برانچ پروٹیکشن ہی قواعد نافذ کرتا ہے۔

  1. مرج فلائی آؤٹ کھولنے کے لیے مرج دبائیں
  2. مرج کا طریقہ چنیں: اسکوئش، مرج کمیٹ یا ری بیس (اسکوئش ڈیفالٹ ہے)۔ Bitbucket میں حقیقی ری بیس مرج نہیں ہوتا، چنانچہ وہاں ری بیس اپنی فاسٹ فارورڈ حکمتِ عملی پر میپ ہوتا ہے اور ڈائیورج ہو چکی برانچ پر ناکام ہو جاتا ہے
  3. اسکوئش اور مرج کمیٹ کے لیے، پہلے سے بھرے کمیٹ عنوان اور کمیٹ تفصیل میں ترمیم کریں۔ ری بیس اِن دونوں میں سے کوئی چیز نہیں لیتا اور دونوں فیلڈز چھپا دیتا ہے
  4. انتباہات کا پینل پڑھیں — یہ ناکام ہونے والے چیکس اور زیرِ التوا ریویوز کے نام بتاتا ہے، مگر آپ کو روکتا نہیں
  5. تصدیق کے لیے فلائی آؤٹ میں مرج بٹن دبائیں

مرج کرنا ناقابلِ واپسی ہے: یہ forge پر کمیٹس پش کرتا ہے، اس لیے اُسے undo اندراج کے بجائے ایک تصدیقی قدم ملتا ہے۔ بعد ازاں PR کا کیشے غیر معتبر کر دیا جاتا ہے، اُس کی حالت مرج شدہ پر پلٹ جاتی ہے اور merged اسٹیٹس کے ساتھ ایک PullRequestStatusChanged ایونٹ چلتا ہے۔ یہ ایونٹ عارضی “ایڈیٹر میں کھولیں” ورک ٹری جاری کرتا ہے اور دو پہلے سے فراہم کردہ پائپ لائنیں شروع کرتا ہے: Stale repository cleanup، جو PR کے باسی ورک ٹریز اور گفتگو فولڈرز ہٹاتی ہے، اور Release notes، جو چینج لاگ کا ایک اندراج تیار کرتی ہے۔

جائزہ ٹیب کا ⋯ اوور فلو مینو AI سے پوچھیں رکھتا ہے، جو اِس PR کے لیے پہلے سے فراہم کردہ pr_review پائپ لائن شروع کرتا ہے۔ یہ صرف اُس وقت ظاہر ہوتا ہے جب PR کھلا ہو۔ پائپ لائن کیا کرتی ہے اور اُس کے نتائج کیسے شائع کیے جائیں، یہ AI سے چلنے والا ریویو استعمال کریں میں دیکھیں، اور ڈیٹرمنسٹک کوہارٹ اور محور ماڈل کے لیے ریویو کمپیوٹ دیکھیں۔

Control Center ایپ سے باہر انسانوں کے کھولے گئے PRs بھی امپورٹ کرتا ہے۔ اوپر دیا گیا ریویو کا بہاؤ بالکل ویسا ہی ہے۔ بیرونی PRs کو PR پولنگ سروس پکڑتی ہے۔