"హాయ్, అమిగో!"

"హాయ్!"

"ఈ రోజు నేను మీకు సంస్కరణ నియంత్రణ వ్యవస్థల గురించి చెబుతాను."

"మీకు ఇప్పటికే తెలిసినట్లుగా, ప్రోగ్రామ్‌లు చాలా పెద్దవిగా ఉంటాయి మరియు వ్రాయడానికి చాలా సమయం పడుతుంది. కొన్నిసార్లు డజన్ల కొద్దీ వ్యక్తులు ప్రోగ్రామ్‌ను వ్రాయడానికి సంవత్సరాలు గడపవచ్చు."

"మిలియన్ల కోడ్ లైన్‌లతో కూడిన ప్రాజెక్ట్‌లు వాస్తవం."

"ఓహో."

"ఇదంతా చాలా క్లిష్టంగా ఉంది. వ్యక్తులు తరచుగా ఒకరితో ఒకరు జోక్యం చేసుకుంటారు మరియు తరచుగా ఒకే కోడ్‌ని సవరించుకుంటారు మరియు మొదలైనవి."

"ఈ గందరగోళానికి క్రమాన్ని తీసుకురావడానికి, ప్రోగ్రామర్లు వారి కోడ్ కోసం సంస్కరణ నియంత్రణ వ్యవస్థలను ఉపయోగించడం ప్రారంభించారు ."

" వెర్షన్ కంట్రోల్ సిస్టమ్ అనేది క్లయింట్ మరియు సర్వర్‌తో కూడిన ప్రోగ్రామ్.

"ప్రోగ్రామ్ డేటాను (ప్రోగ్రామర్లు వ్రాసిన కోడ్) సర్వర్‌లో నిల్వ చేస్తుంది మరియు ప్రోగ్రామర్లు క్లయింట్‌లను ఉపయోగించి దానిని జోడించడం లేదా మార్చడం."

"వెర్షన్ కంట్రోల్ సిస్టమ్ మరియు డాక్యుమెంట్‌లపై సహకారంతో పని చేయడం సాధ్యం చేసే ప్రోగ్రామ్‌ల మధ్య ప్రధాన వ్యత్యాసం ఏమిటంటే ఇది అన్ని డాక్యుమెంట్‌ల (కోడ్ ఫైల్‌లు) యొక్క మునుపటి సంస్కరణలన్నింటినీ నిల్వ చేస్తుంది."

"మరిన్ని వివరాలు చెప్పగలరా. అన్నీ ఎలా పని చేస్తాయి?"

"మీరు ప్రోగ్రామర్ అని ఊహించుకోండి మరియు సర్వర్‌లోని రిపోజిటరీలో నిల్వ చేయబడిన ప్రోగ్రామ్ యొక్క సోర్స్ కోడ్‌లో మీరు చిన్న మార్పులు చేయాలనుకుంటున్నారు."

"మీరు చేయవలసినది ఇక్కడ ఉంది:"

"1) సర్వర్‌కి లాగిన్ చేయండి."

"2) Checkout ఆదేశాన్ని ఉపయోగించి మీ కంప్యూటర్‌కు అన్ని ఫైల్‌ల యొక్క తాజా సంస్కరణను కాపీ చేయండి."

"3) అవసరమైన ఫైల్‌లకు మార్పులు చేయండి."

"4) ప్రోగ్రామ్ కంపైల్ చేసి రన్ అవుతుందని నిర్ధారించుకోవడానికి దాన్ని స్థానికంగా రన్ చేయండి."

"5) కమిట్ ఆదేశాన్ని ఉపయోగించి సర్వర్‌కు మీ 'మార్పులను' పంపండి."

"ఇది సాధారణంగా అర్ధమే."

"అయితే ఇంకా చాలా ఉన్నాయి. మీరు ఉదయాన్నే పనికి వస్తారని ఊహించుకోండి, కానీ అప్పటికే ఇండియాలో లంచ్‌టైమ్ అయింది. కాబట్టి మీ భారతీయ సహోద్యోగులు ఇప్పటికే మార్పులు చేసారు మరియు సర్వర్‌లోని మీ రిపోజిటరీకి తమ మార్పులను చేసారు."

