Showing posts with label git. Show all posts
Showing posts with label git. Show all posts

Thursday, April 21, 2011

Git Tutorial

Git And GitHub For Windows.

နည္းနည္းေလးစမ္းသပ္ခ်င္သူမ်ားအတြက္။ လြယ္ပါတယ္။ လိုက္လုပ္ၾကည္႕လုိ႕ရပါတယ္။ ဘာမွဆံုးရွံဳးစရာမရိွပါဘူး။ ကိုယ္တုိင္လည္း လုပ္ၾကည္႕ျပီးပါျပီ။ အိုေကပါတယ္။

http://help.github.com/win-set-up-git/

Git ကို နည္းနည္းေလးထပ္ဖတ္ျပီး developer ေတြအတြက္ ထပ္ေရးပါဦးမယ္။ အေပၚက လင္႔ခ္မွာေတာ႔ repository ေဆာက္ျပီး commit လုပ္တာတစ္ခုကိုျပထားပါတယ္။

Regards,
Zero

Related Posts:

Friday, April 15, 2011

CVS to Git migration

ဟိုတစ္ေလာက အလုပ္ထဲမွာ source code repository ကို CVS ကေန Git ကိုေျပာင္းမယ္ဆိုျပီး Git server setup လုပ္ထားတာၾကာပါျပီ ။ ထပ္ရတယ့္ project အသစ္ေတြသာ Git မွာသုံးျပီး အေဟာင္းေတြ CVS ကေန မေျပာင္းျဖစ္ေသးဘူး။ Project တာဝန္ခံက ဒီ project migrate ေပးပါလို႕ဆိုမွ က်ေနာ္က ေျပာင္းေပးရတာ။ သူတို႕လည္း ပ်င္းလို႕ထင္တယ္ ။ ဘယ္သူမွ လာမေျပာၾကဘူး။ ဒီေန႕ေတာ့ အရင္ Project အေဟာင္းေလးခု migrate လုပ္ျဖစ္တယ္။ လြယ္လြယ္ကူကူပါပဲ။ Git က CVS ကို ေကာင္းေကာင္းနားလည္းပါတယ္။ သူ႕ဟာသူ ဝင္ checkout လုပ္ျပီး fetch သြားတာပဲ။ က်ေနာ္တို႕ သိဖို႕လိုတာဆိုလို႕ CVS server IP ၊ CVS accessible account တစ္ခု၊ CVSROOT path နဲ႕ migrate လုပ္ခ်င္တယ့္ CVS နာမည္ပဲလိုပါတယ္။

1. ပထမဆုံး လိုအပ္တယ့္ tools ေတြအရင္စစ္ရမယ္။ cvsimport က git-core ထဲမွာ ပါေလ့ရွိပါတယ္။ ဒါေပမယ့္ distro ကျပန္ျပီး package ေတြခြဲထားတာမ်ိဳးဆိုရင္ မပါတတ္ပါဘူး။ Fedora မွာဆို git-core အျပင္ git-cvs ကိုသက္သက္ install ျပန္လုပ္ရပါတယ္။ ကို install ထားတယ့္ git-core ထဲမွာ cvsimport ပါမပါကို git help -a နဲ႕ ၾကည့္လို႕ရပါတယ္။ Support လုပ္တယ့္ git command ေတြထြက္လာပါလိမ့္မယ္။ မ်က္စိေနာက္ရင္ grep နဲ႕ filter လုပ္ၾကည့္ေပါ့။ git help -a | grep cvsimport လို႕ filter လုပ္ၾကည့္ပါ။

2. ေနာက္တစ္ခုက cvsps command line tools ရွိမရွိၾကည့္ပါ။ CVS patchset generate လုပ္တယ့္ tools ပါ။ Patchset ဆိုတာကေတာ့ change history ေတြ၊ revision information ေတြ၊ commit history ေတြကို CVS log ကေန patch set ေျပာင္းေပးပါတယ္။ ( ပက္စက္တယ္ေပါ့ဗ်ာ )။

