Software Version Control

Suvin1122

Well-known member
  • Feb 28, 2009
    12,517
    1,018
    113
    Elakiri Server....
    Programming කරන කෙනෙක්ට වැදගත් වෙන දෙයක් තමයි මේ Software Version Control එහෙම නැත්නම් Revision Control කියලා කියන්නෙ. ගොඩක් අය අහලත් ඇති පවිච්චි කරලත් ඇති. දන්න විදියට මොකක්ද මේ Version control කියල අදහසක් දෙන්න තමයි මේ article එකෙන් බලාපොරොත්තු වෙන්නෙ.
    පොඩි application හදනකොට වගේ නෙමෙ මහා පරිමාණ app හදන කොට එක එක විදියෙ ප්‍රශ්න මතු වෙනවා. ඒ වගේ project එකක developersලා 10-20 හෝ ඊටත් වැඩියෙන් වැඩ කරනවා. ඔක්කොම කට්ටිය වැඩ කරන්නෙ එකම software එකට නිසා මේ version control වැදගත් වෙනවා.


    Version control වල ප්‍රධාන වාසි


    • කීප දෙනෙක්ට එක සැරේම කිසියම application එකක වෙනස් කම් කළ හැකි වීම
    • Application එකට කරලා තියෙන වෙනස් කම් track කිරීමේ පහසුව
    • කිසියම් වැරදීමක් උනොත් reverse කළ හැකි වීම
    • software version තබා ගැනීම
    • coding කරපු developer,දිනය, වෙලාව වගේ විස්තර තබා ගැනීම
    • අලුත් අංග එකතු කිරීම පරණ code එකට හානියක් නොවෙන්න කළ හැකි වීම
    මේ වගේ ගොඩක් වාසි version control වල දකින්න පුලුවන්. දැන් බලමු version control වල ප්‍රධාන කොටස් ටික

    • Repository: Application එකේ දත්ත මධ්‍යගත කරලා තියෙන තැන තමා repository කියල කියන්නෙ. App එකේ වෙනසක් කරනවනම් මේ repository එකෙ තියෙන code එකට තම වෙනස් කම් කරන්නෙ. එක project එකක repository කීපයක් පාවිච්චි කරන්න පුලුවන්. ඒ වගෙ වෙලාවට අපි වැඩ කරන්නෙ මොන repository එකත් එක්කද කියලා තෝරගෙන වැඩ කරන්න ඕනෙ.
    • Trunk: Software එකේ version හැටියට මේ trunk භාවිතා කරන්න පුලුවන්. Repository එකේ තියෙන data වලින් stable versions තමා මේ trunk එක හැටියට භාවිතා කරන්නෙ. වෙනසක් කරන්න තියෙනවනම් trunk එකක් අරගෙන තමයි අවශ්‍යය කරන වෙනස් කම් කරන්නෙ. ඊට පස්සෙ ඒක හරියටම වැඩ කරනවා කියලා sure නම් විතරක් අලූත් trunk එකක් හැටියට save කරනවා. save කරපු version එකේ මොකක් හරි ප්‍රශ්නයක් වුනොත් කලින් trunk එක restore කර ගන්න පුලුවන්.
    • Branch: Branches කියලා කියන්නෙ developing process එකේ තියෙන unstable versions. ඈලුත් වෙනසක් හරි bug fix එකක් හරි කරලා ඒක වැඩ් කරනවඩ කියල බලන්න, code එක branch එකක් හැටියට add කරනවා. ඒ විදියට තියාගෙන testing, ammendments කරනවා. ඒකෙන් ප්‍රධාන code එකට කිසිම හානියක් වෙන්නෙ නෑ.
    • Checkout: අපේ වැඩේට online repository එක භවිතා කර වෙලාවට කෙලින්ම rep එකත් එක්ක වැඩ කරන්න විඩියක් නෑ. ඒ වගේ වෙලව මේකෙ checkout එකක් කරන්න වෙනව, ඒ කියන්නෙ remote server එකේ තියෙන අන්තිම update එක අපේ local machine එකට copy කරගන්නවා.
    • Commit: Checkout එකේ අනිත් පැත්ත තමයි මේකෙන් වෙන්නෙ. ඈපි local pc එකේ කරපු වෙනස් කම් ටික repository එකට එකතු කරන වැඩේ commit කිරීමක් විඩියට හඳුන්වනවා.
    255px-Revision_controlled_project_visualization-2010-24-02.svg.png


    Software Version Control වල මූලික අදහසක් තමයි මේ විදියට ලිව්වෙ.. ප්‍රතිචාරත් එක්ක මේ ගැන වැඩි දුර විස්තර ගේන්න බලාපොරොත්තු තියෙනවා. මමත් මේ ගැන ගොඩක් කරල නෑ..වැරදි අඩුපාඩු තියෙනවනම් කියන්න.. :yes::yes: