看完这篇文章再也不用担心代码格式不对无法合并了

批量合并多个Excel表格的详细方法 表格纵向合并汇总除了这个超级好用的工具,我还想跟大家分享两种其他的方法,让大家有更多的选择。 阅读详情

本文由RT-Thread论坛用户@RTT_逍遥原创发布:https://club.rt-thread.org/ask/article/3121.html

GITHUB仓库:
git_auto_script
欢迎START和提issue。有好的建议可以PR或者提issue。

一、简介

  • 你是否会遇到过忘记使用formatting脚本来整理下代码,导致RTTHREAD PR不通过打回去重新修改?

  • 你是否总是忘记整理那些astyle的格式问题,总是提交的代码不够美观?总是因为空格TAB等格式问题,让熊大等合并者头疼?

  • 你是否总是有些bug是因为没有经过静态检查,导致后面bug一大堆?

来看下这个软件吧,保证对你有一定帮助,而且在做其他项目的时候这个软件包也可以使用。

本软件包通过整合cppcheck(静态编译软件), astyle(格式化代码), formatting(RTTHREAD格式整理)

三款软件,将这三款软件整合到git的hook中,让你以后提交代码再也不要担心被CI的formatting检测出问题重新提交了。

本软件一次部署长期有效,只要你的git仓库没有更换,就一直有效。

当然如果有好的建议或者修改,欢迎PR,我们大家一起来维护。

当然也如果有更好的软件或者更好的需求,也欢迎在issue里面提出来。

二、如何使用

第一次使用可能会麻烦一点,不过我觉得这个就是一劳永逸的事情,后面就几乎无感了。

2.1 CPPCHECK

STEP1: CPPCHECK官网 下载安装

STEP2: 环境变量path添加cppcheck路径

STEP3:命令行里面执行cppcheck命令,可以用即可

2.2 ASTYLE

STEP1: ASTYEL官网 下载解压

STEP2: 环境变量path添加astyle路径

STEP3:命令行里面执行astyle命令,可以用即可

2.3 formatting

这个是来自formatting.py 的自动化脚本,这边我把这个python脚本整理成exe命令行的形式:

STEP1: 直接clonegit_auto_script目录

STEP2: 将Windows_exe 文件夹添加到path环境变量中

STEP3: 命令行里面执行formatting 可以用即可

生成exe采用命令(这一步我已经弄好放到Windows_exe中,通常不需要操作,如果需要更新的话在formatting.py目录下执行下面操作)

pyinstaller --onefile --nowindowed formatting.py

2.4 pre-commit安装

将 RTTHREAD_auto/pre-commit拷贝到你的工程的.git/hook 文件夹下面,以后commit无需操作任何操作就可以直接commit 无需考虑formatting或者格式问题或者静态检查问题

image-20211025223018211.png

好了, 一切ready。

这个时候,只要你正常commit,你就会发现,你的代码格式已经经过astyle优化过了,如果代码静态检查有问题,会commit不过,并且提示你需要修改,同时也是经过formatting的修改了。之后再也不用担心PR会有格式上的问题了。

下面看下动画演示:
help.gif

GITHUB仓库:
git_auto_script
欢迎START和提issue。又好的建议可以PR或者提issue。

三、FAQ

3.1 cppcheck和astyle等命令在哪里可以去掉?

在pre-commit文件夹中,找到cppcheck命令和astyle命令和formatting命令,前面加#就可以去掉

如下所示:注释掉所有的命令,就不会执行自动化脚本了

if [ -n "$changed_files" ]; then
	#cppcheck --enable=warning,performance,portability --inline-suppr --error-exitcode=1 --force $changed_files
	err=$?
	if [ $err -ne 0 ]; then
	    echo "Hello! we found a obvious fault, please fix the error then commit again"
		exit $err
	fi
fi

# We only filter the file name with c or cpp file.
changed_files=$(git diff-index --cached $against | \
	grep -E '[MA]	.*\.(c|cpp|h)$' | cut -d'	' -f 2)

