SVN仓库目录结构规划.doc_第1页
SVN仓库目录结构规划.doc_第2页
SVN仓库目录结构规划.doc_第3页
SVN仓库目录结构规划.doc_第4页
SVN仓库目录结构规划.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

_SVN仓库目录结构规划服务器 2010-06-10 16:08:31 阅读109 评论0 字号:大中小订阅 SVN仓库的负责人规划好仓库的目录结构。推荐的目录结构如下图所示。仓库的一级目录只有两个,分别为code和doc。其中,doc主要用来放置先期的文档,code主要用来放置工程的代码,也可以包含后期的文档。仓库的二级目录只可以是branch与trunk两个目录,分别存放主干与分支。trunk目录下直接存放工程文件。branch目录下包括一些子目录分别对应各个分支。图 2.4从SVN仓库中取出代码时,一定不要把整个仓库取出来,而应该只取出trunk目录,或只取出branch下的某个分支目录(比如上图中的svn:codebranchxw_051206)。一个项目会有多个人共同合作开发完成。基本流程是:l 各开发成员建立自己的分支,并在此分支上开发;l 各开发成员把分支合并到主干上并形成较为稳定的版本;l 各个成员重新从主干上建立新的分支,在此分支上开发(即回到第一步)l 循环往复,直到工程结束。下面我用一个例子来说明合作开发的基本流程。现在xb与lzj两个开发人员要共同开发一个工程onlytest,其这个工程的主干的SVN仓库地址如下图。图 2.5xb与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.txt1.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号。2.10选择需要合并的版本然后直接点击merge进行合并,你也可以通过dry run来看是不是两者之间有差异。由于没有其它人修改主干,所以合并的很顺利,下图是xb_051115与主干合并后的结果。合并完毕之后,由xb对主干进行提交。图 2.11合并后,主干上的test_SVN.txt1.2.3.3 lzj将lzj_051129分支合并到主干,解决冲突 xb合并完毕之后,lzj要将他的分支合并到主干上去,方法同上。但是由于xb已经修改过主干,所以产生了冲突,会弹出一个冲突对话框。双击对话框中的产生冲突的文件名,就可以调出工具对此文件进行合并,下图是我们用merge工具显示的界面。图 2.12l 首先比较第一个窗口与第二个窗口,把结果修改合并到第二个窗口。l 然后确保光标处于第二个窗口时,点击上图中红色圈圈所示的按钮。这样会把第二个窗口的内容全部复制到第三个容口。之后保存,退出。l 然后在工程目录上点右键,进行SVN-Resolved。这样会删除无用的临时文件。l 最后提交所作的修改,并添加详细的注释。中的标签 与CVS不同,使用SVN时不用专门为目录添加标签,因为SVN也对目录进行版本管理。我们在提交时写好注释(比如重要的版本提交时使用051201之类的日期作为开头),就可以通过注释来查找比较重要的目录版本号,相当于CVS或VSS中的标签。另外,每个工程都会有一个版本说明文件,通过此文件可以查找关键版本。你可以重命名、移动或删除你的文件或文件夹,但请使用SVN进行这些操作,否则之前的版本信息会丢失。使用SVN删除、移动与重命名文件夹的方法是在文件/文件夹上点右键进行SVN操作,或直接在资源浏览器中使用右键拖放(会弹出SVN选项)。文件的删除、移动与重命名之前,必须保证工作目录是最新的版本;进行这些操作之后,需要进行提交。1.3.3 版本的回退 在代码的编写过程中,难免会有不尽人意的地方,你也许需要回退到某一个版本,但是在这个过程中可能有一些文件你想保留,也有一些文件你不想保留,这就牵扯到很复杂的版本管理过程,在这里给大家推荐几种方法。1. 若是你编辑了工程,在没有提交的前提下,你想放弃这些修改,你可以直接选择revert就可以更新到工程的最新的版本。2. 若是你想退回到某一个版本,你就可以直接选择update to reversion如图,这样我们就可以把我们的版本回退到你选中的版本去,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因为SVN的版本控制还是在最新的主干上。我们需要update并解决冲突。 3. 你可以直接选择revert changes from this revision如图,这样的话你可以直接解决冲突并提交。不过这种方法的不足是,你新建的文件都没有了,整个工程都回退到之前的版本了。4. 我推荐的一种方法是,直接export一个你需要的版本,然后用你export的版本覆盖你的最新的版本,这样你就可以不丢失你新建的文件,同时获得head的SVN控制文件。图 13每个工程会有很多个小模块,当某个模块达到稳定的时候,你就需要提交一次,以免写下个模块代码的时候出现不可恢复的错误。每一次提交需要前,需要通过pclint检查,保证是一个编译没有错误的版本。当提交比较稳定的版本的时候,同时要修改你的版本号。1.3.5 版本说明文件 版本说明文件为xml表格,可用excel编辑,它会记录下关键的版本信息。版本说明文件内容如下表。发布版本是指用户对外公布的版本号,后文中有详细描述;Revision是SVN内部的工程文件夹的版本号。一个发布版本可能对应多个Revision:发布版本Revisio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论