Transcript

PowerPoint Presentation

H thng qun l phin bn d n phn mm SubversionDanh sch thnh vin:Nguyn Khc TrngPhm Duy SnDng Vn TuynNi dung tiGii thiu v Subversion.So snh Subversion vi cc h thng qun l phin bn khc nh CVS, GIT, Cc Subversion Server v Subversion Client.Gii thiu v cng c Subversive trong phn mm m ngun m Eclipse.ng dng Subversion vo qun l mt d n phn mm.Tng kt, nh gi, trin vng v hng pht trin ca Subversion v cng c Subsersive.Gii thiu SubversionSubversion (vit tt SVN) l mt h thng qun l version (version control system - VCS) c gii thiu vo nm 2000 bi cng ty CollabNet (http://subversion.tigris.org). y l h thng h tr lm vic theo nhm rt hiu qu.Khi mt nhm lm vic trn cng mt project, vic nhiu ngi cng chnh sa ni dung ca mt file l iu khng th trnh khi. SVN cung cp cc chc nng c th thc hin vic ny mt cch n gin v an ton.

Subversion c thit k vi mc ch thay th h thng qun l phin bn Concurrent Versioning System (CVS) c v c nhiu nhc im. Subversion c th c s dng qun l bt c h thng phin bn no.Subversion l h thng qun l source code tp trung (Centralized).Subversion l h thng qun l phin bn mnh m, hu dng, v linh hot.Subversion qun l tp tin v th mc theo thi gian.

SVN ging nh mt h thng file server m cc client c th download v upload file mt cch bnh thng. im t bit ca SVN l n lu li tt c nhng g thay i trn h thng file: file no b thay i lc no, thay i nh th no, v ai thay i n. SVN cng cho php recover li nhng version c mt cch chnh xc. Cc chc nng ny gip cho vic lm vic nhm tr nn hiu qu v an ton hn rt nhiu.Thng thng, client v server kt ni thng qua mng LAN hoc Internet. Client v server c th cng chy trn mt my nu SVN c nhim v theo vt lch s ca d n do cc nh pht trin phn mm pht trin trong ni b.Subversion h tr kh nhiu giao thc kt ni gia client v server. V d bn c th dng cc giao thc ca ng dng web nh http:// hoc https://, hay cc giao thc ca svn nh svn:// hoc svn+ssh://, hoc nu phn mm client v server ci chung trn 1 my th c th dng file://. Vic cho php server h tr giao thc no ph thuc vo lc cu hnh.

Mt s khi nim c bnSubversion da trn m hnh qun l tp trung kiu client/server. M hnh ny c 2 khi nim c bn: Repository v Working Copies.Repository t server l ni tp trung qun l cc phin bn ca d n phn mm.Cc th mc v tp tin ca d n c t vo trong kho lu tr trung tm ny. N ging nh mt my ch tp tin thng thng, ngoi tr vic n ghi li c mi thng tin thay i theo thi gian ca h thng tp tin v th mc.

Repository cho php khi phc li phin bn c ca d liu, hoc kim tra lch s ca d liu thay i nh th no.

Working Copies t client l cc phin bn lm vic copy ca cc tp tin trong repository.Repository th ch c mt, trong khi working copies c th c nhiu (tng ng vi repository ).

M hnh Client/ServerCheckout: l khi nim dng ch mt thnh vin ca d n client s ly mt phin bn copy ca cc file thuc project trn server v my cc b.Commit: thnh vin ca d n a cc thay i trn cc file ca project ti my client ln server.Update: khi mt thnh vin mun cp nht nhng thay i ca cc file thuc thnh vin khc trn Repository v my cc b ca mnh.Merge: nhiu thnh vin cng tin hnh cp nht trn mt tp tin.Revision qun l cc phin bn khc nhau, Subversion a ra khi nim revision. Ni mt cch n gin, h thng c th qun l c s thay i ca cc tp tin, mi tp tin s c dng Name-Revision.

V d: cnpm.doc-rev1 v cnpm.doc-rev2 l 2 revision ca tp tin cnpm.doc.RevisionC mi ln commit, ton b Repository s c mt con s revision mi (mi con s ny l duy nht v s revision sau ln hn revision trc).D ch thay i mt tp tin sau khi commit, nhng ton b h thng tp tin ca Repository s c cng mt con s revision.

Minh ha v cc revision ca mt RepositorySo snh Subversion vi cc h thng qun l phin bn khc1. CVS (Concurrent Versions System)CVS (Concurrent Versions System) tng t nh SVN l m hnh m hnh qun l source code tp trung (Centralized).CVS ra i nm 1986, l h thng qun l phin bn u tin, sau n s bng n ca SVN. SVN bn cht vn l CVS c ci tin, nhng c nhiu cng c h tr hn.C CVS v SVN u c t tng chung v cch lm vic chung gia cc thnh vin theo m hnh (qun l source code tp trung) nh sau:

Atomic Commit : c l s ci thin ln nht ca SVN t CVS l b sung vic commit ca cc thnh vin c gi l Atomic Commit. Atomic Commit cho php mi commit t thnh vin c upate y hoc khng c g c, iu ny rt c ngha khi my ch b treo trong lc commit. Vi CVS khi my ch b treo hay kt ni b trc trc th vic commit c th b d dang, khng y .Vi SVN, cc commit c th c roll-back li trng thi trc , trong khi CVS th khng th.SVN tin li hn CVS trong vic i tn v di chuyn cc tp tin, th mc. Vi SVN cc tp tin c i tn hoc loi b vn mang theo y history v meta-data ca n trc . Trong khi vi CVS th tp tin b i tn hoc di chuyn s b mt history trc .CVS cng khng th y bt c nhng thay i mi n Repository cha m ch c th y ln Repository con ca n, trong khi mt s cng c SVN c kh nng lm vic ny.C hai s dng giao thc c quyn qua mt kt ni SSH m bo an ton thng tin ang c truyn i trn mng. SVN b sung WebDAV DeltaV, giao thc ny c da trn HTTP v HTTPS cung cp cho ngi dng mt ty chn kt ni vi cc SVN qua web.V mt c bn c 2 u hot ng nh nhau: tt c source code s c t trn 1 server trung tm, mi thnh vin u lm vic trn source code .

So snh Subversion vi cc phng php qun l phin bn khc2. GITGIT l mt phng php qun l phin bn theo hng phn tn (Distributed), hon ton tri ngc vi phng php qun l tp trung ca SVN v CVS.D n phn mm s dng GIT qun l khng cn c chung mt Repository lu tr. M mi thnh vin ca d n s c mt Repository my local ca h.

Tt c thao tc lm vic vi Git u trn my ca local, local repository, khi quyt nh a nhng thay i ln server ta ch cn mt thao tc push n ln server.Cc thnh vin trong d n vn c th share cc thay i cho nhau, bng cch commit hoc update trc tip t my ca h m khng phi thng qua repository gc trn server (thng qua share ssh cho nhau). V d nhin l mi thao tc u mang theo thng tin history vi Git.Git c nh gi l kh s dng hn CVS v SVN.

3. Cc h thng qun l phin bn khcMercurial: l h thng qun l phin bn m ngun m, ging nh GIT, nhng n gin hn nhiu. Mercurial c thit k s dng cho cc d n ln.Bazzar: l h thng qun l phin bn phn tn, nh GIT v Mercurial, c nh gi l kh thn thin vi ngi dng, c kh nng qun l bt k d n no.LibreSource: l mt Web Portal dng qun l nhiu d n cng tc vi nhau, c thit k cho nhng ngi dng khng cn c nhiu hiu bit v k thut, cng ngh.Monotone: l mt nhnh nh ca h thng qun l phn tn, t ph bin hn cc h thng khc.SVN Server v SVN ClientSVN ServerCc SVN Server c th c t trn my local hoc cc my ch trn Internet. C kh nhiu phn mm v dch v min ph cho SVN Server.Phn mm: CollabNet Subversion Server, VisualSVN Server, Dch v: SourceForge.net, Google Code, Beanstalk

Cc SVN Server v SVN Client2. SVN ClientCc phn mm SVN client c th chia lm 3 loi chnh: stand-alone clients, desktop-integrated clients v IDE plug-in clients.Stand-alone clients l loi ng nh mt ng dng c lp, ngha l khng ph thuc vo phn mm no khc.Desktop-intergrated clients l loi c tch hp vo cc phn mm desktop. V d nh TortoiseSVN tch hp vo Windows File Explorer, mi khi bn click chut phi trong mn hnh ca Windows File Explorer s thy cc chc nng ca SVN client.IDE plug-in clients l loi tch hp vo cc mi trng lp trnh (IDE). V d Subversive c tch hp vo Eclipse.

TortoiseSVN

SubversiveDanh sch mt s SVN Client:Subversive: mt dng plug-in trong Eclipse.AnkhSVN: l mt phn mm ph, b sung kh nng truy cp Subversion cho mi trng lp trnh Visual Studio .NET.Insurrection: giao din Web cho Subversion.JSVN: chng trnh khch vit bng Java.svnX: chng trnh khch cho Mac OS.TortoiseSVN: l mt phn mm lm vic trn nn Windows Explorer.WebSVN: l mt giao din Web cho Subversion, vit bng PHPGii thiu cng c SubversiveSubversive l mt dng plug-in ca Eclipse. Mc nh Eclipse khng tch hp sn Subversive, v vy s dng Subversive bn phi ci t thm plug-in ny vo Eclipse.Ci t Subversive bng chc nng update ca Eclipse hoc c th download file nn cha Subversive sau add vo Eclipse.

Tng kt - nh giSubversion l h thng qun l phin bn c s dng ph bin hin nay. Nhng li ch m Subversion mang li l rt to ln: gip thc y tin xy dng v pht trin d n, pht huy kh nng lm vic theo nhm, d dng sao lu v phc hi cc phin bn ca d n, m bo an ton thng tin d liu.Subversive l mt plug-in ca Eclipse mt phn mm m ngun m h tr rt nhiu ngn ng khc nhau. S dng Eclipse cc nh pht trin c th tch hp thm nhiu cng c khc to nn mt b cng c hon chnh m khng cn dng n bt c mt mi trng pht trin ring no khc.Eclipse c s h tr ng o ca cng ng m ngun m, gip n lun tc c cp nht nhng cng ngh mi, c th chy trn bt k mi trng no, c tnh m rng v ty bin rt cao. V th, Subversive cng c tha hng nhng li th .Subversive h tr y cc giao thc v cc tnh nng cho Subversion. Cng c ny s ngy cng c ci tin p ng ngy cng tt hn na yu cu qun l phin bn ca cc d n phn mm.