【问题标题】:How to set up a git repository for an IDE-based project?如何为基于 IDE 的项目设置 git 存储库?
【发布时间】:2014-04-09 03:07:19
【问题描述】:

我主要使用嵌入式应用程序(FPGA 和微控制器),而且我对 git 和版本控制一般来说还很陌生。我开始了解它的力量,并想建立一些我的项目供同事和朋友与我合作。这些项目通常在集成开发环境 (IDE) 中开发,例如 MPLAB-X、Code Composer Studio、Libero 或 Quartus,它们可以生成二进制文件、提供后台调试和其他功能。 我在其他人可以克隆它并开始工作的存储库中设置项目时遇到了一些麻烦。我发现大多数推荐的 .gitignore 设置让您忽略主项目文件以及所有额外的二进制文件和副产品,例如 .tcl 脚本和文本报告。通过忽略这些,我发现我正在删除协作者设置具有相同配置的开发环境所需的所有信息。但是,如果我在存储库中跟踪它们,那么我的存储库就会陷入不重要的额外文件(通常是大文件)中。有没有更好的办法解决这个问题?

【问题讨论】:

    标签: git ide fpga mplab code-composer


    【解决方案1】:

    我的规则是:

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

    较弱的规则是:

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

    我已配置per-file-type filters,在签入前对文件进行规范化。对于 QuartusII,这些是:

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

    当然,有一个初始开销,这很难设置,但这让我可以轻松地查看单个提交作为差异。

    git filter-branch 可以稍后引入这些过滤器,所以我不会让这妨碍开发,并在过滤器到位之前检查所有内容。

    【讨论】:

    • 优秀的答案。我将不得不学习如何使用这些每个文件类型的过滤器。如果有任何教程可以指点我,我将不胜感激。
    【解决方案2】:

    一般的解决办法是:

    • 包括任何能够重建那些超大(通常是二进制)文件
    • 包括对artifact repository (like Nexus)引用或您希望能够存储这些大文件的多个版本的任何其他引用

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

    【讨论】:

    • 澄清一下,您是否建议我 A) 进入跟踪从新克隆打开项目所需的最小项目文件集或 B) 归档整个项目(例如压缩它)并将其作为新设计师的起点,然后他们将通过 git 同步到最新提交?
    • @user2635036 肯定回答:对于源代码管理工具,zip 不是很兼容。
    • 那时我很难理解对工件存储库的引用。提供的链接使用了很多我不熟悉的术语。
    • @user2635036 理解在 Git 与 Nexus 中如何构造引用的关键概念(即在源代码控制与工件管理中):请参阅我的旧答案 stackoverflow.com/a/13490800/6309(及其相关链接)。
    猜你喜欢
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 2010-10-11
    • 2016-05-06
    • 1970-01-01
    • 2019-06-28
    相关资源
    最近更新 更多