if [ -n "$changed_files" ]; then
	#astyle --style=allman --indent=spaces=4 --indent=spaces=4 --indent=spaces=4 --pad-header --pad-header --pad-header --align-pointer=name --lineend=linux --convert-tabs --verbose  $changed_files
	#formatting $changed_files
	git add $changed_files
fi

3.2 commit 之后文件夹下面多出来一些奇怪的文件是否可以去掉

生成一些*.orig文件是由于astyle对文件进行了修改,为了防止改错文件,将源文件做了备份,如果不想要的话可以在astyle命令下面添加下面的选项来去掉:

 --suffix=none

3.3 cppcheck 的选项的含义

cppcheck选项可以参考官方manual

astyle 选项参考官方的astyle option

本项目主要目的是提供一种自动化的commit机制,如果觉得cppcheck机制和astyle机制不好用,可以注释掉或者用其他的命令替换掉,也欢迎提供一些比较好用的免费的方便的软件。

astyle的选项,参考RTTHREAD官方文档

3.4 pre-commit是否可以在主仓库中保留

目前我觉得是无法在仓库中保留的,欢迎大家提出好的idea。我也希望能有好的方法在主仓库保留

多数据表合并的最佳实践 ①易用:我设计了一个可视化界面,操作超级简单。你只需要选择要合并的表格文件,然后点击一键合并就可以了。②性能:这个工具支持多线程快速合并,所以表格越多,它的优势就越明显。我是用Python开发的,所以它可以轻松处理千万条数据的大表。表越大,它的优势就越明显。支持千万量级数据合并支持批量,一键自动合并支持xlsx、csv、xls支持按表头合并支持表头不一致,意义相同的表头合并支持自定义列、自定义sheet支持跳过表头尾说明行支持自定义子表数据行数支持添加数据来源列。 阅读详情

相关推荐

xlsx表格神器一键纵向合并千万数据,效率提升100倍!

最后,我想说的是,在这个数据驱动的时代,掌握高效的数据处理技能变得越来越重要。我相信,无论你是数据分析师、财务人员,还是任何需要处理大量Excel数据的人,这个工具都能极大地提升你的工作效率。这种效率的提升,对于任何需要处理大量数据的人来说,都是一个巨大的福音。期待看到大家的精彩回复!当然,除了这个神奇的工具,我还要给大家介绍几种其他的解决方案,让你根据自己的需求和技能水平,选择最适合的方法。

m0_56280293的博客 1339

gerrit提交报错,commit的message格式不对——it should be started with [Feature] or [BugFix]

某个项目微量修改后,提交代码时报错,说message格式不对: [ERROR!] Your message is not formatted correctly, *** *** it should be started with '[Feature]' or '[BugFix]' …… 但实际上message前缀我一直符合要求,没出过问题,每次提交只改后面几个字。 我左看右看上看下...

关中刀客在青岛 3500

批量合并Excel文件,工作效率倍增

在我多年的工作经验中,我尝试过多种合并Excel文件的方法。今天,我将为大家介绍几种最实用、最高效的解决方案。无论你是Excel新手还是数据处理高手,相信你都能在这里找到适合自己的方法。 方案一:一键表格合并助手 说到这里,我不得不向大家推荐一个我最近发现的神器 —— 一键表格合并助手。这是一个由"勤学道人"开发的高性能一键合并工具,特别适合像我这样的Excel小白使用。

m0_56280293的博客 1623

一起学习下RT-Thread的C语言编码规范

作者:架构师李肯前言最近博主在学习 RT-Thread 这个开源项目,开始慢慢学习和理解它的开源代码,慢慢开始接触了它的代码规范。我个人认为,参与一个开源项目的第一步,就是要好好理解它的规范,其中代码编写规范就是很重要的一环。RT-Thread 编程风格这是一份 RT-Thread 开发人员的开发指引。RT-Thread 做为一份开源软件,它需要由不同的人采用合作的方式完成,这份文档是开发人员的一...