"మీరు కోడ్ యొక్క తాజా వెర్షన్‌తో పని చేయాలి. కాబట్టి మీరు అప్‌డేట్ ఆదేశాన్ని అమలు చేయండి."

" చెక్అవుట్ నుండి ఇది ఎలా భిన్నంగా ఉంటుంది ?"

" రిపోజిటరీ యొక్క అన్ని ఫైల్‌లను కాపీ చేయడానికి చెక్అవుట్ రూపొందించబడింది, కానీ మీరు చివరిసారిగా Checkout / Update కమాండ్‌ని అమలు చేసినప్పటి నుండి సర్వర్‌లో నవీకరించబడిన ఫైల్‌లను మాత్రమే నవీకరణ అప్‌డేట్ చేస్తుంది ."

"ఇది సుమారుగా ఎలా పని చేస్తుంది:"

చెక్అవుట్ :

సంస్కరణ నియంత్రణ వ్యవస్థలు - 1

"ఇప్పుడు, మనం ఫైల్ Bని మార్చాము మరియు సర్వర్‌కు అప్‌లోడ్ చేయాలనుకుంటున్నాము. దీన్ని చేయడానికి, మేము కమిట్ కమాండ్‌ని ఉపయోగించాలి."

సంస్కరణ నియంత్రణ వ్యవస్థలు - 2

"మరియు నవీకరణ కమాండ్ ఎలా పనిచేస్తుందో ఇక్కడ ఉంది :"

సంస్కరణ నియంత్రణ వ్యవస్థలు - 3

"ఎంత ఇంటరెస్టింగ్! ఇంకా ఏమైనా కమాండ్స్ ఉన్నాయా?"

"అవును, చాలా కొన్ని ఉన్నాయి. కానీ మీరు ఎంచుకున్న సంస్కరణ నియంత్రణ ప్రోగ్రామ్‌ను బట్టి అవి మారుతూ ఉంటాయి. కాబట్టి, నేను సాధారణ సూత్రాలను వివరించడానికి ప్రయత్నిస్తున్నాను."

"మెర్జింగ్ అనే ఆపరేషన్ కూడా ఉంది-రెండు డాక్యుమెంట్ల యూనియన్. ఇద్దరు ప్రోగ్రామర్లు ఒకే ఫైల్‌ని ఒకే సమయంలో సవరించారని అనుకుందాం. అప్పుడు సర్వర్‌లోని ప్రోగ్రామ్ రెండు మార్పులకు కట్టుబడి ఉండటానికి అనుమతించదు. ఎవరు ముందుగా కట్టుబడి ఉంటే అతనిని జోడించాలి. లేదా ఆమె మార్పులు."

"అయితే అవతలి వ్యక్తి ఏం చేస్తాడు?"

"అతను లేదా ఆమె సర్వర్ నుండి తాజా మార్పులను పొందేందుకు అప్‌డేట్ ఆపరేషన్ చేయడానికి ఆహ్వానించబడతారు . మార్గం ద్వారా, ఇది — కమిట్ అయ్యే ముందు అప్‌డేట్ చేయడం — మంచి పద్ధతి."

"అప్పుడు, అప్‌డేట్ ఆపరేషన్ సమయంలో, క్లయింట్ ప్రోగ్రామ్ స్థానిక మార్పులను సర్వర్ నుండి స్వీకరించిన మార్పులతో విలీనం చేయడానికి ప్రయత్నిస్తుంది."

"ప్రోగ్రామర్లు ఫైల్ యొక్క వివిధ భాగాలను మార్చినట్లయితే, సంస్కరణ నియంత్రణ ప్రోగ్రామ్ బహుశా వాటిని విజయవంతంగా విలీనం చేయగలదు.  మార్పులు ఒకే చోట ఉంటే, సంస్కరణ నియంత్రణ ప్రోగ్రామ్ విలీన సంఘర్షణను నివేదిస్తుంది మరియు వినియోగదారుని మాన్యువల్‌గా ప్రాంప్ట్ చేస్తుంది మార్పులను విలీనం చేయండి."

