SVN版本控制说明.doc

上传人:牧羊曲112 文档编号:4220131 上传时间:2023-04-10 格式:DOC 页数:11 大小:3.72MB
返回 下载 相关 举报
SVN版本控制说明.doc_第1页
第1页 / 共11页
SVN版本控制说明.doc_第2页
第2页 / 共11页
SVN版本控制说明.doc_第3页
第3页 / 共11页
SVN版本控制说明.doc_第4页
第4页 / 共11页
SVN版本控制说明.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《SVN版本控制说明.doc》由会员分享,可在线阅读,更多相关《SVN版本控制说明.doc(11页珍藏版)》请在三一办公上搜索。

1、SVN版本控制一、 版本库目录结构SVN版本库创建三个目录,如: trunk 、branches 和 tags 。trunk 为主干版本,主干版本要随时可以将应用部署上线发布出去, 而不能在主干版本上做任何代码的修改。 branches是分支目录, 存放并行开发的项目代码, 可建立多个分支版本, 在不同的分支上作不同的模块的编码。 tags 目录存放 trunk 某特定版本的快照,当 trunk 有新版本的合并时,都应该在 tags 目录下建立一个 trunk 当前版本的备份(特别是在大改前和大改后的版本必须做好备份并加以备注说明) 。具体目录结构如下图:SVN版本库目录结构二、 导入本地项目

2、到版本库中如果版本库中已保存了相关项目文件, 则直接把相关项目检出到本地即可。 若版本库中没有相关项目,则按以下操作:在版本库中 trunk 文件夹右击点“检出( Checkout )”,检出操作在弹出窗口选定本地路径点“确定”把 trunk 文件夹检出到指定本地目录,检出弹出窗口把本地项目拷贝到当前目录的 trunk 文件夹中,然后右击 trunk 文件夹点“SVN提交(SVNCommit)”即可把本地项目导入到版本库中。三、 建立分支或标记先把版本库 trunk 中的项目 checkout 到本地, 再右击本地的 trunk 文件夹到 TortoiseSVN-分支/ 标记( branch/

3、tag ),建立分支 / 标记在弹出窗口中选择版本库中相关目录,如 branches 中的 mybranch1.0 目录,把最新版本项目拷贝到 mybranch1.0 目录下,点“确定”即可完成分支的创建。建立分支我们可以根据自己的需要创建多个分支,建议可以先创建两个基本的分支,比如mybranch1.0 和 mybranch2.0 。mybranch1.0 用来做项目日常维护, 如修改 bug,小功能优化等工作。 mybranch2.0 用来做相关数据库结构变化对应的代码修改的工作,数据库结构一旦发生变化理论上是不能还原回来的(一旦还原,将会丢失最新的数据) ,因此针对数据库结构变化所作的代

4、码修改也不可能进行还原,因此这些代码应该单独建立一个分支来进行编码,而不能放在与功能相关的分支中进行编码。若当有其他大改,如大模块的增加或修改,这时就要针对各模块另外再创建相应多的分支进行并行开发。另外还有一种方式,应当尽量避免一个分支合并多次,分支的作用一般为了解决 bug,一旦 bug 对应结束了,分支的使命就结束了,以后再出现其他的问题,应当重新建立分支,这样就不会出现多次合并的问题了。标记( tag)从本质上来说也是一个分支,创建 tag 跟创建分支是一样的操作过程。 Tag中存放了 trunk 中每个版本的快照,且不对其进行修改。四、 分支的修改与合并项目代码的修改, 只允许对分支版

5、本进行修改, 而不允许在 trunk 或 tags 中进行修改。在一个分支中修改该分支的文件、 commit 或 update 文件均不会对其他分支版本造成任何影响,因此你只需要关心当前分支的版本变化就行。分支每 commit 一次,版本库就会创建一个新的分支版本。当分支 commit 后,我们需要把当前分支的版本合并到主干版本中,或把主干中最新版本合并到当前版本。以分支合并到主干为例,在本地 trunk 文件夹右击 Tortoise SVN- 合并(Merge),合并分支在弹出窗口中可以见到有 3 种合并类型,分别为“合并一个范围的版本” 、“复兴合并”和“合并两个不同的树” 。三种合并类型

6、合并一个范围的版本: 将分支的特定版本范围的修改合并到主干上。 合并的源 URL填写的是要合并的分支的 URL,待合并的版本范围如果为空,则指的是合并分支上所有的版本,即自从分支创建以来到分支当前最新版本的所有演变。 如果只是选择其中一个版本, 或者几个版本, 那么就表示只是将制定的 n 个版本的变化合并到主干上。 如果只是选择其中一个版本,那么表示只是选择那个版本的修改,之前或之后的修改将不被采纳。合并一个范围的版本复兴合并: 复兴合并可以理解为是第一种合并类型的一种特例, 在复兴合并中, 主干可以理解为是自从开创分支之后没有任何修改, 而分支是经过修改的, 而且合并中分支是没有版本选择的。