rtthreadiotos的博客 1052

R爬虫RSelenium环境搭建及简单应用

这是鄙人自己实践的一种可行的环境搭建,我会尽量详细的写下大家步骤。

weixin_44349986的博客 2013

保姆级教程:用北醒TFmini-i-CAN雷达给PixHawk飞控加装‘眼睛’,实现自动避障与定高

经过多次测试,前向雷达的最佳安装位置是机架前部下方5-10cm处,倾斜角度20-30度。电源方面,建议为CAN设备单独供电,避免电机启动时的电压骤降导致数据异常。北醒TFmini-i-CAN雷达与PixHawk飞控的组合,为DIY爱好者打开了低成本实现智能避障的大门。实际部署时,需确保整个CAN网络的波特率一致(TFmini-i默认为250kbps),每个设备具有唯一ID。雷达的安装角度也直接影响检测效果,建议通过3D打印支架将雷达向前下方倾斜15-30度。当使用多个雷达时,需为每个设备创建独立的参数组。

weixin_30892889的博客 336

解决SVN中合并过的代码不能重新合并的问题

解决SVN中合并过的代码不能重新合并的问题 使用TortoiseSVN合并代码时,需注意两个点: 1、在要合并到的分支文件夹上右击鼠标,选中TortoiseSVN-->合并(M)...-->合并一个版本范围-->合并的源(必须选择与“要合并到的分支文件夹”相同的另一分支中目录)-->然后指定范围(在显示日志中选版本号)-->点下一步-->测试合并--...

danielyhsu的博客 1万+

876-基于STM32的毫米波雷达智能睡眠监测系统

基于STM32的毫米波雷达智能睡眠监测系统通过非接触式毫米波雷达检测人体呼吸频率和体动次数,结合WIFI数据传输和OLED显示,实现睡眠质量分析与远程监控。系统核心功能包括生理参数采集、阈值设置、数据可视化及远程交互。

m0_50083169的博客 1543

C# 用户代码未处理 FormatException 输入字符串的格式不正确 解决方法

C# 用户代码未处理 FormatException 输入字符串的格式不正确 解决方法 当使用String.Format时有时会出现以下错误 今天在后台插入js代码的时候呢我也遇见了这个问题,为什么会出现这个问题呢?经过半个小时的折腾我终于发现了,当字符串中出现{}符号占位符等关键字时格式就会出错,我们看一下我的原代码 解决方法在每个{}符号外再加一个{}符号,像这样{{}} 修改后代码 这样问题就得到解决了 ...

hoversl的博客 5437

C++实现SM4国密算法实战指南

通过以上实现,开发者可以快速在C++项目中集成SM4国密算法,满足金融、政务等领域的安全需求。实际部署时建议通过国家密码管理局的合规性检测,并定期更新密钥管理策略。库(支持国密算法),需提前安装并配置开发环境。

skyksksksksks的博客 1487

三相电机控制中的端电压、相电压与线电压波形解析

本文深入解析了三相电机控制中端电压、相电压与线电压的核心概念与波形差异。通过对比方波控制、SPWM和SVPWM三种主流控制策略下的实测波形特征,揭示了不同控制逻辑对电压波形(如梯形波、正弦波、马鞍波)的影响。文章重点阐述了SVPWM控制如何通过生成马鞍波形端电压来提高直流母线电压利用率,并提供了实用的波形测量与调试指南,帮助工程师深入理解电机控制原理并进行有效调试。

qsc901234567的博客 1393

RT-Thread Studio 对代码进行格式化

使用RT-Thread Studio 对代码进行格式化

坚韧与专注 1212

(三) Debian 安装linuxcnc-ethercat中间件

1.在这里同样的也是需要下载一下依赖包 sudo apt install linuxcnc-uspace-dev 2.依赖包安装完成, 接着执行下面命令 sudo git clone https://github.com/sittner/linuxcnc-ethercat 还是可能出现下载网络错误下载不成功,可以直接下载我已上传百度云linuxcnc目录下 注意一下,后面make可能会出现头文件(xxx.h)的报错提示,在这里给大家一个处理办法 用aptitude 工具可以搞定 sudo apt-get

