源代码管理软件,SVN的使用技巧(图文)(1)来源: 发布时间:星期五, 2008年9月19日 浏览:955次 评论:0
SVN是我们常用的版本控制和代码管理软件 程序员编写程序的过程中,每个程序都会有很多不同的版本,这就需要程序员很好的管理代码,在需要的时间可以取出需要的版本,并且每个版本都有一个完整的说明。 我们使用Sub Version(简称SVN)作为版本管理工具。这里着重介绍SVN作为跨平台的多人协作使用方法。在多个程序员管理同一段代码的过程中,版本的管理显得尤为重要,使用SVN可以方便的进行分支、合并,记录下所有的版本。 基本配置在开始某项软件、文档的开发与撰写时,首先由配置管理负责人建立SVN仓库、用户名及其权限,并通知相关人员SVN仓库地址、SVN仓库负责人。 SVN仓库的负责人把工程的tsvn:logminisize设置为1,以便强制注释。设置方法:在你的工程文件夹右键->属性中,进入Subversion标签,选中tsvn: logminisize,确保复选框recursive选中,然后点击Set按钮把它的值设为1,其意思是指提交的注释最短长度为一个字。如图: 图 2.1 软件配置l 忽略文件 在SVN 的[Setting]的[General]中,设置需要忽略的文件以便忽略掉一些临时的、无用的文件,常被忽略的文件有*.opt *.ncb *.suo *.plg *.pch *.idb *.pdb *.scc *.obj Debug Release *.o *.bin *.out *.ilk *.aps debug release *.clw *.bak。每个程序员可以根据自己的需要进行修改忽略文件,上面只是使用VC++与Tornado编程时常用的一些忽略文件。 图 2.2 以上说的忽略文件是指全局的忽略文件。SVN还能在特定的目录中指定需要忽略的文件。忽略文件支持通配符。 l 合并比较工具 在Merge Tool中可以选择用来合并的工具,强烈推荐用Araxis Merge。在[Setting]->[Diff]中填入"C:\Program Files\Araxis\Araxis Merge v6.5\Merge.exe";在[Setting]->[Merge]的选项中,填入"C:\Program Files\Araxis\Araxis Merge v6.5\Merge.exe" %theirs %mine %merged ;其中"C:\Program Files\Araxis\Araxis Merge v6.5\Merge.exe"是指合并工具的路径,%theirs %mine %merged分别指..将要合并到主干的分支,主干,及合并后的结果。 图 2.3 仓库目录结构SVN仓库的负责人规划好仓库的目录结构。推荐的目录结构如下图所示。 仓库的一级目录只有两个,分别为code和doc。其中,doc主要用来放置先期的文档,code主要用来放置工程的代码,也可以包含后期的文档。 仓库的二级目录只可以是branch与trunk两个目录,分别存放主干与分支。trunk目录下直接存放工程文件。branch目录下包括一些子目录分别对应各个分支。
图 2.4 从SVN仓库中取出代码时,一定不要把整个仓库取出来,而应该只取出trunk目录,或只取出branch下的某个分支目录(比如上图中的svn:\\code\branch\xw_051206)。 一个项目会有多个人共同合作开发完成。基本流程是: l 各开发成员建立自己的分支,并在此分支上开发; l 各开发成员把分支合并到主干上并形成较为稳定的版本; l 各个成员重新从主干上建立新的分支,在此分支上开发(即回到第一步) l 循环往复,直到工程结束。 下面我用一个例子来说明合作开发的基本流程。 现在xb与lzj两个开发人员要共同开发一个工程onlytest,其这个工程的主干的SVN仓库地址如下图。
图 2.5 xb与lzj分别在onlytest这个工程中建立两个分支,分别为xb _051115和lz_051115。 在这里分支命名要采用[姓名缩写_6个数的日期_后缀(可选)]的形式,比如xb_051208_1,xb_051212之类的。创建完分支后我们可以看到这个工程的目录结构如下图所示:
图 2.6分支目录 建完之后, xb和lzj分别在本地取出对应的分支进行开发。 当程序到达一个比较稳定的阶段,就需要把分支合并到主干上,下面讲述一下合并的流程。 在本节中继续使用上一节中所示的工程与SVN仓库讲解。 1.2.3.1 xb与lzj分别修改自己分支上的代码现在,主干上的test_SVN.txt是空文档。 由xb与lzj修改提交后,两个分支中test_SVN.txt分别如下两图所示:
图 2.7 xb_051129分支下的test_SVN.txt
图 2.8 lzj_051129分支下的test_SVN.txt 1.2.3.2 xb将xb_051129分支合并到主干xb先把主干check out到本地。然后在主干的目录上右键选择svn->merge,弹出如下窗口:
图 2.9合并对话框 此对话框的含义是把From指定的分支版本到To指定的分支版本之间的差异合并到主干上。 在这里分支选的是xb_051129。版本号的选定方法是点击From中的Show Log,在Log窗口中按住Ctrl键,点击选择”made a copy”之上的那个版本,以及最顶上的那个版本,如图 2.11所示。然后点击确定回到上图中的对话框,会自动填写From与To中的Revision号。
然后直接点击merge进行合并,你也可以通过dry run来看是不是两者之间有差异。由于没有其它人修改主干,所以合并的很顺利,下图是xb_051115与主干合并后的结果。合并完毕之后,由xb对主干进行提交。 图 2.11合并后,主干上的test_SVN.txt 1.2.3.3 lzj将lzj_051129分支合并到主干,解决冲突 xb合并完毕之后,lzj要将他的分支合并到主干上去,方法同上。但是由于xb已经修改过主干,所以产生了冲突,会弹出一个冲突对话框。双击对话框中的产生冲突的文件名,就可以调出工具对此文件进行合并,下图是我们用merge工具显示的界面。 1
相关文章
读者评论
发表评论 |