3. CVS server ကို login လုပ္မယ့္ credential ကို အရင္ prepare လုပ္ထားရေအာင္ ။ ဒီအဆင့္က optional ပါ။ ဒါေပမယ့္ CVS ထဲက repo တစ္ခုမက ခဏခဏ migrate လုပ္ဖို႕လိုရင္ေတာ့ ဒီအဆင့္ေလးကို ေက်ာ္မသြားတာေကာင္းပါတယ္။ Command syntax ကေတာ့

CVSROOT=:cvs-login-method:cvs-user-name@cvs.server.name:/path/to/CVS/root cvs login

ဒီမွာ cvs-login-method ၊ username ၊ servername ၊ CVSROOT path ေတြကို အစားထိုးရပါမယ္။ ဥပမာ cvs-login-method က pserver၊ username က ngar ၊ Servername / IP က 1.2.3.4 ၊ CVSROOT path က /share/cvs ဆိုပါေတာ့၊ ဒါဆို ဒီလိုျဖစ္သြားပါမယ္ ။

CVSROOT=:pserver:ngar@1.2.3.4:/share/cvs cvs login


ဒါဆို password ႐ိုက္ဖို႕ prompt လုပ္လိမ့္မယ္။ Password ႐ိုက္လိုက္ရင္ password ကို hash လုပ္ျပီး ကိုယ့္ $HOME ေအာက္မွာ .cvspass ဆိုတယ့္ file နဲ႕ သြားသိမ္းပါလိမ့္မယ္။

4. ေနာက္ဆုံး အေနနဲ႕ ( အခုမွ စတာပါ တကယ္က ) CVS ကို Git အေနနဲ႕ import လုပ္ပါတယ္။ Command syntax ကေတာ့

git cvsimport -v -d :cvs-login-method:username@servername:/CVSROOT cvs-module-name -C output-directory-name.git

ခုနက အေပၚမွာ ေျပာခဲ့တယ့္ server ေပၚက zephyr ဆိုတယ့္ CVS module ကို import လုပ္ခ်င္တာဆိုရင္ command က ဒီလိုျဖစ္သြားပါမယ္။

git cvsimport -v -d :pserver:ngar@1.2.3.4:/share/cvs zephyr -C zephyr.git

ဒါဆို CVS ကေန checkout လုပ္ျပီး Git repo အျဖစ္နဲ႕ import လုပ္ပါလိမ့္မယ္။ ဇိုက္ဖာရ္ ေဒါ့ ဂစ္ ဆိုျပီး Git repo တစ္ခုရပါလိမ့္မယ္။

အမွန္က ဒါကို Server ကို master အေနနဲ႕ ျပန္ push လုပ္ေပးရပါတယ္။ က်ေနာ္လို ငပ်င္းကေတာ့ တစ္ခါ import လုပ္ တစ္ခါ push လုပ္၊ ႏွစ္ခါ အခ်ိန္ကုန္မခံပါဘူး။ Server ေပၚကေနပဲ import လုပ္ပါတယ္။ ျပီးရင္ repo directory (e.g: zephyr.git) ရဲ့ေအာက္မွာရွိတယ့္ .git ထဲက file ေတြ folder ေတြကို ကူးထုတ္လိုက္ပါတယ္။ .git ( dot git ) ရဲ့ေအာက္မွာ Description တို႕ ၊ head တို႕ ၊ hook တို႕၊ refs တို႕ နဲ႕အတူ branches ေတြရွိပါတယ္။ ဒါေတြ အျပင္ကို ကူးထုတ္လိုက္ရင္ တျခား git client တစ္ခုကေန clone/pull လို႕ရပါျပီ။

Divinity


Nearly Related Post:

Saturday, October 16, 2010

Git :)

Java အေၾကာင္းေရးထားတာေတြအကုန္ျပန္ဖတ္ျပီး Main Theme ေပ်ာက္ေနတာကိုသတိထားမိပါတယ္။

