रोपटे, एक Git-सुसंगत स्त्रोत कोड नियंत्रण प्रणाली

रोपटे

जगातील सर्वात मोठ्या रिपॉझिटरीजमध्ये स्केलिंग करताना रोपटे वापरण्यास सुलभतेवर जोर देते.

फेसबुक अनावरण केले ब्लॉग पोस्टद्वारे स्त्रोत कोड व्यवस्थापन प्रणाली रोपटे कंपनीच्या अंतर्गत प्रकल्पांच्या विकासासाठी वापरले जाते. यंत्रणा आवृत्ती नियंत्रण इंटरफेस प्रदान करण्याचे उद्दिष्ट आहे परिचित जे लाखो फाईल्स, कमिट आणि शाखांमध्ये पसरलेल्या खूप मोठ्या रिपॉझिटरीजमध्ये स्केल करू शकतात.

सिस्टमची मुख्य कल्पना अशी आहे की सर्व्हरच्या एका विशेष भागाशी संवाद साधून जे रिपॉजिटरी स्टोरेज प्रदान करते, फाइल्सच्या संख्येवर आधारित सर्व ऑपरेशन्स स्केल डेव्हलपर काम करत असलेल्या कोडमध्ये प्रत्यक्षात वापरला जातो आणि संपूर्ण रेपॉजिटरीच्या एकूण आकारावर अवलंबून नाही.

उदाहरणार्थ, डेव्हलपर खूप मोठ्या रेपॉजिटरीमधून कोडचा फक्त एक छोटासा भाग वापरू शकतो आणि फक्त हा छोटा भाग, संपूर्ण रेपॉजिटरी नाही, त्यांच्या सिस्टममध्ये हस्तांतरित केला जाईल. रिपॉझिटरी फाइल्समध्ये प्रवेश केल्यामुळे कार्यरत निर्देशिका डायनॅमिकपणे भरली जाते, जी एकीकडे तुम्हाला तुमच्या कोडच्या भागासह कामात लक्षणीय गती वाढवते, परंतु दुसरीकडे, जेव्हा तुम्ही त्यात प्रवेश करता तेव्हा ते कमी करते. नवीन फायलींसाठी प्रथमच आणि सतत नेटवर्क प्रवेश आवश्यक आहे (स्वतंत्रपणे प्रदान केलेले आणि ऑफलाइन-कमिट तयारी मोड).

अनुकूली डेटा लोडिंग व्यतिरिक्त, रोपटे बदलांच्या इतिहासासह माहितीचा भार कमी करण्याच्या उद्देशाने ऑप्टिमायझेशन देखील लागू करते. (उदाहरणार्थ, लिनक्स कर्नलसह रेपॉजिटरीमधील 3/4 डेटा हा बदल इतिहास आहे).

बदलाच्या इतिहासासह प्रभावीपणे कार्य करण्यासाठी, त्याच्याशी संबंधित डेटा एका खंडित दृश्यामध्ये संग्रहित केला जातो, जो तुम्हाला सर्व्हरवरून कमिट आलेखाचे वेगळे भाग डाउनलोड करण्यास अनुमती देतो. क्लायंट सर्व्हरला अनेक पुष्टीकरणांच्या संबंधांबद्दल माहिती विचारू शकतो आणि आलेखाचा फक्त आवश्यक भाग डाउनलोड करू शकतो.

गेल्या 10 वर्षांपासून या प्रकल्पाचे काम सुरू आहे आणि मास्टर ब्रँचसह खूप मोठ्या मोनोलिथिक रिपॉझिटरीजमध्ये प्रवेश करताना समस्यांचे निराकरण करण्यासाठी तयार केले गेले होते, जेथे "विलीन" ऐवजी "रीबेस" ऑपरेशन वापरण्याचा सराव केला जात होता.

त्या वेळी, अशा रिपॉझिटरीजमध्ये काम करण्यासाठी कोणतेही खुले उपाय नव्हते आणि Facebook अभियंत्यांनी प्रकल्पांना छोट्या भांडारांमध्ये विभाजित करण्याऐवजी कंपनीच्या गरजा पूर्ण करणारी एक नवीन आवृत्ती नियंत्रण प्रणाली तयार करण्याचा निर्णय घेतला, ज्यामुळे अधिक क्लिष्ट अवलंबित्व व्यवस्थापन होईल ( एका वेळी, अशाच समस्येचे निराकरण करण्यासाठी मायक्रोसॉफ्टने GVFS स्तर तयार केला).

सुरुवातीला फेसबुकने मर्क्युरिअल सिस्टीमचा वापर केला आणि रोपटी प्रकल्प सुरुवातीला मर्क्युरिअलमध्ये एक जोड म्हणून विकसित केला गेला. कालांतराने, प्रणाली एक स्वतंत्र प्रकल्प बनली स्वतःचे प्रोटोकॉल, स्टोरेज फॉरमॅट आणि अल्गोरिदमसह, जे Git रेपॉजिटरीजशी संवाद साधण्याच्या क्षमतेसह देखील वाढवले ​​गेले.

