Friday, October 12, 2007

நிரல் பராமரிப்பு - 1

மென்பொருள் உருவாக்கத்தில் நிரல்ஊற்று பராமரிப்பு (source control) மிக முக்கியமான ஒன்று. அது என்னவென்று பார்க்கலாம்.

மிக எளிதான சிறு நிரல்களைத் தவிர்த்து மற்ற எல்லா பெரிய மென்பொருள் உருவாக்கத் திட்டங்களிலும் நிரல்களை பல கோப்புகளில் பிரித்தால்தான் சமாளிக்க முடியும். ஒரே மாதிரியான அல்லது ஒரே வேலைகளைச் செய்யும் நிரல் கோப்புகளை ஒரு அடைவில் (directory) சேர்த்து வைக்க ஆரம்பித்தால் பல அடைவுகளும் உருவாகி விடும்.

ஒரு மென்பொருள் திட்டத்தின் மூலநிரல் தொகுப்பில் பல அடைவுகளும் ஒவ்வொரு அடைவுக்குள்ளும் இன்னும் பல அடைவுகள் அல்லது பல கோப்புகளும் இருக்கலாம்.

அந்த அளவு பெரிய திட்டத்தில் தனி ஒருவராக நிரல் எழுதுவது நடக்காது. நான்கைந்து பேரில் ஆரம்பித்து நூற்றுக் கணக்கான பேர் நிரல் எழுதுவார்கள். மாற்றங்கள் செய்வார்கள். வழுக்களைச் சரி செய்வார்கள்.

இப்படி பல கோப்புகளை, பலர் இணைந்து கையாளும் போது பல சிக்கல்கள் ஏற்படும்:
  1. ஒரே நேரத்தில் இரண்டு பேர் ஒரே கோப்பை மாற்றிக் கொண்டிருந்தால் ஒன்றுக்கொன்று மேலெழுதிப் போகும்.
  2. குறிப்பிட்ட மாற்றத்தில் ஏதாவது வழு இருந்தால் அதை என்று நிகழ்ந்தது என்று தேடிக் கண்டுபிடிப்பது பெரும் பாடாகிப் போகும்.
இவற்றைச் சமாளிக்க ஏற்பட்டவைதான் நிரல்பதிப்பு பராமரிப்பு மென்பொருள்கள்.
  • திறவூற்று உலகில் பரவலாகப் பயன்படுத்தப்படுவது cvs (concurrent version control - ஒத்திசைந்த நிரல்பதிப்பு பராமரிப்பு) என்ற பயன்பாடு.
  • cvsன் குறைபாடுகளைக் களைந்து புதிதாக சப்வெர்ஷன் (subversion) என்ற பயன்பாடு உருவாக்கப்பட்டுள்ளது.
  • இந்த இரண்டும் போதாது என்று லினஸ் தோர்வால்ட்ஸ், லினக்சு கெர்னல் உருவாக்கத்தைப் பராமரிக்க கிட் (git) என்ற கருவியைத் தானே எழுதிப் பயன்படுத்த ஆரம்பித்துள்ளார்.
  • இவற்றைத் தவிர மைக்ரோசாப்டு நிறுவனத்தின் sourcesafe என்ற பயன்பாட்டையும் காசு கொடுத்து வாங்கிக் கொள்ளலாம்.
நான் cvs மற்றும் சப்வெர்ஷன் பயன்படுத்தியிருக்கிறேன். மேலே சொன்ன இரண்டு குறிக்கோள்களையும் அடைய உதவுகின்றன இவை. அதாவது, ஒரே நேரத்தில் ஒரே கோப்பை ஒன்றுக்கு மேற்பட்டவர்கள் மாற்றிக் கொண்டிருந்தாலும் எல்லோரது வேலையும் ஒன்றுக்கொன்று இடிக்காமல் இருக்க வேண்டும். பல்வேறு பதிப்புகளை நாள்,நேரம் குறிப்பிட்டு பராமரிக்க முடிய வேண்டும்.

3 comments:

வடுவூர் குமார் said...

ஓ! CVS என்றால் இதானா?
இதுவரை அதைப்படித்து படித்து ஒன்றும் புரியாமல் இருந்தேன்,இப்போது புரிந்தது.
உபரி தகவல்:
சிங்கையில் முதல் முறையாக லினக்ஸில் வேலை செய்யும் என்று போட்ட wireless Adapter விற்க ஆரம்பித்துவிட்டார்கள்.அதன் driver போடாமலேயே வேலை செய்கிறது.
US யில் 6 டாலருக்கு கிடைக்கிறதாம்.இங்கு 35 வெள்ளிக்கு வாங்கினேன்.

தகடூர் கோபி(Gopi) said...

நல்ல தகவல்கள்.

மைக்ரோசாப்டின் Visual Source Safe போல இன்னும் ஒரு வணிக ரீதியான நிரல் பராமரிப்பு மென்பொருள் Rational ClearCase. இது பல வசதிகளை கொண்டது. உங்கள் நிரல் பதிப்புகள், நிரல் பிரிவுகள் மற்றும் வெளியீட்டு நிலைகள் அவற்றுக்கிடையேயான உறவுகள், வேறுபாடுகள் ஆகியனவற்றை காட்சி வடிவில் பார்க்கலாம். கற்று கொள்வதும் எளிது.

இலவச திறவூற்று மென்பொருள்களில் நான் சப்வெர்ஷன் (subversion) பயன்படுத்தியதில்லை. WinCVS/CVSNT/SSH மூலமாக CVS பயன்படுத்தியிருக்கிறேன். ஆனால் ClearCase போல காட்சி வடிவில் பாக்க CVS சார்ந்த மென்பொருள் ஏதும் இருக்கிறதா என தெரியவில்லை.

மா சிவகுமார் said...

வாங்க குமார்,

//சிங்கையில் முதல் முறையாக லினக்ஸில் வேலை செய்யும் என்று போட்ட wireless Adapter விற்க ஆரம்பித்துவிட்டார்கள்.அதன் driver போடாமலேயே வேலை செய்கிறது.//

நான் கூட இன்று முதல் டாடா இண்டிகாமின் பிளக்2சர்ஃப் என்ற யுஎஸ்பி பேனா வடிவக் கருவி மூலம் இணைய இணைப்பு வாங்கி விட்டேன். 2850 ரூபாய், மடிக்கணினி, மேசைக் கணினி எங்கு வேண்டுமானாலும் இணைத்துக் கொள்ளலாம்.

நன்றி கோபி,

லினக்சில் சிவிஎஸ் மற்றும் சப்வெர்ஷனுக்கு அருமையான துணைக்கருவிகள் இருக்கின்றன. இன்றுதான் மதியம் மூன்று மணி நேரம் உட்கார்ந்து சப்வெர்ஷன் குறித்துப் படித்துக் கொண்டிருந்தேன். புதிய முறைக்கு மாறத் திட்டம் போட்டுக் கொண்டிருக்கிறோம்.

அன்புடன்,
மா சிவகுமார்