Centralized සහ Distributed source control systems කියන්නේ මොනවාද

Centralized සහ Distributed source control systems කියන්නේ මොනවාද

1186
0
SHARE

අපි බොහෝ දෙනෙක් දන්නා දෙයක් , එහෙම නැත්නම් අහලා තියෙන දෙයක් තමයි Git කියන්නේ. එතකොට Git කියන්නේ source control system එකක් කියලත් අපිට idea එකක් තිබෙනවා. ඉතින් අද ලිපියෙන් කතා කරන්න යන්නේ මෙන්න මේ Git සහ Team Foundation Version Control (TFVC) පිළිබඳවයි.

මධ්යගත මූලාශ්ර පාලනය – centralized source control

මුලින්ම අපි බලමු centralized source controlling සරලවම තේරුම් ගන්න.

මෙහිදී ඇත්තටම වෙන්නේ අපේ project එකේ common copy එකක් යම් server එකක තියෙනවා, මේ project එකට commit කිරීමේ පහසුකම ඕනෑම කෙනෙකුට ලැබෙනවා. මේ Committing කියන process එකේදී project එකේ තියෙන වෙනස්කම් වෙනත් ඕනෑම කෙනෙකුට බලාගන්න පුළුවන්. වෙනස්කම් කියන්නේ ප්‍රධාන repository එකේ තියෙන අඩුපාඩුවක් නිවැරදි කිරීමක් හෝ අලුතින් දෙයක් එකතු කිරීමක් යම්කිසි කෙනෙක් සිදු කලොත් අන්න ඒ වෙනස්කම අපිට පැහැදිලිව අඳුරගන්න හැකියාව තියෙනවා.මේ හැම change එකක්ම project එකේ අලුත් version එකක් විදියට manage කරන්න centralized-version control system වලට හැකියාව තියෙනවා. මේ නිසා අපිට වෙන වෙනම copies අපි ළඟ තියාගන්න අවශ්‍ය වෙන්නේ නැහැ.මේ විදියට version control system එකක් භාවිතා කරන එක ඕනෑම කෙනෙක්ට ලොකුම පහසුවක් වෙනවා. Team Foundation Version Control (TFVC), CVS, Subversion (or SVN), සහ  Perforce කියන්නේ මෙන්න මේ විදියට අපිට භාවිතා කරන්න පුළුවන් centralized version control system කිහිපයක්.

සාමාන්‍යයෙන් අපි centralized source control system එකක් භාවිතා කරනවා නම් අපේ changes add කරන කාර්යය අපි කරන්නේ එක් පිළිවෙලකට,
මුලින්ම updated copy එකක් අරගන්නවා central server එකෙන්, මොකද ඒ copy එකේ අනිත් හැමෝම කරපු changes අඩංගු වෙන නිසා.
මීළඟට අපේ changes add කරලා ඒවා එක්ක මුළු project එකම හරියට වැඩ කරනවද කියලා බලනවා
එහෙමනම් ඒ changes ටික Check in කරනවා main server එකට.

Distributed source control Systems

කාලය ගෙවෙත්දී බොහොමයක් දෙනා Distributed source control Systems භාවිතා කරන්න පටන් අරන් තියෙනවා.  Git, Mercurial, සහ Bazaar කියන්නේ ඒවාට හොඳම උදාහරණ කිහිපයක්.මේවායේ අපි කලින් කතා කරපු centralized-version control system වල වගේ main copy එකක් තියාගන්නේ නැහැ. ඒ වෙනුවට අපි කරන්නේ project එක locally clone කරගන්නවා.එතකොට අපි ළඟ සම්පුර්ණ project එකම තියෙනවා. වෙනත් developer කෙනෙක් project එකට changes කලොත් ඒවා අපේ local copy එකට අරගන්න පුළුවන්, “pulling” කියන method එකෙන්, සරලවම අලුත් changes ටික අපි අපේ project එකට ඇදලා අරගන්නවා. එතකොට අපි මොනාහරි change එකක් කලොත් ඒක original project එකට add කරන්න පුළුවන් “pushing” කියන method එකෙන්. ඇත්තටම අපිට කියන්න බැහැ Distributed source control Systems එකක main copy එකක් නැහැ කියලා. මෙහිදී වෙනස තමයි හැම change එකකටම අදාලව වෙන වෙනම copies නැතිවීම.

