38
Hệ thống quản lý phiên bản dự án phần mềm Subversion Danh sách thành viên: Nguyễn Khắc Trọng Phạm Duy Sơn Dương Văn Tuyến

Hệ thống quản lý phiên bản dự án phần mềm Subversion

  • Upload
    bart

  • View
    72

  • Download
    1

Embed Size (px)

DESCRIPTION

Hệ thống quản lý phiên bản dự án phần mềm Subversion. Danh sách thành viên : Nguyễn Khắc Trọng Phạm Duy Sơn Dương Văn Tuyến. Nội dung đề tài. Giới thiệu về Subversion. So sánh Subversion với các hệ thống quản lý phiên bản khác như CVS, GIT, … - PowerPoint PPT Presentation

Citation preview

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.