如何为基于IDE的项目设置git存储库?

时间:2014-04-09 03:07:20

标签: git ide fpga mplab code-composer

我主要使用嵌入式应用程序(FPGA和微控制器),而且我对git和版本控制一般都很陌生。我已经开始学习它的强大功能,并希望为同事和朋友设置一些我与我合作的项目。这些项目通常在集成开发环境(IDE)中开发,例如MPLAB-X,Code Composer Studio,Libero或Quartus,它们生成二进制文件,提供后台窃听和其他功能。 我在一个存储库中设置项目时遇到了一些麻烦,其他人可以克隆它并开始处理它。我发现大多数推荐的.gitignore设置让您忽略主项目文件以及所有额外的二进制文件和双向产品,如.tcl脚本和文本报告。通过忽略这些,我发现我正在删除协作者使用相同配置设置开发环境所需的所有信息。但是,如果我在存储库中跟踪它们,那么我的存储库会因为不重要的额外文件(通常是大文件)而陷入困境。这个问题有更好的解决方案吗?

2 个答案:

答案 0 :(得分:2)

我的规则是:

  • 在结账后需要一个设置环境的命令
  • 版本控制下的
  • 文件在执行setup命令或构建期间可能不会更改。

较弱的规则是:

  • 版本控制文件中不应有冗余信息
  • 进行更改会导致差异最小

我已配置per-file-type filters,可在办理登机手续前规范化文件。对于QuartusII,这些是:

  • .qpf和.qsf已删除日期戳。这些负载很好,而Quartus只是写了一个新的,然后在下次签入时再次删除。
  • .qsf运行一个规范化步骤(Quartus有一个明确的“保存规范化项目文件”命令)。
  • 包含IP宏功能的.vhd文件被简化为恢复信息注释,并由安装脚本重新生成。
  • .qip文件被忽略(这些文件与宏功能一起重新生成)

当然,存在初始开销,这很难设置,但这使我可以轻松地将各个提交视为差异。

稍后可以通过git filter-branch介绍这些过滤器,因此我不会让这会阻碍开发,只是检查所有内容,直到过滤器到位。

答案 1 :(得分:0)

一般解决方案是:

  • 包含能够重建那些超大(通常是二进制)文件的内容
  • artifact repository (like Nexus)或您希望能够存储这些大型文件的多个版本的任何其他参考中包含参考

跟踪重建脚本或引用是使您的repo成为管理工具的两种方法。