રોપા, ગિટ-સુસંગત સ્ત્રોત કોડ નિયંત્રણ સિસ્ટમ

રોપા

વિશ્વના સૌથી મોટા ભંડારોમાં સ્કેલિંગ કરતી વખતે રોપા ઉપયોગમાં સરળતા પર ભાર મૂકે છે.

ફેસબુકનું અનાવરણ બ્લોગ પોસ્ટ દ્વારા સ્ત્રોત કોડ મેનેજમેન્ટ સિસ્ટમ રોપણી કંપનીના આંતરિક પ્રોજેક્ટ્સના વિકાસમાં વપરાય છે. સિસ્ટમ વર્ઝન કંટ્રોલ ઈન્ટરફેસ પ્રદાન કરવાનો હેતુ છે પરિચિત કે જે લાખો ફાઈલો, કમિટ અને શાખાઓમાં ફેલાયેલી ખૂબ મોટી રીપોઝીટરીઝમાં સ્કેલ કરી શકે છે.

સિસ્ટમનો મુખ્ય વિચાર એ છે કે સર્વરના વિશિષ્ટ ભાગ સાથે ક્રિયાપ્રતિક્રિયા કરીને જે રિપોઝીટરી સ્ટોરેજ પ્રદાન કરે છે, ફાઇલોની સંખ્યા પર આધારિત તમામ કામગીરી સ્કેલ વાસ્તવમાં વિકાસકર્તા જે કોડ પર કામ કરી રહ્યો છે તેમાં ઉપયોગમાં લેવાય છે અને તે સમગ્ર રિપોઝીટરીના કુલ કદ પર આધારિત નથી.

ઉદાહરણ તરીકે, ડેવલપર બહુ મોટા રિપોઝીટરીમાંથી કોડના માત્ર એક નાના ભાગનો ઉપયોગ કરી શકે છે, અને માત્ર આ નાનો ભાગ જ, સમગ્ર રીપોઝીટરીને નહીં, તેમની સિસ્ટમમાં ટ્રાન્સફર કરવામાં આવશે. વર્કિંગ ડાયરેક્ટરી ગતિશીલ રીતે ભરવામાં આવે છે, કારણ કે રીપોઝીટરી ફાઇલોને ઍક્સેસ કરવામાં આવે છે, જે એક તરફ, તમને કોડના તમારા ભાગ સાથે કામને નોંધપાત્ર રીતે ઝડપી બનાવવા માટે પરવાનગી આપે છે, પરંતુ બીજી બાજુ, જ્યારે તમે તેને ઍક્સેસ કરો છો ત્યારે તેને ધીમું કરે છે. નવી ફાઈલો માટે પ્રથમ વખત અને સતત નેટવર્ક એક્સેસની જરૂર છે (અલગથી અને ઓફલાઈન-કમિટ તૈયારી મોડ આપવામાં આવે છે).

અનુકૂલનશીલ ડેટા લોડિંગ ઉપરાંત, રોપા ફેરફારોના ઇતિહાસ સાથે માહિતીના ભારને ઘટાડવાના હેતુથી ઑપ્ટિમાઇઝેશનનો પણ અમલ કરે છે. (ઉદાહરણ તરીકે, Linux કર્નલ સાથેના રીપોઝીટરીમાંનો 3/4 ડેટા ફેરફાર ઇતિહાસ છે).

પરિવર્તન ઇતિહાસ સાથે અસરકારક રીતે કામ કરવા માટે, તેની સાથે સંકળાયેલ ડેટા સેગમેન્ટેડ વ્યુમાં સંગ્રહિત થાય છે, જે તમને સર્વરમાંથી કમિટ ગ્રાફના અલગ ભાગો ડાઉનલોડ કરવાની મંજૂરી આપે છે. ક્લાયંટ સર્વરને અનેક પુષ્ટિકરણોના સંબંધ વિશેની માહિતી માટે પૂછી શકે છે અને ગ્રાફનો માત્ર જરૂરી ભાગ ડાઉનલોડ કરી શકે છે.

