Skip to main content
SWenn.1
Senior III
June 28, 2021
Question

What are the important files to push to git?

  • June 28, 2021
  • 3 replies
  • 4131 views

I had a project and pushed it up to a github repository that I just created. STM has so many files under many directories (CMSIS, etc.) I didn't feel it necessary to add all these files. I added the .ioc and all my source and header files. What other files should travel along and be placed in the repository so that someone can effectively download the project and get up and running? It seems complicated and STM32Cube allows you to import an .ioc file but when it does it scraps out the main.c sections that were in the main file that went with the project up to git????

Thanks

    This topic has been closed for replies.

    3 replies

    TDK
    Super User
    June 28, 2021

    I would, at a minimum, include all files required to compile the project. This includes most of the CMSIS/Middleware/Drivers directories.

    I would also add Eclipse files like .project and .mxproject so it can be imported while retaining project settings.

    > It seems complicated and STM32Cube allows you to import an .ioc file but when it does it scraps out the main.c sections that were in the main file that went with the project up to git????

    The IOC doesn't store user code in it.

    "If you feel a post has answered your question, please click ""Accept as Solution""."
    Pavel A.
    Super User
    June 29, 2021

    > STM has so many files under many directories (CMSIS, etc.) I didn't feel it necessary to add all these files. 

    This is because the default option in Cube is to copy all the library files into the project, and you've left it as is.

    Since the libraries themselves became available on github, a smarter choice is to check out these libraries separately and use them as git submodules.

    This allows to share the libraries among any number of projects and keep them away from your own repo.

    Before generating a project in Cube, change the option to copy library files to references.

    Of course, if you use managed Eclipse CDT projects (default for CubeIDE) - store the .project and .cproject files.

    As TDK wrote, .ioc does not contain code and is not used after generation, so you can move it away to a sub-dir. I never keep mxproject files, IMHO they only cause trouble. /* How to re-generate after editing Cube stuff (pinout) is another long story */

    >  so that someone can effectively download the project and get up and running

    How to share your projects with other people (possibly using other OS) is yet another long story. Different teams have their own conventions...

    -- pa

    SWenn.1
    SWenn.1Author
    Senior III
    June 30, 2021

    Hello pa.....

    Can you point me to the github link for the libraries? And I do not see the copy library files to references option under Project Properties option....Do I need to create a project first and if so should it just be a C project or should it be an STM project?

    Thanks

    Steve

    Pavel A.
    Super User
    June 30, 2021

    > Can you point me to the github link for the libraries?

    With pleasure. https://github.com/STMicroelectronics/STM32Cube_MCU_Overall_Offer

    >  And I do not see the copy library files to references option under Project Properties option

    See below - this is for a standalone CubeMX, CubeIDE has something similar

    0693W00000BcUxXQAV.png

    Radosław
    Associate II
    June 29, 2021

    more important is to ignore .settings folder, this folder includes only user settings.