အခုတေလာ အခ်ိန္ကလည္း မဟားတရား အားေနေတာ႔ ဘာမွမစဥ္းစားဘဲ Java ေရးလုိ႕ရတယ္ဆိုတဲ႔ အယူအဆကို အေကာင္အထည္ေဖာ္တဲ႔အေနနဲ႕ ... သင္ခန္းစာေတြပါေရးပါမယ္။ တကယ္ေတာ႔ကိုယ္႔ဘာသာကိုယ္ဖတ္ရတာ ျမန္ပါတယ္။ ျပန္ေရးရတာ အေတာ္ေလးပ်င္းဖုိ႕ေကာင္းပါတယ္။Teach yourself Java in 12 seconds
sysout + ctrl+Space in eclipse.
then it will show : System.out.println();
Modify it a bit as following :
System.out.println("Hello Dying World!!!!");
run...

အဲဒါမ်ိဳးေတြေတာ႔မေရးခ်င္ပါဘူး။

ေလးနက္တဲ႔အေၾကာင္းအရာေတြကိုလည္း မ်ားမ်ားေရးခ်င္ပါတယ္။ မ်ားမ်ားဖတ္ေလေလ မေရးျဖစ္ေလေလျဖစ္ေနတဲ႔အတြက္ ...ၾကိဳးစားျပီးပံုမွန္ေရးပါမယ္။

ဒီေန႕လည္း Git ကို စမ္းၾကည္႕ပါတယ္။ Git ကိုမေျပာခင္ Version Control System ေတြအေၾကာင္းနည္းနည္းေျပာခ်င္ပါတယ္။ ကေလးေေတြသိေအာင္လုိ႕ပါ။

Source Code ေတြကို တစ္ေနရာမွာသိမ္းထားျပီး Version ခြဲထားတာမ်ိဳးပါ။ ဥပမာဆိုပါေတာ႔ ..ကြ်န္ေတာ္အခုေရးေနတဲ႔ Dynamic Patcher ဆိုတဲ႔ Project ကို ကြ်န္ေတာ္စေရးတယ္။ Version Controlတစ္ခုခုမွာ import လုပ္ထားလိုက္တယ္။ ေနာက္ေန႕ၾကရင္ ဆက္ေရးတယ္။ ျပီးရင္ ပထမေန႕မွာ import လုပ္ထားတဲ႔ Version Control System ထဲကို ထပ္ထည္႕တယ္ဆိုပါေတာ႔။

Version Control System မွာက Dynamic Patcher verion 1, version 2 ဆိုျပီး ႏွစ္ခုျဖစ္ေနပါမယ္။
ေနာက္ထပ္ ကြ်န္ေတာ္႔သူငယ္ခ်င္းတစ္ေယာက္ကလည္း ဆက္ေရးျပီး Update လုပ္လိုက္ရင္ version 3 ျဖစ္သြားပါမယ္။ ကြ်န္ေတာ္က ဆက္ေရးခ်င္ရင္ အဲဒီ version 3 ကို check out ျပန္လုပ္ျပီး ဆက္ေရးရံုပါပဲ။

Version Control System ထဲကို သြင္းရင္ check in လုပ္တယ္လုိ႕ေျပာပါတယ္။ ျပန္ထုတ္ရန္ check out လုပ္တယ္လုိ႕ေျပာၾကပါတယ္။ Team နဲ႕ေရးတဲ႔အခါ source code ေတြကို merge လုပ္ဖုိ႕ update လုပ္ဖုိ႕ေတြအတြက္ Version Control System ကမရိွမျဖစ္လုိပါတယ္။

အခုလုပ္ေနတဲ႔ရံုးမွာေတာ႔ Borland Star Team သံုးပါတယ္။ အင္မတန္ အဆင္ေျပပါတယ္။ အရင္ရံုးမွာလည္း CVS ရိွပါတယ္။ အဆင္ေျပပါတယ္။