qq_30065813的博客 828

音频合并分割软件有哪些?这篇文章告诉你

别担心,今天就来给大家盘点几款好用的合并MP3文件软件,它们各有特色,无论是新手小白还是专业人士,都能找到适合自己的那一款。●音质保持良好:在合并过程中,会尽量保留音频的音质,听起来不会有明显的失真。●智能音频分析:能进行智能分析,我们可以识别并音频中的静音片段,然后再合并。●裁剪与合并:在合并文件前,你可以先对每个文件进行裁剪,去掉不需要的部分。●支持多轨合并:可以把多个文件按照不同的轨道进行合并,很适合做音乐创作。●专业音频编辑:可以对音频进行细致的编辑,让合并后的音频音质更优质。

Nightowls__的博客 644

1 硬件工程师笔面试高频知识考点真题及解析——电阻

本文系统介绍了电阻的基础知识、选型要点及各类特殊电阻的应用。主要内容包括:1. 电阻选型需考虑阻值、封装、功率、精度、耐压等参数;2. 高频信号优先选用小封装电阻以减小寄生参数;3. 采样电阻需高精度、低温漂以保证测量准确性;4. 详细解析了上拉/下拉电阻、0欧电阻、磁珠等元件的特性与区别;5. 介绍了压敏电阻、热敏电阻等特殊电阻的工作原理及应用场景;6. 阐述了阻抗匹配的重要性及常见匹配方法。文章为电子工程师提供了全面的电阻选型与应用指南。

XU157303764的博客 2834

Agentic-Desktop-Pet:构建本地智能桌面助手的架构与实践

智能体(Agent)作为人工智能领域的重要概念,是指能够感知环境、自主决策并执行任务以实现目标的软件实体。其核心原理在于结合感知、决策与执行模块,通过大语言模型(LLM)等推理引擎处理信息并驱动行动。这种架构的技术价值在于将AI的认知能力与具体的操作系统环境深度融合,从而创造出能主动理解用户上下文、提供个性化服务的智能伙伴。在应用场景上,智能体技术正从云端对话机器人向本地化、场景化的桌面助手演进,旨在解决传统自动化工具缺乏智能、而纯聊天机器人脱离操作环境的问题。本文探讨的Agentic-Desktop-Pe

weixin_27210125的博客 621

PDF怎么拆分成多个PDF,看完这篇文章你就明白了

PDF文件对于每一个经常在职场上工作的人来说,是特别常见的一个文档格式,PDF格式深受人们的喜爱,因为是特别好用的,但同时也是比较难进行编辑和修改的,特别是遇到PDF文档过长,为了方便浏览和及时查找对我们有用的内容,这就需要将PDF文档拆分成多个PDF,那么PDF怎么拆分成多个PDF?通过今天的文章就来告诉大家PDF文档拆分的方法,看完这篇文章你就明白了,那么我们就一起来看看吧。​方法一:软件拆分...

weixin_34221073的博客 819

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

PDF转换器有用吗?看完这篇文章你就知道

相信我们对PDF的使用都不陌生,也都知道PDF的编辑和修改功能对于一般用户来说是很难直接操作的,于是PDF转换器应运而生,针对对性解决与PDF相关的操作性问题。这款PDF转换器是小编比较信任且觉得特别好用的软件,使用之前小编也在顾虑文件转换内容的安全性,还有对PDF转换器是否有用存有疑惑,不过令小编惊喜的是,它不仅实用而且在对文件的隐秘性方面做的很好。小圆象PDF转换器打开之后的页面如上,PDF与其他格式文件的相互转换功能是在十分明显的大方框内,点击进去里面的内容便是转换成我们日常最常用的多种格式。

xiaxiaoyuanxiang的博客 143

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

音频转换成mp3怎么操作?看完这篇文章你就懂了

