当前位置:网站首页>嵌入式开发:5个修订控制最佳实践
嵌入式开发:5个修订控制最佳实践
2022-07-01 15:42:00 【粤嵌教育】
每个嵌入式软件开发人员都应该使用版本控制系统。当某些东西已经损坏,并且无法撤消时,回到以前版本的能力是一个救命稻草。即使嵌入式开发人员认识并使用了修订控制系统,他们也应该使用一些最佳实践,以确保他们的修订控制系统得到充分利用。
最佳实践1–排除调试文件夹
调试文件夹包含编译器为源项目生成的所有目标文件、二进制文件和可执行文件。虽然团队可能想要保存这些文件的发布版本,但是将它们保存在修订控制系统中有几个缺点:
l 目标和可执行文件往往很大,会很快耗尽修订控制系统中的大量空间
l 当签出修订版时,开发人员应该使用他们自己的工具链进行构建,而不要依赖于在不同条件下编译的文件
l 未更改的文件可能处于不同的状态,并在执行软件时导致意外行为
由于这些原因以及其他原因,嵌入式开发人员应该避免将调试文件夹及其内容保存在修订控制系统中。
最佳实践2–使用“忽略”功能
大多数版本控制系统,如git或mercurial,都有忽略某些文件和文件类型的功能。使用这个特性的一个好方法是为存储库系统应该忽略并且不添加到存储库中的对象、可执行文件和其他文件创建一个忽略条目。关于如何忽略文件类型的确切方法将因版本控制系统的不同而不同。最好的方法是查阅用户手册。
最佳实践3–提交详细的提交日志
当开发人员将代码提交给一个存储库时,要么不添加注释,要么添加的注释很少,以至于无法确定代码库中实际发生了什么变化。拥有一份关于代码和变更内容的详细列表,对于在需要时回滚并找到以前的版本至关重要。无数次,软件中的某些东西中断了,嵌入式开发人员需要检查日志,并确定该特性是何时添加或修改的。如果没有详细的日志,这个过程就变成了一场耗时的噩梦。每个日志中都应该包含一些关键信息:
l 软件版本号
l 软件中添加了什么,添加在哪里
l 软件中修改了什么,哪些模块受到了影响
l 包含软件版本所有当前已知未解决问题的列表
l 任何有益的一般性评论
最佳实践4–经常同步
修订控制系统只有在使用它们的开发人员经常同步他们的软件库时才有用。几天或几周不提交代码无异于自找麻烦。如果开发人员没有足够频繁地获取最新的变更,也会出现同样的问题。他们的软件会很快与代码库的其他部分失去同步。因此,嵌入式开发人员需要确保经常进行同步。如果他们不这样做,他们可能会发现自己花费了太多的时间试图将他们的代码合并到主分支中。
最佳实践5–标签/分支正式发布
当有一个代码库将被发布到野外时,通过分支或标记为正式发布来分离该代码。将这些代码分开将使开发人员更容易返回并找到代码版本。标记或分支为正式版本的代码也不应该以任何方式被修改,而应该作为原始副本保存。
结论
遵循这几个最佳实践将有助于确保你不仅使用修订控制系统,还能从该系统中获得最大收益。如果使用得当,修订控制系统可以节省时间和精力,这些最佳实践将有助于确保嵌入式开发人员充分利用自己的系统。
边栏推荐
- Implementation of deploying redis sentry in k8s
- Go语学习笔记 - gorm使用 - 表增删改查 | Web框架Gin(八)
- C#/VB.NET 合并PDF文档
- 药品溯源夯实安全大堤
- HR面试:最常见的面试问题和技巧性答复
- 新出生的机器狗,打滚1小时后自己掌握走路,吴恩达开山大弟子最新成果
- 【Pygame实战】你说神奇不神奇?吃豆人+切水果结合出一款你没玩过的新游戏!(附源码)
- [STM32 learning] w25qxx automatic judgment capacity detection based on STM32 USB storage device
- 【STM32-USB-MSC问题求助】STM32F411CEU6 (WeAct)+w25q64+USB-MSC Flash用SPI2 读出容量只有520KB
- 跨平台应用开发进阶(二十四) :uni-app实现文件下载并保存
猜你喜欢
Lean Six Sigma project counseling: centralized counseling and point-to-point counseling
有些能力,是工作中学不来的,看看这篇超过90%同行
Short Wei Lai grizzly, to "touch China" in the concept of stocks for a living?
ATSS:自动选择样本,消除Anchor based和Anchor free物体检测方法之间的差别
Hardware design guide for s32k1xx microcontroller
[200 opencv routines] 216 Draw polylines and polygons
新出生的机器狗,打滚1小时后自己掌握走路,吴恩达开山大弟子最新成果
Redis high availability principle
微信小程序01-底部导航栏设置
Phpcms background upload picture button cannot be clicked
随机推荐
Hardware design guide for s32k1xx microcontroller
[200 opencv routines] 216 Draw polylines and polygons
Don't ask me again why MySQL hasn't left the index? For these reasons, I'll tell you all
#夏日挑战赛# HarmonyOS canvas实现时钟
《性能之巅第2版》阅读笔记(五)--file-system监测
ThinkPHP advanced
Pocket Network为Moonbeam和Moonriver RPC层提供支持
跨平台应用开发进阶(二十四) :uni-app实现文件下载并保存
二叉树的前序,中序,后续(非递归版本)
STM32F1与STM32CubeIDE编程实例-PWM驱动蜂鸣器生产旋律
Wechat applet 03 - text is displayed from left to right, and the block elements in the line are centered
ThinkPHP进阶
张驰咨询:家电企业用六西格玛项目减少客户非合理退货案例
Go语学习笔记 - gorm使用 - 表增删改查 | Web框架Gin(八)
Phpcms background upload picture button cannot be clicked
七夕表白攻略:教你用自己的专业说情话,成功率100%,我只能帮你们到这里了啊~(程序员系列)
异常检测中的浅层模型与深度学习模型综述(A Unifying Review of Deep and Shallow Anomaly Detection)
Research on manually triggering automatic decision of SAP CRM organization model with ABAP code
药品溯源夯实安全大堤
Qt+pcl Chapter 9 point cloud reconstruction Series 2