Advertise here : Rs.500/= per week (email: [email protected])



joinlanka

Git VCS සිංහලෙන් - Part 1 : Version Control System එකක් කියන්නේ?

Discussion in 'ක්‍රමලේඛන-programming' ආරම්භ කරන ලද්දේ IP_Man, Nov 30, 2016.

  1. IP_Man
    Offline

    IP_Man විශිෂ්ට සාමාජික

    Joined:
    Apr 5, 2014
    අදහස්:
    1,295
    Likes Received:
    1,643
    [​IMG]
    හෙලෝ හැමෝටම. මම අන්තිමට ටියුටෝරියල් එකක් දාලා කාලයක් ගිය නිසා මම හිතුවා අලුත් ටියුටෝරියල් සෙට් එකක් දාන්න. අද මම පටන් ගන්නේ Git කියන Version Control System එක භාවිතා කරන හැටි ගැන පැහැදිලි කරන ටියුටෝරියල් සෙට් එක. හරි එහෙනම් පටන් ගම්මු.

    මොකක්ද VCS - Version Control System එකක් කියන්නේ?

    VCS එකක් කියන්නේ ෆයිල් හෝ ෆෝල්ඩර් ඇතුලේ කරන වෙනස්කම් ගැන සටහන් තියාගන්න ක්‍රමයක් කියලා තමයි සරලවම කියන්න පුලුවන් වෙන්නේ.

    උදාහරණයකට අපි හිතමු hello.txt කියලා text document එකක් තියෙනවා කියලා. අපි මේක version 1 කියලා කියමු. ඊට පස්සේ අපි මේ document එක ඕපන් කරලා වෙනස්කම් කීපයක් කරනවා. කරලා සේව් කරනවා. දැන් අපි ගාව තියෙන්නේ version 2 එක. ඒක version 1 එකට වඩා වෙනස්. VCS එකකින් කරන්නේ මේ වෙනස්කම් මොනවද කියලා සටහනක් තියාගන්න එක. ඒ වගේම අපිට ඒ වෙනස්කම් සසදන්න (Compare) කරන්න වගේම ඒවා අතර මාරු වෙන්න අවස්ථාව ලබා දෙනවා.

    ඔයාලා පොටෝශොප් වගේ මෘදුකාංගයක වැඩ කරලා තියෙනවනම් දැකලා ඇති ඒකේ පහසුකමක් තියෙනවා History කියලා. මේකෙන් අපිට අපි කරපු වෙනස්කම් අතර මාරු වෙන්න අවස්ථාව සලසලා දෙනවා. අපි අතින් මොනවා හරි වැරැද්දක් උනොත් අපිට පුලුවන් ආපහු කලින් හිටිය තැනට යන්න. මේක VCS එකක් නොවුනත්, මේකෙන් වෙන වැඩේ අපිට VCS තේරුම් ගන්න උදාහරණයක් ලෙස භාවිතා කරන්න පුලුවන්.

    VCS එකක් භාවිතා කරන්න ඕන ඇයි? කාටද මේක වටින්නේ?
    VCS එකක ලොකුම වටිනාකම තියෙන්නේ Programming, Web Developing වගේ කේතකරණය කරන අයට. ඒකට හේතුව තමයි VCS එකකින් බොහෝ වෙලාවට සටහන් තියාගන්නේ text document ගැන (html, js, vb, c# වගේ). ඒත් එදිනෙදා word document වගේ text ෆයිල් එඩිට් කරන කෙනෙක්ට උනත් මේකෙන් ලොකු පහසුවක් ලබාගන්න පුලුවන්,

    හිතන්න ඔයා web developer කෙනෙක්. ඔයා හදපු වෙබ් අඩවියක source එකට ලොකු වෙනස් කමක් කරන්න වෙලා තියෙනවා. හැබැයි ඔයාට ඒක හරියටම වැඩ කරයිද කියලා ශුවර් කරන්න බෑ. මේ වගේ වෙලාවක VCS ගැන දැනුමක් නැති කෙනෙක් කරන්නේ මුලු සෝස් කෝඩ් එකේම කොපි එකක් තියාගැනීම. වැඩේ වැරදුනොත් ඒ කොපි එක පාවිච්චි කරනවා. ඒත් VCS හරහා අපිට මුල් සෝස් කෝඩ් එකටම ඕන වෙනස්කමක් කරලා වැඩේ අවුල් ගියොත් එහෙම ආයි කලින් තත්වෙට ගන්න පුලුවන්. ප්‍රධානම දේ තමයි නැවත නැවත කොපි කරමින් බැකප් කරනකොට යනවා වගේ මහා විශාල ඉඩ ප්‍රමාණයක් VCS එකක් භාවිතයේදී වැය නොවීමයි. ඒවගේම විශාල ප්‍රොජෙක්ට් එකක් කරනවනම්, කොපි කර කර ඉන්න යන කාලයත් ඉතුරු වෙනවා.

    මොකද VCS එකෙන් ඉතාම පිලිවලට වෙනස්කම් ගැන සටහන් තබාගන්න නිසා.

    VCS වල ඉතිහාසය
    GIT කියන්නේ ලෝකේ පලවෙනි VCS එක නෙවෙයි. ඒත් එදා මෙදා තුර භාවිතා උන VCS හැම එකකම වගේ මූලිකම අරමුණ තමයි Source Code කලමණාකරනය. ක්‍රමලේකණ ශිල්පීනට Source Code එකට කාලයත් සමග කරන වෙනස්කම් සහ අලුතෙන් එකතු කරන උපාංග/විශේෂාංග ගැන සටහන් තියාගැනීම. මේ නිසා අපි VCS වලට ගොඩක් වෙලාවට SCM - Source Code Management Tool එකක් කියනවා.

    VCS ඉතිහාසය බලනකොට ප්‍රධාන VCS කීපයක් දැකගන්න පුලුවන්.
    1. Source Code Control System (SCCS) - 1972 : Closed Source - Unix Only - තනි ෆයිල් එකක පමණක් වෙනස්කම් සැසදීමට ඉඩ ලබාදෙන ලදී.
    2. Revision Control System (RCS) - 1982 : Open Source - Cross Platform - තනි ෆයිල් එකක පමණක් වෙනස්කම් සැසදීමට ඉඩ ලබාදෙන ලදී.
    3. Concurrent Versions System (CVS) - 1986 : Open Source - ෆයිල් රාශියක් සමග වැඩ කිරීමට හැක. එක පුද්ගලයෙකුට වඩා ගණනකට, එකම වෙලාවෙ, එකම ෆයිල් එක සමග වැඩ කල හැක.
    4. Apache Subversion (SVN) - 2000 : Open Source - Directory ඇතුලේ වෙන වෙනස්කමද සටහන් කර ගැනීමට හැකියාව ලබාදෙන ලදී. CVS වල මෙය නොතිබුනි. එසේම text නොවන ෆයිල්ද හැසිරවීමට හැකිය. SVN, GIT එනකම්ම ලෝකේ ජනප්‍රියම VCS එක ලෙස තිබ්බා.
    5. BitKeeper SCM - 2000 : Closed Source, propriety - මේකේ Community Version එක නොමිලේ ලබා දෙන ලදී. Distributed Version Control පහසුකම පැවතිනි.
    BitKeeper SCM හි වැදගත්කම තමයි ඒක Closed Source උනත් 2002-2005 වෙනකම්ම ලිනක්ස් කර්නල් එකේ Source Code එක Manage කරන්න ඒක භාවිතා කිරීමයි. මේකේ ප්‍රශ්නේ උනේ Linux Kernal එක Open Source වීමයි. Community Version එක නොමිලේ ලබාදෙන එක නතර කලොත් මොකද වෙන්නේ කියලා ගොඩ දෙනෙක්ට චකිතයක් තිබුනා. මොකද ලිනක්ස් කියන්නේ නිදහස්, විවෘත සංකල්පය ඉහලින් තියාගෙන හිටිය නිසා. මිනිස්සු කිව්වේ බැරි වෙලාවත් BitKeeper සමාගම Community Version එක නොමිලේ දෙන එක නතර කලොත් මොකද කරන්නේ කියලා.

    කරුමේ කියන්නේ 2005 දී ඒ හැම භයානක හීනයක්ම සැබෑ උනා. BitKeeper සමාගම Community Version එක නොමිළේ ලබාදෙන එක නතර කලා. මේක ලිනක්ස් වලටත් බලපෑවා. මෙතන වැදගත්ම දේ තමයි BitKeeper SCM එක කවදාවත්ම SVN තරම්වත් CVS තරම්වත් ජනප්‍රිය වෙලා තිබුනේ නෑ. ඒත් GIT නිර්මාණය වෙන්න ප්‍රධානම හේතුව උනේ BitKeeper SCM එක සහ ලිනක්ස් අතර තිබ්බ සම්බන්ධය.

    2005 April වලදී BitKeeper SCM එක නොමිලේ දීම නතර කලාට පස්සේ ඒක කාල වකවානුවේම තමයි GIT උපත ලැබුවේ. GIT නිර්මාණය කලේ Linus Torvalds විසින්. 2005 BitKeeper SCM නොමිලේ දෙන එක නතර කලාම ලිනක්ස් කර්නල් එකේ Source Code එක කලමණාකරණයට අලුත් VCS එකක් අවශ්‍ය උනා. Linus Torvalds ඒ වෙනකොට තිබුන එකම VCS එකකටවත් කැමති උනේ නෑ. ඒත් ඔහු BitKeeper SCM එකේ සමහර ගුණාංග වලට කැමති උනා. ඉතින් Linus Torvalds හිතුවා ඔහුට ඊටත් වඩා හොද VCS එකක් හදන්න පුලුවන් කියලා. ඉතින් එයා මුල ඉදලම අලුත්ම VCS එකක් හැදුවා. ඉතින් 2005 April වල Git උපත ලැබුවා.

    GIT සම්පූර්ණයෙන්ම Open Source ලෙස Linus Torvalds නිකුත් කලා. ඒකේ Distributed Version Control පහසුකම තියෙනවා. මේ ගැන අපි ඉදිරි ලිපි වලදී කතා කරමු. ඒවගේම මේක ගොඩක් Platform එක්ක සහය දක්වනවා (Unix Like, Windows). ඒවගේම ඒ වෙනකම් තිබ්බ VCS වලට වඩා GIT ගොඩක් වේගවත්. සමහර අවස්ථා වලදී x100 වේගවත්. ඒවගේම data corruption වීම වලක්වන්න අනිත් VCS වලට වඩා ආරක්ෂක උපක්‍රම තියෙනවා.

    වැදගත්ම දේ තමයි Linus Torvalds හදපු මේ අලුත් VCS එකට ඔහු කරපු වෙනස්කම්, ගුණාංග, වැඩිදියුණුකිරීම් මාර ඉක්මනින් ජනප්‍රිය උනා. Git වල තියන පහසුකම් පාවිච්චි කරලා බලපු මිනිස්සු තේරුම් ගත්තා මේ Version Control System එකේ තියන බලය, වැදගත්කම, පහසුව. ඒ නිසා ලෝකේ වටේම හිතාගන්න බැරි විදියට මේ VCS එක කලින් තිබ්බ හැම VCS එකක්ම වගේ පරාද කරලා ජනප්‍රිය උනා.

    මේ ගැන නිල වශයෙන් සටහනක් නැති උනාට Git යොදාගෙන Version Control කරන Project Host කරන්න 2008 දී හදපු GitHub, 2011 වෙනකොට Git Repository මිලියන දෙකකුත්, පරිශීලකයන් මිලියනයකුත් ලබාගන්න සමත් උනා. මේ වෙනකම් හදපු කිසිම VCS එකක් ඒ තරම් ඉක්මනට ජනප්‍රිය වෙලා නෑ.

    ඊලග ලිපියෙන් අපි Distributed Version Control ඇතුලු තවත් දේවල් ගැන කතා කරමු. මේ ලිපි පෙල අවසාන වෙනකොට Github, Bit-bucket වගේ සේවාවක තමන්ගේ project host කරන්නත්, git භාවිතයෙන් version control කරන ආකාරයත්, වෙනස්කම් සමග වැඩ කරන ආකාරයත් සහ Github වැනි සේවා වල තියෙන Open Source Project වලට දායක වෙන ආකාරයත් ඔයාලට ඉගෙන ගන්න පුලුවන්.

     
    ගුණසේකර, S.J Dilanka සහ Gihan මෙම අදහසට කැමතියි.
  2. AB_top10Slides
    Offline

    AB_top10Slides නවක සාමාජික

    Joined:
    Nov 16, 2016
    අදහස්:
    23
    Likes Received:
    17
    Great!, As a Programmer, you need to know and engage into more and more these kinds of things.
    join and contribute your knowledge to the communities, try to satisfy your clients with the newest technologies.
    dont live with one technology stack, you should gain the skills to evaluate several tech stacks and apply the best to your solutions.
    dedicate at least .5 hour a day to seek new things and help others.

     
  3. ගුණසේකර
    Offline

    ගුණසේකර සාමාජික contributor - VIP

    Joined:
    Apr 21, 2016
    අදහස්:
    161
    Likes Received:
    234
    Sthuthiy! Ithuru lipith langadima danna :)

     
    IP_Man මෙම අදහසට කැමතියි.
  4. sasitha
    Offline

    sasitha ක්‍රියාකාරී සාමාජික

    Joined:
    Jul 28, 2015
    අදහස්:
    200
    Likes Received:
    102
    kalekin kuppiye wadagath post ekak kiyewwe.

     
  5. 0xEDD1E
    Offline

    0xEDD1E ප්‍රකට සාමාජික

    Joined:
    Apr 14, 2016
    අදහස්:
    436
    Likes Received:
    697
    aniwa

     




Loading...

Share This Page