આ પ્રોજેક્ટ છેલ્લા 10 વર્ષથી વિકાસમાં છે અને માસ્ટર બ્રાન્ચ સાથે ખૂબ મોટી મોનોલિથિક રિપોઝીટરીઝને ઍક્સેસ કરતી વખતે સમસ્યાઓ ઉકેલવા માટે બનાવવામાં આવી હતી, જ્યાં "મર્જ" ને બદલે "રીબેઝ" ઑપરેશનનો ઉપયોગ કરવાની પ્રેક્ટિસ કરવામાં આવી હતી.

તે સમયે, આવા રિપોઝીટરીઝ સાથે કામ કરવા માટે કોઈ ખુલ્લા ઉકેલો નહોતા, અને ફેસબુક એન્જિનિયરોએ એક નવી વર્ઝન કંટ્રોલ સિસ્ટમ બનાવવાનું નક્કી કર્યું જે કંપનીની જરૂરિયાતોને પૂરી કરશે, પ્રોજેક્ટને નાના રિપોઝીટરીઝમાં વિભાજિત કરવાને બદલે, જે વધુ જટિલ નિર્ભરતા વ્યવસ્થાપન તરફ દોરી જશે. એક સમયે, સમાન સમસ્યાને ઉકેલવા માટે, માઇક્રોસોફ્ટે GVFS સ્તર બનાવ્યું).

શરૂઆતમાં ફેસબુકે મર્ક્યુરિયલ સિસ્ટમનો ઉપયોગ કર્યો હતો અને રોપાનો પ્રોજેક્ટ શરૂઆતમાં મર્ક્યુરિયલના વધારા તરીકે વિકસાવવામાં આવ્યો હતો. સમય જતાં, સિસ્ટમ એક સ્વતંત્ર પ્રોજેક્ટ બની ગઈ તેના પોતાના પ્રોટોકોલ, સ્ટોરેજ ફોર્મેટ અને અલ્ગોરિધમ્સ સાથે, જે ગિટ રિપોઝીટરીઝ સાથે ક્રિયાપ્રતિક્રિયા કરવાની ક્ષમતા સાથે પણ વિસ્તૃત કરવામાં આવી હતી.

કામ માટે, આદેશ વાક્ય ઉપયોગિતા "sl" પ્રસ્તાવિત છે, જે લાક્ષણિક ખ્યાલો, વર્કફ્લો અને ગિટ અને મર્ક્યુરિયલથી પરિચિત વિકાસકર્તાઓને પરિચિત ઇન્ટરફેસનો અમલ કરે છે. સેપ્લિંગમાં પરિભાષા અને આદેશો ગિટથી થોડા અલગ છે અને મર્ક્યુરિયલની નજીક છે.

વધારાના લક્ષણો વચ્ચે ના રોપા, હાઇલાઇટ કરે છે "સ્માર્ટ નોંધણી" માટે આધાર (સ્માર્ટલોગ), જે તમને તમારા ભંડારની સ્થિતિનું દૃષ્ટિની આકારણી કરવા દે છે, સૌથી મહત્વપૂર્ણ માહિતી પ્રકાશિત કરો અને નાની વિગતોને ફિલ્ટર કરો. ઉદાહરણ તરીકે, જ્યારે તમે કોઈ દલીલો વિના sl ઉપયોગિતા ચલાવો છો, ત્યારે ફક્ત તમારા પોતાના સ્થાનિક ફેરફારો જ પ્રદર્શિત થાય છે (વિદેશી ફેરફારો સંકુચિત થાય છે), બાહ્ય શાખાઓની સ્થિતિ, બદલાયેલ ફાઇલો અને કમિટ્સના નવા સંસ્કરણો પ્રદર્શિત થાય છે. વધુમાં, સ્માર્ટ લોગ, ચેન્જ ટ્રી અને કમિટ દ્વારા ઝડપી નેવિગેશન માટે ઇન્ટરેક્ટિવ વેબ ઈન્ટરફેસ આપવામાં આવે છે.

રોપામાં બીજો નોંધપાત્ર સુધારો તે છે તે ભૂલોને સુધારવા અને તેનું વિશ્લેષણ કરવાની અને પાછલી સ્થિતિમાં પાછા ફરવાની પ્રક્રિયાને વધુ સરળ બનાવે છે. ઉદાહરણ તરીકે, આદેશો "sl undo", "sl redo", "sl uncommit" અને "sl unmend" ઘણા ઑપરેશનને રિવર્સ કરવા માટે સૂચવવામાં આવે છે, "sl hide" અને "sl unhide" કમિટ્સને અસ્થાયી રૂપે છુપાવવા અને ઇન્ટરેક્ટિવ નેવિગેશન માટે. સ્ટેટ્સ સેપ્લિંગ કમિટ સ્ટેકની વિભાવનાને પણ સમર્થન આપે છે, જે તમને જટિલ કાર્યક્ષમતાને નાના, વધુ સમજી શકાય તેવા ફેરફારોના સમૂહમાં (મૂળભૂત ફ્રેમવર્કથી અંતિમ લક્ષણ સુધી) માં વિભાજીત કરીને પગલું દ્વારા સમીક્ષા ગોઠવવાની મંજૂરી આપે છે.

અલગ, રિપોઝીટરીઝ સાથે અસરકારક રીમોટ વર્ક માટે સર્વરનો ભાગ વિકસાવવામાં આવ્યો હતો અને રીપોઝીટરીના એક ભાગના સ્થાનિક ભાગ સાથે કામ કરવા માટે વર્ચ્યુઅલ ફાઇલ સિસ્ટમ, જાણે કે તે સંપૂર્ણ રીપોઝીટરી હોય (વિકાસકર્તા સમગ્ર રીપોઝીટરી જુએ છે, પરંતુ ફક્ત વિનંતી કરેલ ડેટાને સ્થાનિક સિસ્ટમમાં કૉપિ કરવામાં આવે છે, જે ઍક્સેસ કરવામાં આવે છે).

Facebookના ઈન્ફ્રાસ્ટ્રક્ચરમાં ઉપયોગમાં લેવાતા આ ઘટકો માટેનો કોડ હજુ સુધી ખુલ્લો નથી, પરંતુ કંપનીએ તેને ભવિષ્યમાં રિલીઝ કરવાનું વચન આપ્યું છે. જો કે, મોનોનોક સર્વર (રસ્ટમાં) અને VFS EdenFS (C++ માં) પ્રોટોટાઇપ પહેલેથી જ સેપ્લિંગ રિપોઝીટરીમાં મળી શકે છે. આ ઘટકો વૈકલ્પિક છે અને સેપ્લિંગ ક્લાયંટ તેની સાથે કામ કરવા માટે પૂરતું છે, જે ગિટ રિપોઝીટરીઝને ક્લોન કરવા, ગિટ એલએફએસ-આધારિત સર્વર્સ સાથે ક્રિયાપ્રતિક્રિયા કરવા અને ગિટહબ જેવા ગિટ હોસ્ટ સાથે કામ કરવા માટે સપોર્ટ કરે છે.

રોપા માટે કેટલાક પ્લગઈનો તૈયાર કરવામાં આવ્યા છે, ફેરફારોની સમીક્ષા કરવા માટે રીવ્યુસ્ટૅક ઈન્ટરફેસ સહિત (GPLv2 હેઠળનો કોડ), જે તમને GitHub પર પુલ વિનંતીઓ પર પ્રક્રિયા કરવા અને સ્ટેક વ્યૂ બદલવાનો ઉપયોગ કરવાની મંજૂરી આપે છે.

જો તમને તેના વિશે વધુ જાણવામાં રસ હોય, તો તમે વિગતોનો સંપર્ક કરી શકો છો નીચેની કડીમાં


તમારી ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. આવશ્યક ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *

*

*

  1. ડેટા માટે જવાબદાર: મિગ્યુએલ gelંજેલ ગેટóન
  2. ડેટાનો હેતુ: નિયંત્રણ સ્પામ, ટિપ્પણી સંચાલન.
  3. કાયદો: તમારી સંમતિ
  4. ડેટાની વાતચીત: કાયદાકીય જવાબદારી સિવાય ડેટા તૃતીય પક્ષને આપવામાં આવશે નહીં.
  5. ડેટા સ્ટોરેજ: cસેન્ટસ નેટવર્ક્સ (ઇયુ) દ્વારા હોસ્ટ કરેલો ડેટાબેઝ
  6. અધિકાર: કોઈપણ સમયે તમે તમારી માહિતીને મર્યાદિત, પુન recoverપ્રાપ્ત અને કા deleteી શકો છો.