දැන් අපි බලමු මේ Distributed source control Systems එකක centralized source control system එකට සාපේක්ෂව තියෙන වාසි සහ අවාසි මොනවද කියලා.

වාසි
Hard Drive එකේ අපේ project එක තියෙන නිසා remote server එකට changes කරනවට වඩා ගොඩක් පහසුයි.
අලුත් changes විශාල ප්‍රමාණයක් වුනත් එක්වරම පහසුවෙන් commit කිරීමේ හැකියාව.
pushing සහ pulling හැරුනම අනෙක් ඕනෑම edit එකක් change එකක් internet connection එකක් නැතුව කිරීමේ පහසුකම.
හැම කෙනෙක් ළඟම full project එකේ copy එකක් තිබෙන නිසා අපි කරන වෙනස්කම් review කරගැනීමේ පහසුකම.

අවාසි
ඇත්තටම centralized source control system එකට සාපේක්ෂව අවාසි නැති තරම්. නමුත් project එකට ලොකු history එකක් තියෙනවා නම් එහෙම නැත්නම් changes විශාල ප්‍රමාණයක් සිදු කරලා තියෙනවා නම් මේ ඔක්කොම locally download කරන්න ගියාම අපේ hard drive එකේ space එක ටිකක් වැඩියෙන් යන එක අවාසියක් විදියට සලකන්න පුළුවන්.

මේ ලිපියේ මුලින්ම අපි centralized සහ Distributed source control systems වලට උදාහරණ කිහිපයක් දුන්නා, මේ අතරින් Git සහ Team Foundation Version Control ගැන තවත් විස්තරාත්මකව දැනගනිමු.

Git (distributed)

Git කියන්නේ distributed version control system එකක්, මෙහිදී කලින් කතා කලා වගේ හැම developer කෙනෙක් ලඟම main project එකේ copy එකක් locally තියෙනවා. ඒ copy එකට කරන changes main එකට push කරන්න පුළුවන් වගේම ඒ changes තවත් developer කෙනෙක්ට pull කරලා එයා ළඟ තියෙන copy එකට අරගන්න පුළුවන්. මේ විදියට changes main project එකට add කරත්දී main project එකෙන් අලුත් branch එකක් තමන්ටම හදාගෙන ඒකට add කරන්න පුළුවන්. මේ විදියට හදන branches වල එකිනෙකට වෙනස් changes තියෙන්න පුළුවන් වගේම මේ ඕනෑම branch එකකට commit කිරීමේ හැකියාව තියෙනවා.

Team Foundation Version Control (TFVC-centralized)

Team Foundation Version Control (TFVC) කියන්නේ centralized version control system එකක්. මෙහිදී සාමාන්‍යයෙන් developer ළඟ main project එකේ මුළු history එකටම අදාළ project එක නැහැ. developer කරන්නේ එයාගේ changes ටික main server එකේ තියෙන project එකට එකතු කරන එක.

TFVC හි කාර්ය ආකෘති දෙකක් තියෙනවා.
Server workspaces – මෙහිදී main server එකට changes add කරන්න කලින් team එකේ අය එකතු වෙලා මේ changes review කරනවා. main server එකට connect වෙලා තමයි මේ වැඩේ කරන්නේ.

Local workspaces – මෙහිදී හැම developer කෙනෙක්ම project එකේ latest version එකේ copy එකක් අරගෙන locally changes කරනවා, මින් පස්සේ මේ changes main server එකට add කරත්දී conflicts resolve කරනවා.

Comments

comments

NO COMMENTS

LEAVE A REPLY