"ఉదాహరణకు, ఇద్దరు ప్రోగ్రామర్లు ఫైల్ ముగింపుకు ఏదైనా జోడించినప్పుడు ఇది తరచుగా జరుగుతుంది."

"నేను చూస్తున్నాను. మొత్తంమీద, అది సహేతుకంగా అనిపిస్తుంది."

"మరియు మరొక విషయం ఉంది: శాఖలు."

"ఒక బృందంలోని ఇద్దరు ప్రోగ్రామర్లు ఒకే మాడ్యూల్‌ను తిరిగి వ్రాయడానికి పని చేస్తారని ఊహించుకోండి. లేదా ఇంకా ఉత్తమం - మొదటి నుండి తిరిగి వ్రాయడం. ఈ మాడ్యూల్ పూర్తయ్యే వరకు, ప్రోగ్రామ్ రన్ చేయలేరు మరియు కంపైల్ చేయలేకపోవచ్చు."

"కాబట్టి వారు ఏమి చేయాలి?"

"అవి రిపోజిటరీకి శాఖలను జోడించడం ద్వారా ముందుకు సాగుతాయి. స్థూలంగా చెప్పాలంటే, రిపోజిటరీ రెండు భాగాలుగా విభజించబడింది. ఫైల్‌లు లేదా డైరెక్టరీల ద్వారా కాదు, సంస్కరణల ద్వారా."

" విద్యుత్ ఎప్పుడూ కనుగొనబడలేదు మరియు రోబోట్లు ఎప్పుడూ కనుగొనబడలేదు. అప్పుడు మూడు విముక్తి యుద్ధాలు ఎన్నటికీ జరగవు మరియు మానవ చరిత్ర అంతా పూర్తిగా భిన్నమైన మార్గాన్ని అనుసరించి ఉండేది. "

"ఈ మార్గం చరిత్ర యొక్క ప్రత్యామ్నాయ శాఖ."

"లేదా మీరు ఒక శాఖను కేవలం రిపోజిటరీ యొక్క కాపీగా చిత్రీకరించడానికి ప్రయత్నించవచ్చు. మరో మాటలో చెప్పాలంటే, ఏదో ఒక సమయంలో, మేము సర్వర్‌లో రిపోజిటరీ యొక్క క్లోన్‌ను తయారు చేసాము, తద్వారా ప్రధాన రిపోజిటరీతో పాటు (తరచుగా ట్రంక్ అని పిలుస్తారు . ), మాకు మరొక శాఖ ఉంది ."

"సరే, అది మరింత అర్థమయ్యేలా ఉంది.

"మేము రిపోజిటరీని కాపీ చేసామని మీరు ఎందుకు చెప్పలేకపోయారు?"

"ఇది సాధారణ కాపీ చేయడం కాదు."

"ఈ శాఖలను ట్రంక్ నుండి వేరు చేయడమే కాకుండా, దానిలో విలీనం చేయవచ్చు."

"మరో మాటలో చెప్పాలంటే, ఒక శాఖలో కొంత పని చేయవచ్చు, ఆపై అది పూర్తయిన తర్వాత మీరు రిపోజిటరీ ట్రంక్‌కు రిపోజిటరీ శాఖను జోడించవచ్చా?"

"అవును."

"మరి ఫైల్స్ ఏమౌతాయి?"

"ఫైళ్లు విలీనం చేయబడతాయి."

"సరే, అది బాగుంది. ఇది చర్యలో కూడా అంతే బాగుంది అని నేను ఆశిస్తున్నాను."

"ఇంకా కొన్ని. సరే, విరామం తీసుకుందాం."

" ఇక్కడ ఉపయోగకరమైన సమాచారం కొంత ఉంది  "