《SVN版本控制工具介绍报告.docx》由会员分享,可在线阅读,更多相关《SVN版本控制工具介绍报告.docx(15页珍藏版)》请在第壹文秘上搜索。
1、老板RedHalSoftware的同意,让他投入这个专案,而且没有时间限制。COlIabNet雇用了Karl和BenCOIlinS-SUSSman,从5月份起先具体设计。由于GregSlein和ColIabNet的BrianBehlendorf和JaSOnRobbinS作了恰当的推动,SUbVerSiOn很快吸引了个活跃的开发人员社区。这说明白很多人有相同的受制于CVS的阅历,他们对最终有机会对它做点什么表示欢迎。最初的设计团队设定r几个简洁的目标。他们并不想在版木限制方法论上有新突破。他们只想修补CVS。他们确定SUbVerSiOn应当与CYS相像,保留相同的开发模型,但不更制CVS最明显的
2、缺点。虽然它不肯定是CVS的完全的替代品,它应当和CVS足够象,从而任何CYS用户可以不费什么力气的转换过来。经过14个月的编码,在2001年8月31号,Subversion可以“自我寄生”TO就是说,SUbVerSion开发人员停止运用CYS管理SUbVerSion的源代码,起先运用SUbVerSiOn代替.虽然COUabNel发起了这个项目,而且仍旧支助一大部分的作(它为一些专职的SUbVerSion开发人员发薪水)。但是SUbVerSion像大部分开放源码的项目一样运作,由一个松散透亮,激励能者多劳的规则管理。COnabNet的版权许可证和DebianFSG完全兼容。换句话说,任何人可以
3、免费下载,修改,按自己的意愿重新分发Subversion,而不必得到来自COuabNet或其他任何人的许可。2009年11月,Subversion被ApacheIneUbator专案所接收。2010年1月,正式成为APaChe软件基金会的个顶级专案。*只能设置书目的访问权限,无法设置单个文件的访问权限。(目前可以通过协助模块比如WandiSCOaccesscontrol实现单文件访问)*数据库为二进制格式,无法便利的利用其它软件读取数据库的内容。1.3SVNClient图形化软件Tot-1.oiseSVN在WindOWS特别受到欢迎的套Client软件,与资源管理器集成得相当不错,可以通过资源
4、管理器在文件或书目上用鼠标右键的菜单完成SVN的操作。TortoiseSVN官方站点Ankhsvn将subversion的操作集成进VisualStudio的SVNClient软件OAnkhsvn官方站点Subclipse将Subversion的操作集成进ECliPSe的SVNClient软件。Subclipse官方站点Subversive和Subclipse相同Subversive官方站点SCPluginMacOS卜.类似TortoiSeSYN的软件SCPlUgin官方站点SVNxMacOSX卜的一款CIient软件SVNX官方站点eSVNUnix卜类似TOrtoiSeSVN的软件eSVN官
5、方站点改自Perforce的SourceDepotoCVSCVS(ConcurrentVersionsSystem)代表协作版本系统或者并发版本系统,是种版本限制系统,便利软件的开发和运用者协同工作。很多开源或者自由软件项目都运用CVS作为其程序员之间的中心点,以便能够综合各程序员的改进和更改。这些项目包括:Gnome、KDE、GIMP,Wine等。CVS的运用获GNI通用公共许可证授权。这是个将组文件放在层次书目树中以保持同步的系统。人们可以从CVS服务器上更新他们的本地层次树副木,并将修改的结果或新文件发回:或者删除旧文件。CVS基于客户端/服务器结构(C/S)的行为使得其可容纳妥用户,构
6、成网络也很便利,这特性使得CYS成为位于不同地点的人同时处理数据文件(特殊是程序的源代码)时的首选。GITGit是一个由林纳斯托瓦兹(1.inusBenecIielTOrVaIdS)为了更好地管理IinUX内核开发而创立的分布式版本限制/软件配置管理软件。须要留意的是和GNUInteractiveTools,一个类似NOrIonCominander界面的文件管理器相区分。Git最初的开发动力来自于BilKeePer和Monotone0Git最初只是作为一个可以被其他前端比如Cogito或StGlT包装的后端而开发的。不过,后来Gil内核已经成熟到可以独立地用作版本限制。很多出名的软件都运用Gi
7、t来进行版本限制,其中有1.inux内核、X.Org服务器和O1.PC内核开发。对加入SYN版本限制的单个文件,快捷菜小(图3-6)。图3-6可以对当前的工作版木和SVN库里的版本进行比较,例如1.inUXkernel的.config配置文件(图3-7)。图3-73. 3Ubuntu10.04,svn吩咐安装svnclient吩咐:#apt-getinstallsubversionsvn帮助吩咐:#SVnhelpusage:svnoptionsargsSubversioncommand-1ineclient,version.Typesvnhelpsubcoforhelponaspecifics
8、ubcommand.Typesvn-versiontoseetheprogramversionandRAmodulesorsvn-version-quiettoseejusttheversionnumber.Mostsubcommandstakefileand/ordirectoryarguments,recursingonthedirectories.Ifnoargumentsaresuppliedtosuchacommand,itrecursesonthecurrentdirectory(inclusive)bydefault.AvaiIablesubcommands:addblame(p
9、raise,annotate,ann)catchangelist(cl)checkout(co)cleanupcommit(ci)copy(cp)delete(del,remove,Hn)diff(di)exporthelp(?,h)importinfolist(Is)locklogmergemergeinfomkdirmove(11,rename,ren)propdel(Pde1,p(i)propedit(pediI,pe)propget(pget,pg)proplist(plist,pl)propset(pset,ps)resolveresolvedrevertstatus(stat,st
10、)switch(sw)unlockupdate(up)Subversionisatoolforversioncontrol.4. SVN版本限制过程4.1 1.inuxkernel开发环境因为我习惯在Windowsxp中安装VMware.在VMware中安装1.inUX(这里运用UbUntU10.04),IbUntU中安装ssh,samba,nfs,tftp服务。tftp.nfs用于便利开发调试。samba用于Windows和1.inUX之间的文件共享,在Windows上映射网络驱动器。在Windowsxp上运用Sourceinsight来做1.inUXkernel开发,个人认为这是最好的方法
11、。用Putty,winscp,SecuCRT通过SSh登录到1.inux上编译。所以SVNServer安装在Windows上。Tips:1.inux上支持链接文件,通过Samba共享,Windows不支持链接文件,所以对1.inUXkernel源代码书目树,肯定要用1.inux上的svn吩咐进行版本限制,否则会编译出错(没有深化探讨,我认为是链接文件的缘由)。4. 2SVN版本限制基本流程SVNserverside建立好资料库,配置好资料库书目,用户名,组,各个组或者用户的访问权限。操作过程见2.2节。SVNclientside把源代码或者文档导入到SVNserverWSVnimport.ZE
12、yesight_SoCs:/.159:8443/svn/EyesightSoC,-minit说明:svnimport:svn导入吩咐./Eyesight_SoC:5IJ名称s:/.159:8443/svn/EyesightSoC,:svnServer资料库地址-m“init”:日志内容checkout到本地工作书目#SVncheckouts:/.159:8443/svn/Eyesight_SoC,./说明:svncheckout;svn签出吩咐。s:/.159:8443/svn/Eyesigh1._SoC,:SVnSerVer地址。./:当前书目。查看svn版本限制信息:rootgwenxy-
13、desktopzhomewenxysrcXi1inx/kernel/1in-.3#svninfoPath:.UR1.:s:/RepositoryRoot:s:/.62:8443/svn/wenxyRepositoryUUID:28bcbc35-b5f1-a44b-91de-c8eadf4cf8d3Revision:109NodeKind:directorySchedule:norma11.astChangedAuthor:wenxy1.astChangedRev:1091.astChangedDate:2012-071014:44:53+0800(Tue,10Jul2012)杳看工作版本和资料
14、库的变更:rootwenxy-desktop:/home/wenxy/src/Xi1inx/kernel/1inux.3#svnstIgreplM.config,old.versionM.configMinc1ude/generated/utsrelease.hMinclude/generated/autoconf.hMinclude/generated/compile.hMinclude/config/kernel.releaseMinciude/config/auto.confMinclude/config/tristate.confMModu1e.symversMmake,log?dri
15、vers/sbc1651/Modu1e.symversrootwenxy-desktophomewenxysrcXiIin说明:M表示修改过的文件。?表示新增加的文件,还没有加入版本限制,先用Svnadd吩咐加入相应的文件,然后用svncommit吩咐提交对应的文件。假如要对整个工程书目做提交前,肯定要先SVnUP同步更新下,已防止多人共同修改过同一个文件而冲突。向资料库新增加文件或者书目#SVnaddfile-nameordirectoryItsvncommitfile-nameordirectory-miiyourcomment”假如放弃本地修改的文件,复原到上一个版本firmfiIename# SVnup或者# SVnrevertfile-name提交修改的文件或者书目# SVncommitfilelfile2directory-mmtitle:modification”警告:提交到资料库中,至少要保证源代码能编译通过!这是最基木的