कामासाठी, कमांड लाइन युटिलिटी "sl" प्रस्तावित आहे, जे ठराविक संकल्पना, कार्यप्रवाह आणि Git आणि Mercurial शी परिचित असलेल्या विकसकांना परिचित असलेला इंटरफेस लागू करते. Sapling मधील शब्दावली आणि आज्ञा Git पेक्षा थोड्या वेगळ्या आणि Mercurial च्या जवळ आहेत.

अतिरिक्त वैशिष्ट्ये हेही च्या रोपटी, हायलाइट करते "स्मार्ट नोंदणी" साठी समर्थन (स्मार्टलॉग), जे तुम्हाला तुमच्या भांडाराच्या स्थितीचे दृश्यमानपणे मूल्यांकन करण्यास अनुमती देते, सर्वात महत्वाची माहिती हायलाइट करा आणि किरकोळ तपशील फिल्टर करा. उदाहरणार्थ, जेव्हा तुम्ही कोणत्याही युक्तिवादांशिवाय sl उपयुक्तता चालवता, तेव्हा फक्त तुमचे स्वतःचे स्थानिक बदल प्रदर्शित केले जातात (परदेशी कोलॅप्स केले जातात), बाह्य शाखांची स्थिती, बदललेल्या फाइल्स आणि कमिटच्या नवीन आवृत्त्या प्रदर्शित केल्या जातात. याव्यतिरिक्त, स्मार्ट लॉग, चेंज ट्री आणि कमिटद्वारे द्रुत नेव्हिगेशनसाठी परस्परसंवादी वेब इंटरफेस प्रदान केला जातो.

रोपट्यातील आणखी एक लक्षणीय सुधारणा म्हणजे हे त्रुटींचे निराकरण आणि विश्लेषण करण्याची आणि मागील स्थितीकडे परत जाण्याची प्रक्रिया अधिक सुलभ करते. उदाहरणार्थ, "sl undo", "sl redo", "sl uncommit" आणि "sl unmend" या आज्ञा अनेक ऑपरेशन्स उलट करण्यासाठी, "sl hide" आणि "sl unhide" तात्पुरत्या कमिट लपवण्यासाठी आणि संवादात्मक नेव्हिगेशनसाठी सुचवल्या जातात. स्टेटस सेप्लिंग कमिट स्टॅकच्या संकल्पनेला देखील समर्थन देते, जे तुम्हाला जटिल कार्यक्षमतेचे लहान, अधिक समजण्यायोग्य वाढीव संचामध्ये (मूलभूत फ्रेमवर्कपासून अंतिम वैशिष्ट्यापर्यंत) विभाजन करून चरण-दर-चरण पुनरावलोकन आयोजित करण्यास अनुमती देते.

स्वतंत्रपणे, रिपॉजिटरीजसह प्रभावी रिमोट कामासाठी सर्व्हरचा भाग विकसित केला गेला आणि व्हर्च्युअल फाइल सिस्टम रिपॉझिटरीच्या एका भागाच्या स्थानिक भागासह कार्य करण्यासाठी जसे की ते संपूर्ण भांडार आहे (विकासक संपूर्ण रेपॉजिटरी पाहतो, परंतु केवळ विनंती केलेला डेटा स्थानिक सिस्टममध्ये कॉपी केला जातो, ज्यामध्ये प्रवेश केला जातो).

फेसबुकच्या पायाभूत सुविधांमध्ये वापरल्या जाणार्‍या या घटकांचा कोड अद्याप उघडलेला नाही, परंतु कंपनीने भविष्यात ते जारी करण्याचे आश्वासन दिले आहे. तथापि, Mononoke सर्व्हर (Rust मध्ये) आणि VFS EdenFS (C++ मध्‍ये) प्रोटोटाइप आधीच सेपलिंग रिपॉजिटरीमध्ये आढळू शकतात. हे घटक पर्यायी आहेत आणि सेपलिंग क्लायंट काम करण्यासाठी पुरेसा आहे, जो Git रिपॉझिटरीज क्लोनिंग, Git LFS-आधारित सर्व्हरशी संवाद साधणे आणि GitHub सारख्या git होस्टसह कार्य करण्यास समर्थन देतो.

रोपटीसाठी अनेक प्लगइन तयार केले आहेत, बदलांचे पुनरावलोकन करण्यासाठी ReviewStack इंटरफेससह (GPLv2 अंतर्गत कोड), जे तुम्हाला GitHub वर पुल विनंत्यांवर प्रक्रिया करण्यास आणि बदल स्टॅक दृश्य वापरण्याची परवानगी देते.

तुम्हाला याबद्दल अधिक जाणून घेण्यात स्वारस्य असल्यास, तुम्ही तपशीलांचा सल्ला घेऊ शकता पुढील लिंकवर


आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटा जबाबदार: मिगुएल Áन्गल गॅटन
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.