查看原文
其他

使用Keil的SVCS+GIT管理软件版本

The following article is from 嵌入式案例Show Author 潜言


来源:嵌入式案例Show



01

前言


SVCS(softwate version control system),即软件版本管理系统,是keil集成的软件版本管理工具。首先更正上篇中关于keil的版本管理系统在μVersion5版本以后才有,实际上在μVersion2,主菜单内就有了SVCS,只是在接触Git前没有去关注它。

μVersion5的SVCS在菜单中也未曾改变。

02

添加SVCS的git模板


1)点击SVCS-Configure Software Version Controll。

2)导入git模板。在keil安装目录Keil_v5\UV4下自带一个英文的模板:GIT.SVCS,到日即可。

导入后在SVCS菜单下多出了一系列git操作的菜单。

git模板可以自己编译,在网上也可以找到中文版的,效果如下。如有需要可以添加小编好友索取。

导入SVCS模板后后新增的这些菜单项,每一条对于的一个git语句。本质上就是给不熟悉命令行操作的开发者提供一个UI界面,将常用的指令做成了菜单形式。详细对应如下:

注意本篇是建立在上篇《使用git管理嵌入式软件版本》 windows环境已将搭建好的前提下操作的。

03

编译运行


下面一个简单的开发过程作为示例。假如新的需求开发改动了uart.c和_uart.h。

1)查看修改的内容

选中uart.c,选择菜单中的“查看差异Blame ‘uart.c’”,在output的窗口中可以看到修改点。用于确认修改点。

diff --git a/src/uart.C b/src/uart.Cindex 3ec85cb..01ede88 100644--- a/src/uart.C+++ b/src/uart.C@@ -45,7 +45,7 @@ void uart_Init GPIO_InitStructure.GPIO_Mode = UART1_TXD_GPIO_MODE; GPIO_Init(UART1_TXD_GPIO_PORT, &GPIO_InitStructure); - USART_InitStructure.USART_BaudRate = 115200;+ USART_InitStructure.USART_BaudRate = 38400; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No;

同样可以查看uart.h的改动内容。

2)查看工作区状态

选择菜单中的“GIT状态”,在output的窗口中可以看到

git statusOn branch masterYour branch is ahead of 'origin/master' by 2 commits.(use "git push" to publish your local commits)Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory)modified: ../inc/_uart.Hmodified: ../src/uart.CUntracked files:(use "git add <file>..." to include in what will be committed)../Libraries/./../SVCS/no changes added to commit (use "git add" and/or "git commit -a")

可以看到在已改动的两个文件_uart.H和 uart.C。

3)提交修改点到暂存区

选中uart.c,选择菜单中的“GIT增加修改的文件(添加修改的文件) ‘uart.c’”。同样提交_uart.h。再次查看GIT状态。

git statusOn branch masterYour branch is ahead of 'origin/master' by 2 commits. (use "git push" to publish your local commits)Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: ../inc/_uart.H modified: ../src/uart.CUntracked files: (use "git add <file>..." to include in what will be committed) ../Libraries/ ./ ../SVCS/

可以看到,此时_uart.H和uart.C已经在暂存区了。

4)提交版本

选择菜单中的“(提交版本)(将增加的文件提交到本地的版本库)”。弹出的菜单中填写本次提交的内容注释。

此时再Git Staus,这两个文件已经不在暂存区了,因为已经提交到版本上了。

5)推送版本到远程服务器

选择菜单中的“(发布版本)将更改的文件工程推送到服务器”。

推送版本到远程服务器不仅有利于备份代码,也是多人合作开发必须操作。

在Gitee的首页上能看到推送的内容。

正常的一次开发提交通过以上几步就完成了。在真实的开发过程中,可能会反复的修改一个文件,反复的提交到暂存区又取消,这样就要灵活使用git add、git reset、git checkout、git stash等等指令。Keil中可以根据实际的使用需求来自行修改.scvs模板文件。

/ The End /

必知必会基础知识第 1 弹


实用STM32的串口控制平台的实现(建议收藏)


干货 | 如何选择微控制器?


常见的嵌入式web服务器有哪些?


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存