Source Code Control System
سورس کوڈ کنٹرول سسٹم (ایس سی سی ایس) ایک ورژن کنٹرول سسٹم ہے جو سافٹ ویئر کے ایک ٹکڑے کی ترقی کے دوران سورس کوڈ اور دیگر ٹیکسٹ فائلوں میں ہونے والی تبدیلیوں کو ٹریک کرنے کے لیے ڈیزائن کیا گیا ہے۔ یہ صارف کو اصل سورس کوڈ کے پچھلے ورژن اور ذخیرہ شدہ تبدیلیوں کو بازیافت کرنے کی اجازت دیتا ہے۔ یہ اصل میں بیل لیبز میں تیار کیا گیا تھا جس کا آغاز 1972 کے آخر میں مارک روچکینڈ نے او ایس/360 پر چلنے والے آئی بی ایم سسٹم/370 کمپیوٹر کے لیے کیا تھا۔ ایس سی سی ایس کی ایک خاص خصوصیت ایس سی سی ایس آئی ڈی سٹرنگ ہے جو سورس کوڈ میں سرایت کی گئی ہے، اور ہر ترمیم کے لیے ایس سی سی ایس کے ذریعے خود بخود اپ ڈیٹ ہو جاتی ہے۔ یہ مثال سی پروگرامنگ زبان میں اس کے استعمال کی وضاحت کرتی ہے: جامد چار ایس سی سی ایس آئی ڈی [] = "@(#) ls. c. 8.1 (برکلے) 6/11/93" ؛ اس سٹرنگ میں فائل کا نام، تاریخ، اور ایک تبصرہ بھی ہو سکتا ہے۔ تالیف کے بعد، سٹرنگ کو بائنری اور آبجیکٹ فائلوں میں پیٹرن @(#) تلاش کر کے پایا جا سکتا ہے اور اس بات کا تعین کرنے کے لیے استعمال کیا جا سکتا ہے کہ تالیف کے دوران کون سی سورس کوڈ فائلیں استعمال کی گئیں۔ ورژن سٹرنگز کے لیے اس تلاش کو خودکار بنانے کے لیے کیا کمانڈ دستیاب ہے۔ 1972 میں مارک روچکینڈ نے بیل لیبز میں ایس این او بی او ایل 4 میں ایس سی سی ایس تیار کیا جو کہ او ایس/360 ایم وی ٹی پر چلنے والے آئی بی ایم سسٹم/370 کمپیوٹر کے لیے تھا۔ انہوں نے یونیکس کے تحت استعمال کے لیے سی پروگرامنگ زبان میں ایس سی سی ایس کو دوبارہ لکھا، پھر 1973 میں پی ڈی پی-11 پر چل رہا تھا۔ پہلا عوامی طور پر جاری کردہ ورژن 18 فروری 1977 سے ایس سی سی ایس ورژن 4 تھا۔ یہ آپریٹنگ سسٹم کے پروگرامرز ورک بینچ (پی ڈبلیو بی) ایڈیشن کے ساتھ دستیاب تھا۔ ایس سی سی ایس کا ریلیز 4 پہلا ورژن تھا جس میں ٹیکسٹ پر مبنی ہسٹری فائل فارمیٹ استعمال کیا گیا تھا، اس سے پہلے کے ورژن میں بائنری ہسٹری فائل فارمیٹس استعمال کیے گئے تھے۔ ریلیز 4 کو اب مارک روچکینڈ نے لکھا یا برقرار نہیں رکھا تھا۔ اس کے بعد، ایس سی سی ایس کو اے ٹی اینڈ ٹی کے کمرشل سسٹم III اور سسٹم V کی تقسیم میں شامل کیا گیا۔ یہ بی ایس ڈی کے آباؤ اجداد 32 وی کے ساتھ لائسنس یافتہ نہیں تھا۔ ایس سی سی ایس کمانڈ سیٹ اب سنگل یونکس اسپیسیفیکیشن کا حصہ ہے۔ ایس سی سی ایس یونکس کے لیے غالب ورژن کنٹرول سسٹم تھا یہاں تک کہ بعد کے ورژن کنٹرول سسٹم، خاص طور پر آر سی ایس اور بعد میں سی وی ایس نے زیادہ وسیع پیمانے پر اپنایا۔ آج، ان ابتدائی ورژن کنٹرول سسٹم کو عام طور پر متروک سمجھا جاتا ہے، خاص طور پر اوپن سورس کمیونٹی میں، جس نے بڑے پیمانے پر تقسیم شدہ ورژن کنٹرول سسٹم کو قبول کیا ہے۔ تاہم، ایس سی سی ایس فائل فارمیٹ اب بھی بٹ کیپر اور ٹیم ویئر سمیت چند نئے ورژن کنٹرول پروگراموں کے ذریعے اندرونی طور پر استعمال ہوتا ہے۔ مؤخر الذکر ایس سی سی ایس کا فرنٹ اینڈ ہے۔ سبلیم کو ایس سی سی ایس کے ترمیم شدہ ورژن سے تیار کیا گیا ہے لیکن اس میں ہسٹری فائل فارمیٹ کا استعمال کیا گیا ہے جو ایس سی سی ایس سے مطابقت نہیں رکھتا ہے۔ ایس سی سی ایس فائل فارمیٹ ایک اسٹوریج تکنیک کا استعمال کرتا ہے جسے انٹرلییوڈ ڈیلٹاس (یا ویو) کہا جاتا ہے۔ اس اسٹوریج تکنیک کو اب بہت سے ورژن کنٹرول سسٹم ڈویلپرز کے ذریعہ جدید انضمام اور ورژننگ تکنیکوں کے لیے بنیادی سمجھا جاتا ہے، جیسے کہ "پریسیز کوڈ ویل" ("پی سی ڈی وی") انضمام۔ 1999 میں سال 2000 کے مسائل کو درست کرنے کے علاوہ، مختلف یونیکس وینڈر مخصوص ایس سی سی ایس ورژن پر کوئی فعال ترقی نہیں ہوئی ہے۔ 2006 میں، سن مائیکرو سسٹمز (آج اوریکل کا حصہ) نے اوپن سورس سولارس کی کوششوں کے ایک حصے کے طور پر سی ڈی ڈی ایل لائسنس کے تحت اوپن سورس کے طور پر ایس سی سی ایس کے اپنے سولارس ورژن کو جاری کیا۔ پس منظر سورس کوڈ کنٹرول سسٹم (ایس سی سی ایس) فائل اور تاریخ کی تبدیلیوں کو کنٹرول کرنے کے لیے ایک نظام ہے۔ سافٹ ویئر کو عام طور پر کیڑوں کو ٹھیک کرکے، الگورتھم کو بہتر بنا کر اور اضافی افعال کو شامل کرکے نئے ورژن میں اپ گریڈ کیا جاتا ہے۔ سافٹ ویئر کو تبدیل کرنا ان مسائل کا سبب بنتا ہے جنہیں حل کرنے کے لیے ورژن کنٹرول کی ضرورت ہوتی ہے۔ سورس کوڈ بہت زیادہ جگہ لیتا ہے کیونکہ اسے ہر ورژن میں دہرایا جاتا ہے۔ تبدیلیاں کب اور کہاں ہوئیں اس کے بارے میں معلومات حاصل کرنا مشکل ہے۔ صحیح ورژن تلاش کرنا جس میں کلائنٹ کو مسائل ہیں مشکل ہے۔ ان مسائل کو حل کرنے کے لیے ایس سی سی ایس بنایا گیا تھا۔ اے ٹی اینڈ ٹی کے ایس سی سی ایس کے آئی بی ایم او ایس کے لیے پانچ بڑے ورژن اور یونیکس کے لیے پانچ بڑے ورژن تھے۔ ایس سی سی ایس کا استعمال کرتے ہوئے دو مخصوص نفاذ ہیں: یونیکس کے تحت پی ڈی پی 11 اور او ایس کے تحت آئی بی ایم 370۔ ساخت ایس سی سی ایس دو حصوں پر مشتمل ہے: ایس سی سی ایس کمانڈز اور ایس سی سی ایس فائلیں۔ تمام بنیادی کارروائیوں (مثال کے طور پر تخلیق کریں، حذف کریں، ترمیم کریں) کو ایس سی سی ایس کمانڈز کے ذریعے حاصل کیا جا سکتا ہے۔ ایس سی سی ایس فائلوں میں ایک منفرد فارمیٹ پریفیکس ایس ہوتا ہے، جسے ایس سی سی ایس کمانڈز کے ذریعے کنٹرول کیا جاتا ہے۔ ایس سی سی ایس فائلیں ایک ایس سی سی ایس فائل تین حصوں پر مشتمل ہوتی ہے: ڈیلٹا ٹیبل تک رسائی اور ٹریکنگ فلیگ ایس سی سی ایس میں، ڈیلٹا ایس سی سی ایس فائل میں ایک واحد ترمیم ہے۔ ڈیلٹا کو ڈیلٹا ٹیبل میں محفوظ کیا جاتا ہے، اس لیے ہر ایس سی سی ایس فائل کا تبدیلیوں کا اپنا ریکارڈ ہوتا ہے۔ ایس سی سی ایس فائلوں میں جھنڈوں کو کنٹرول اور ٹریک کریں ہر ایس سی سی ایس فائل کے ہر عمل کو جھنڈوں کے ذریعے ٹریک کیا جاتا ہے۔ ان کے افعال درج ذیل ہیں: ہر ایس سی سی ایس فائل میں ترمیم کے لیے اجازتوں کو ترتیب دینا۔ ہر ایس سی سی ایس فائل کی ہر ریلیز کو کنٹرول کریں۔ ہر ایس سی سی ایس فائل میں باہمی تعاون سے ترمیم کی اجازت دینا۔ ہر ایس سی سی ایس فائل کی باہمی حوالہ تبدیلیاں۔ باڈی ایس سی سی ایس مختلف ڈیلٹا میں لگائے گئے اندراجات اور حذفیوں پر نظر رکھنے کے لیے تین قسم کے کنٹرول ریکارڈز کا استعمال کرتا ہے۔ وہ ہیں انسرشن کنٹرول ریکارڈ، ڈیلیشن کنٹرول ریکارڈ، اور اینڈ کنٹرول ریکارڈ۔ جب بھی کوئی صارف متن کے کچھ حصے کو تبدیل کرتا ہے، تو تبدیلی کے ارد گرد ایک کنٹرول ریکارڈ داخل کیا جاتا ہے۔ کنٹرول ریکارڈ اصل ٹیکسٹ ریکارڈ کے ساتھ جسم میں محفوظ کیے جاتے ہیں۔ ایس سی سی ایس بنیادی کمانڈ ایس سی سی ایس میکرو دعوتوں کی شکل میں کمانڈوں کا ایک مجموعہ فراہم کرتا ہے جو ایک سادہ نحو کے ساتھ سورس کوڈ مینجمنٹ افعال انجام دیتے ہیں یا شروع کرتے ہیں، جیسے تخلیق کریں، حاصل کریں، ترمیم کریں، پی آر ٹی۔ یہ زیر انتظام فائلوں کی نظر ثانی شدہ تاریخ تک رسائی بھی فراہم کرتا ہے۔ ان کمانڈوں کو ڈرائیور پروگرام ایس سی سی کے لیے آرگمینٹ فعل کے طور پر لاگو کیا جاتا ہے۔ تخلیق کریں ایس سی سی ایس کمانڈ تخلیق ایک نئی ہسٹری فائل بنانے کے لیے سورس فائل کے متن کا استعمال کرتی ہے۔ مثال کے طور پر: $sCCs بنائیں program.c program.c: 1.1 87 لائنیں آؤٹ پٹ نام، ورژن اور لائنیں ہیں۔ کمانڈ ایک میکرو ہے جو نئی ہسٹری فائل بنانے کے لیے ایڈمن تک پھیلتا ہے جس کے بعد فائل کو بازیافت کرنا ہوتا ہے۔ ترمیم کریں $scs ترمیم کریں program.c 1.1 نیا ڈیلٹا 1.2 87 لائنیں ایک مخصوص فائل میں ترمیم کریں۔ کمانڈ ایک میکرو ہے جو-e حاصل کرنے کے لیے توسیع کرتا ہے۔ ڈیلجٹ $sscs ڈیلجٹ program.c تبصرے؟ مین فنکشن میں اضافہ ہوا 1.2 10 داخل کیا گیا 0 حذف شدہ 87 غیر تبدیل شدہ 1.2 97 لائنیں نئے ورژن میں چیک کریں اور ایس سی سی سے نیا ورژن حاصل کریں۔ کمانڈ ایک میکرو ہے جو ڈیلٹا تک پھیلتا ہے تاکہ نئے ورژن کی فائل کو چیک کیا جا سکے اور اس کے بعد فائل کو دوبارہ حاصل کیا جا سکے۔ حاصل کریں $scs حاصل کریں program.c 1.1 87 لائنیں آؤٹ پٹ ورژن اور لائنیں ہیں جو آپ مخصوص فائل سے حاصل کرنا چاہتے ہیں۔ یہ کمانڈ سورس کوڈ کی تبدیلیوں کی رپورٹ تیار کرتی ہے۔ نفاذ یونکس ایس سی سی ایس ورژن زیادہ تر یونکس ورژن میں ایس سی سی ایس کا ایک ورژن شامل ہوتا ہے، تاہم، جو اکثر فعال طور پر تیار نہیں ہوتا ہے۔ جورگ شلنگ کا کانٹا دیر سے (جس نے اوپن سولارس پروجیکٹ کے ابتدائی دنوں میں ایس سی سی ایس کی رہائی کی درخواست کی تھی) نے ایس سی سی ایس کا ایک کانٹا برقرار رکھا جو اوپن سولارس سورس کوڈ پر مبنی ہے۔ اس میں بڑی خصوصیات میں اضافہ ہوا ہے لیکن یہ اصل ایس سی سی ایس ورژن کے ساتھ مطابقت رکھتا ہے جب تک کہ "نیا پروجیکٹ" موڈ استعمال نہ کیا جائے۔ ہیرلوم پروجیکٹ ہیرلوم پروجیکٹ میں اوپن سولارس سورس کوڈ سے ماخوذ ایس سی سی ایس کا ایک ورژن شامل ہے اور دسمبر 2006 اور اپریل 2007 کے درمیان برقرار رکھا گیا ہے۔ جی این یو کنورژن یوٹیلیٹی جی این یو ایس سی سی ایس کے مطابق پروگرام جی این یو سی ایس ایس سی ("مطابقت پذیر بے وقوف سورس کنٹرول") پیش کرتا ہے، جو کبھی کبھار ایس سی سی ایس آرکائیوز کو نئے سسٹمز جیسے سی وی ایس یا سب ورژن میں تبدیل کرنے کے لیے استعمال ہوتا ہے۔ یہ ایک مکمل ایس سی سی ایس نفاذ نہیں ہے اور نئے منصوبوں میں استعمال کے لیے تجویز نہیں کیا جاتا ہے، لیکن زیادہ تر جدید ورژن کنٹرول سسٹم میں تبدیل کرنے کے لیے ہوتا ہے۔ دیگر ورژن کنٹرول سسٹم 1990 کی دہائی سے، بہت سے نئے ورژن کنٹرول سسٹم تیار کیے گئے ہیں اور مقبول ہو گئے ہیں جو بڑی تعداد میں فائلوں کے ساتھ منصوبوں کے انتظام کے لیے ڈیزائن کیے گئے ہیں اور جو ملٹی یوزر آپریشن، رسائی کنٹرول، خودکار عمارت، نیٹ ورک سپورٹ، ریلیز مینجمنٹ اور تقسیم شدہ ورژن کنٹرول جیسی جدید فعالیت پیش کرتے ہیں۔ بٹ کیپر اور ٹیم ویئر اندرونی طور پر ایس سی سی ایس فائل فارمیٹ استعمال کرتے ہیں اور انہیں ایس سی سی ایس کا جانشین سمجھا جا سکتا ہے۔ بی ایس ڈی سسٹمز پر، ایس سی سی ایس آئی ڈی کو ایک آر سی ایس آئی ڈی سے تبدیل کیا جاتا ہے جس کے ساتھ شروع اور اختتام ہوتا ہے ؛ متعلقہ ٹول ہے۔ یہ نظام اصل میں آر سی ایس کے ذریعے استعمال کیا جاتا ہے اور چیک آؤٹ پر خود بخود شامل ہو جاتا ہے۔ نتیجے میں آنے والے سورس کوڈ پر نظر ثانی کنٹرول شناخت کاروں کو ان کے اپنے کوڈ اڈوں کے لیے نیٹ بی ایس ڈی اور فری بی ایس ڈی اسٹائل گائیڈز میں دستاویزی شکل دی گئی ہے۔ نیٹ بی ایس ڈی کسٹم مطلوبہ الفاظ کی وضاحت کرتا ہے جبکہ فری بی ایس ڈی وضاحت کرتا ہے اور میکرو کا نام تبدیل کر دیا جاتا ہے۔ ایس آر سی ورژن کنٹرول سسٹم ایس سی سی ایس فائل فارمیٹ کو اندرونی طور پر (یا آر سی ایس) بھی استعمال کر سکتا ہے اور اس کا مقصد ایس سی سی ایس کے لیے بہتر یوزر انٹرفیس فراہم کرنا ہے جبکہ اب بھی صرف سنگل فائل پروجیکٹس کا انتظام کرنا ہے۔ مزید حوالہ جات مارک روچکینڈ کا مضمون کہ ایس سی سی ایس کی ایجاد کیسے ہوئی-اے آئی ایکس 7.3 دستی صفحہ بیرونی روابط شیلی کا ایس سی سی ایس کوڈبرگ 1972 سافٹ ویئر ورژن کنٹرول سسٹم پر مفت ورژن کنٹرول سافٹ ویئر یونکس آرکائیورز اور کمپریشن سے متعلق افادیت یونکس ایس یو ایس 2008 یوٹیلیٹیز سیلف ہوسٹنگ سافٹ ویئر سی ڈی ڈی ایل لائسنس کا استعمال کرتے ہوئے