7、 经过复兴合并, 分支中所有的修改都会合并到主干中, 合并的结果将使得分支和主干一模一样,从而可以删除分支。复兴合并合并两个不同的树:此类型与前两种类型不同,第一种类型可以选择分支合并的版本,主干不能选择版本; 第二种类型是主干和分支都不能选择合并的版本; 而这种类型则是无论是主干还是分支都可以选择合并的版本, 即可以选择过去的一个主干版本与分支的某个版本进行合并, 比如可以合并范围从主干的上次合并的版本开始到分支上最新的版本结束, 如果是第一次合并,则从主干创建分支的版本开始,所以每次合并要做好说明,在日志中体现,不然忘记了下次再合并就有点麻烦。起始 URL即选择主干目录的 URL(应当和当

8、前工作副本的 URL一致)。结束 URL为选择要合并的分支的 URL。起始和结束的版本是指,一般起始版本应当找到最后一次同步时的版本,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些内容合并进主干的话,也可以选择一个合并点。合并两个不同的树选中其中一种方式点“下一条( next )”,填写相关 url 及要合并的版本号,再点“下一条(next )”,这时可以点“测试合并( test merge )”测试看是否报错或有冲突,确定后点“合并( merge)”按钮进行合并。测试合并如果合并是发生冲突,会弹出提示框,可以点 “编辑冲突”按钮度相关文件进行

9、手动调整解决冲突,并按“解决”按钮完成本次冲突的编辑。当所有冲突解决后,点“确定”完成合并。合并冲突如果合并后的版本效果不满意,并且当前版本还没 commit 到版本库上,则可以通过Tortoise SVN-SVN 还原( Revert ),还原回当前合并前的版本。五、 版本还原之前提到, 通过 Tortoise SVN-SVN还原(Revert )可以还原所有未提交的修改或合并。但是如果修改或合并的内容已经 commit 了,可以通过以下方法进行还原:右击相关分支(或主干)到 Tortoise SVN- 现实日志( Show log ),在弹出窗口中可以看到该分支(或主干)的所有历史版本。右

10、击相关版本点“复原到此版本” ,即可把当前版本还原到指定版本,但所有版本记录并不会因此丢失。可以右击到 Tortoise SVN-SVN还原( Revert )来恢复成原来版本。若已commit ,可以通过以上方法还原到 commit 后的前一个版本来完成恢复。右击相关版本点“复原此版本做出的修改” ,可以把特定某个版本的变化复原回来。比如如果你曾经修改或合并了一个新的功能并 commit 到主干版本库上,后来你发现该功能有比较大的问题影响了系统正常运行且不能短时间内对其进行修复, 这时可以点 “复原此版本做出的修改” 把该功能相应的版本暂时撤销下来, 让系统先正常运行, 再对该功能进行修复。

11、版本还原但经本人实验“复原此版本做出的修改” 时似乎有些问题,复原时很容易会有冲突,如果复原大改的功能冲突可能会更多, 处理冲突时如果弄不好可能会出现一系列问题, 也很容易造成混乱。以下方法将会较好的解决冲突问题,减少混乱,前面提到, trunk 每次有新版本提交时都应该给新的版本创建一个快照, 并存放在 Tags目录下标记。比如现在 trunk 做了 4 次提交,版本号分别为 v100、v101 、v102、v103(同时 Tags 中有 4 个快照),现在我想把 v101 所修改的内容撤销, 那么我们只需拿出 v101 的前一个版本(即 v100 )的快照,将 trunk 版本与当前快照进

12、行合并,合并时只需合并 v101 后面的所有版本(即 v102、v103 ),这样就相当于撤销了 v101 所修改的内容,而且其他的修改均仍然存在。版本的恢复一般只是一种临时的维护措施, 我们可以把临时的版本发布出去, 但不需要把临时版本提交到版本库,以便造成混淆。六、 切换工作副本当创建了一个主干树并检出到本地副本时, 你当前操作的副本就是主干副本的内容, 任何操作会影响到主干的信息。 当你给主干创建一个新分支时, 可在弹出窗口中选中 “切换工作副本至新分支 / 标记”,这时分支创建后, 你当前的工作环境也会切换到新的分支中, 这是你修改当前分支的内容影响的是当前分支,而不会对主干有任何影响。切换副本选项如果在创建分支时没有选中 “切换工作副本至新分支 / 标记”,那么分支创建后你做在的工作副本仍然是原来的副本。如果你现在想切换到新的分支副本中,右击当前副本到Tortoise SVN- 切换( Switch ),切换工作副本在弹出窗口中选择你要切换的分支的 URL再点“确定” 即可完成切换。 在多个分支并行开发的情况下,切换操作可以让你方便的在不同副本当中进行切换。切换的副本的 URL

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号