Version Control System ေတြရဲ႕ အားသာခ်က္က ဥပမာ ကြ်န္ေတာ္က Dynamic Patcher ကိုေရးျပီးသြားလုိ႕ customer က CR(Change Request) လုပ္ရင္ Main Project ကို မထိပဲ Branch ခြဲထုတ္ျပီး Branch မွာ Update လုပ္၊ Enhance လုပ္ျပီးမွ testing လုပ္လို႕ရပါတယ္။ ေနာက္ဆံုး အားလံုးအိုေကျပီဆုိမွ Main Branch နဲ႕ျပန္ေပါင္းျပီး Software ကို ျပန္ျပီး Deploy လုပ္လုိက္ရံုပါပဲ။

Git ကေတာ႔ Open Source ျဖစ္ပါတယ္။ Linux Kernel ကို ေရာ Adroid ေတြရဲ႕ source ေတြေရာ အဲဒီမွာ host လုပ္ထားပံုေထာက္ရင္ စိတ္ခ်ရပါတယ္လို႕ေျပာျပီးသားျဖစ္ေနပါျပီ။ အလကားရတာ မ်ားမ်ားသံုးတာဟာ Java သမားတိုင္းရဲ႕တာ၀န္ျဖစ္ပါတယ္။ အလကားရတာကို crash ျဖစ္တဲ႔အထိ သံုးပစ္ရပါမယ္။ ... Java ေရးတဲ႔သူတုိင္းဟာ အသစ္ကို စိန္ေခၚႏိုင္တဲ႔သူမ်ိဳးျဖစ္ရပါမယ္။ အေျပာင္းအလဲကိုမေၾကာက္ပါနဲ႕။ ေနာက္ဆံုးေပၚနည္းေတြဟာ လူေတြကို လြယ္ေအာင္လုပ္ေပးတာပါ။ ပိုျပီးလြယ္သထက္လြယ္လာပါတယ္။ ....

Eclipse အတြက္ စျပီးေရးၾကတဲ႔သူေတြကို အထူးေက်းဇူးတင္ပါတယ္။ အခုလည္း Git အတြက္ plug in ေလးကူးလုိက္ရံုပါပဲ။ Java ေရးတယ္ဆိုေတာ႔ Eclipse ေနာက္ဆံုးဗားရွင္းျဖစ္တဲ႔ Helios ကို သိမယ္ထင္ပါတယ္။ မသိရင္ လည္း update လုပ္လုိက္ပါ။ အဲဒီမွာ Market Place ပါလာပါတယ္။ iTunes ရဲ႕ app store အထာမ်ိဳးပါပဲ။ ပိုျပီး ရွာရေဖြရလြယ္ပါတယ္။ Git plug in ေလးသြင္းလုိက္ရံုပါပဲ။

အခုဒီလိုေလးေျပာေတာ႔ ဒါကိုမ်ားေရးေနတယ္လုိ႕ထင္ပါမယ္။ အားေနရင္ တျခားနည္းလမ္းေတြနဲ႕လည္းၾကိဳးစားၾကည္႕ပါ။ :P။

Git Plug in install လုပ္ျပီးရင္ ထံုးစံအတိုင္း Eclipse ကို restart လုပ္ပါ။ ျပီးရင္ ကိုယ္ေရးထားတဲ႔ project ကိုright click ေထာက္ျပီး share လုိက္ပါ။ Git repo မွာ share လုိက္ရံုပါပဲ။

That's all for Git integration in eclipse and basic knowledge for Version Control System .



Regards_zeroDivdedByZeroIsZero

public void callWarning(){
callWarningHelper();
}

public callWarningHelper implements DebtOfStarBucks throws notEnoughCashException(){
try{
System.out.println("
.........By the way, bro ................Didn't post for a long time meh ...
Don't be lazy as me :)
I will post a lot this month and next month :)");
//PURPOSELY THROWS EXCEPTION TO MAKE AN INFINITE LOOP
throw new Exception();
}catch(Exception exceptionIsNotError){
logger.error(exceptionIsNotError.toString());
callWarning();
}
}