版本管理-SVN本地版本管理

0. 引言

     使用工具是人与动物的基本区别,善用工具能够极大的提升效率,下降错误率。在PC软件领域,有不少好用的工具,这些工具都是软件工程重要的基础设施。然而,嵌入式开发,在其代码数量上,不少时候因为没有那些层出不穷的框架和库,因此代码量相比小不少,另外嵌入式的运行载体决定了不可能运行大规模的程序,目标文件通常都是kB为单位,即便带操做系统的嵌入式开发,目标代码也常是MB级别。服务器

     这些因素致使不少嵌入式开发者对代码工具不过重视,直接手动管理代码,习惯性的改动一次copy一个版本,几天下来,要不是文件以日期为单位,天天一版或者一天有好几个后缀版本,要不是就一路v1,v2,v3后缀备份… 一段时间备份下来,这些东西只有本身能够看懂,可是一旦放下几天,某天又回头要追溯哪一个问题时,因为没有修改记录等缘由,变得及其困难,本身也看不懂了。虽然公司都有服务器,可是涉及到多人开发状况下,服务器提交都很是慎重,通常的是作出一个阶段性成果或者一个模块测试以后才往服务器合并。大部分时间都是本地开发,一周往服务器commit一两次。最终致使本机硬盘快速消耗,代码依然很难追述到某个节点,尤为为一些验证和尝试工做而新开的版本,这些尝试其实颇有价值,可是最终被大量备份文件淹没了,当硬盘快爆了的时候每每都是把全部备份所有删掉,项目赶得急,根本无暇顾及那些有意义的研究和备份。框架

    其实这些均可以在本机用版本管理软件很好的解决,本文就说说单机版的版本管理。作PC软件的能够绕过,服务器仓库不受地点限制,机器故障几率基本为零,比单机强多了,作嵌入式的朋友,或入行不深的学生和爱好者能够看看本文,毕竟经验之谈。工具

1.SVN本地版本管理

1.1 下载安装Tortoise SVN测试

单机版本管理,Tortoise SVN就足够了,若是多人合做项目,固然就直接使用Visual SVN 了,主要就是配置Visual SVN Server,都是傻瓜式的安装,再也不赘述。(本文只讨论Windows平台)操作系统

1.2  代码管理基础操做3d

A. 新建代码仓库版本控制

一、新建文件夹,目录和文件夹名称最好都用英文;blog

二、打开文件夹,在空白处按下右键;资源

三、在弹出的菜单中选择“Tortoise SVN - Create repository here”;开发

四、弹出对话框,提示建立成功,并自动在文件夹中建立了目录结构;

五、在资源文件夹内,右键“Tortoise SVN – Repo browser”,而后复制代码仓库地址URL,其实就是本地的文件夹地址加了file://。

 

B.  导入项目(把项目加入代码库)

一、打开已有的项目文件夹,在空白处按下鼠标右键;

二、在弹出的菜单中选择“TortoiseSVN - Import”;

三、选择导入路径file:///F:/repository,填写备注信息,点击“OK”开始导入;

四、导入完成后会弹出提示,能够查看导入的文件,点击“OK”,完成导入。

 

C. 创建工做目录(检出)

一、新建工做目录文件夹,在空白处按下鼠标右键;

二、在弹出的菜单中选择“SVN Checkout...”;

三、在弹出的对话框中选择库目录、工做目录,点击“OK”开始检出;

四、弹出详细信息对话框,导出完成后,点击“OK”。

能够看到工做目录中多出了版本管理库中的文件,这些文件就是有版本控制的,对这些文件的修改能够保存到库,也能够从库里恢复旧版本的文件。

 

 

通常的,也能够在任何地方点击右键,在弹出的菜单中选择“SVN Checkout...”,而后修改检出的文件的保存路径。

 

D. 更新工做目录

1.对于单机版本管理来讲,这个问题基本能够忽略,除非你在好几个地方作了check out而后提交了修改。而后某一天你又到了你经常使用的目录下工做,而后提交修改,可是这时候你用的版本已经不是最新的了。

2.工做前更新文件是一个好习惯,一般在你对工做目录进行修改前,为保证你的文件是最新的,须要进行更新操做;

3. 在工做目录空白处点击鼠标右键,选择“SVN Update”;

4. 会弹出对话框开始更新,并显示更新了哪些内容,库版本是多少。下面就是我在另一个目录提交了版本,而后到workSpace目录下,又提交一次update。

 

E.提交工做目录(Commit、check in)

一、本地目录作了修改,而后须要提交到代码库;

二、在工做目录内的空白处或者目录上点击鼠标右键,选择“SVN Commit”;

三、会弹出对话框,能够输入备注信息,方便之后查看历史记录。

    显示将要提交哪些文件,是什么类型改动,点击“OK”开始提交,好比下图是我在文件夹内加了add2.txt文件,而后提交显示add类型改动;

四、弹出对话框显示提交进度,完成后点击“OK”完成。

 

若不是新加文件,而是修改了已有文件而后提交,会显示文件修改。

 

F.版本回滚

      问题来了,最前面的引言说的,如何退回某一个版本。

     1.为了试验更加清晰。咱们先提交一次,作个记录。提交时候的log写为:测试版本回滚v7.

 

     2.修改文件,提交第二次,log为test changed 1。

 

 

   3. 修改文件,提交第三次。

 

  4. 版本回滚到v7.

   目前版本9,能够回到版本7。根据版本回滚.

 

 

固然,通常的都是根据提交时候的注释回滚。找到某一版本,而后右键选择Update item to revision 或者直接Check Out,二者效果是同样的。

 

 

G. 如何新加一个文件

以下,新建了两个文件。

 

而后新加文件添加到代码仓库,告诉SVN,这两个小弟也帮忙看管着。

右键“TortoiseSVN - add”,弹出对话框选择要添加的文件。若直接在文件上单击右键添加,那么这两个文件会直接添加到版本库,不会给出提示。

 

添加成功以后会红色提示,表示和版本库不一致,没有同步。提交以后,红色感叹号会变成绿色钩的标记。

提交以后,这两个文件就在代码仓库有了一个备份,下次check out时候就会有这两个文件。

一样道理,要删除文件也必须commit,让SVN知道再也不须要管理这个文件,下次check out时候他才不会出现这个文件。

可是,若是按照版原本找,仍是能够在当前版本找到被删除的文件的,这就是版本管理软件的优点。

 

若要取消刚才添加的文件,直接revert 便可,和添加的逻辑恰好相反。

相关文章
相关标签/搜索