①具备丰富的音频处理功能,这款软件除了具备基本的音频格式转换功能外,还提供了其它的音频处理选项,使你能够对音频进行进一步的调整和优化。②在音频转换过程中保持高质量的输出,这款软件采用了先进的音频编码算法和转码引擎,确保在进行格式转换时不会丢失原始音频文件的质量。①丰富的音频处理工具,这款软件内置了许多音频处理工具,使你能够进一步改善和优化转换后的音频质量,并实现专业水准的音频效果。②个性化的转码设置,这款软件它提供了可调节的转码参数,使你能够根据需要进行细致化的转换设置,以满足各种转换需求。

Fsafn的博客 205

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

合并视频免费软件有哪些?视频合并新手必看指南分享

让我们一起享受视频编辑的乐趣吧!它能够在不显著降低视频质量的前提下,大幅度减小视频文件的大小,让你的视频分享更加便捷。不过不需要担心,今天我将会为大家介绍视频合并哪个app好用免费,帮助大家摆脱这些问题,轻松合并出自己需要的视频!剪辑魔法师是一款功能全面的专业视频编辑软件,它不仅能够轻松实现视频合并,还能帮助我们完成更多创意视频制作的需求。合并过程中,软件会自动调整视频参数,确保合并后的视频流畅无缝隙,无需担心格式不兼容或质量下降的问题。在视频编辑的世界里,合并视频是一个常见的需求,但很多人对此感到困惑。

huduokyou的博客 740

怎么把分开的pdf放在一起_PDF怎么拆分成多个PDF,看完这篇文章你就明白了

PDF文件对于每一个经常在职场上工作的人来说,是特别常见的一个文档格式,PDF格式深受人们的喜爱,因为是特别好用的,但同时也是比较难进行编辑和修改的,特别是遇到PDF文档过长,为了方便浏览和及时查找对我们有用的内容,这就需要将PDF文档拆分成多个PDF,那么PDF怎么拆分成多个PDF?通过今天的文章就来告诉大家PDF文档拆分的方法,看完这篇文章你就明白了,那么我们就一起来看看吧。方法一:软件拆分法...

weixin_42311672的博客 471

视频合并到一起怎么制作?视频合并新手指南

我个人比较推荐大家使用剪辑魔法师这款软件进行视频合并操作,因为它是一款功能全面的专业视频编辑软件,支持多种视频格式,这意味着无论你的视频文件是什么格式,它都能轻松应对。确保所有要合并的视频具有相同的格式和分辨率。如果需要压缩视频,应在合并前对单个视频片段进行压缩,而不是合并后的视频。而且,视频合并的过程中,软件会自动调整视频参数,确保合并后的视频流畅无缝隙,无需担心格式不兼容或质量下降的问题。但是,在整理视频时,我们常常会遇到格式不兼容、画面不连贯、音频不同步等问题,导致合并效果不理想,让人感到头疼。

huduokyou的博客 391

将ubuntu设置为NAS——14.尝试mergerfs合并多个物理硬

多个硬盘挂载到一个目录下

JL-LOVE 4554

pdf转word格式不会转,这篇文章告诉你

无论是合同、报告还是学术论文,这款软件都能确保高质量的转换效果,准确地保留原始文本、图像和布局,不必担心乱码的问题。此外,还可以根据需要自定义输出路径和保存格式,满足个性化的转换需求。我们可以根据自己的需求,灵活地自定义输出路径和保存格式,确保转换后的。它是一款智能pdf处理软件,它的多种实用功能包括pdf转换、分割和翻译等。以上是我从转换效果以及实用性来看,觉得相对较实用的转换软件,不用担心。还提供了一些其他功能,如压缩文件、合并文件、分割文件等,让。,选择要转换的格式,然后点击转换按钮,就可以得到。

m0_73026984的博客 126
上一篇: 【我与RT-Thread的故事】挚爱与热爱
下一篇: RT-Thread Studio 中如何使用过滤器
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值