Functional programming and idea-oriented Git branching strategy

3 views (last 30 days)
I analyze a set of financial statement data. The end output of this project should be a short list of stocks for investment, not a software release.
This project has two basic characteristics: the data set doesn't change often, and I want to try many different ways to mine it. That renders functional programming the most suitable programming paradigm. (side note: to my experience, oop fits the demand of routine processing changing, hierachical data.)
So far, I have relied on primitive file-copies for version control. It's getting out of hand, so I decide to give Git a try. There have no serious technical problems, and Matlab provides excellent git-project integration and interface.
The question I couldn't find good answer for is a suitable git branching strategy. Though Gitflow model is quite close to what I need, it's still not good enough. See I have two main branches. One is for feature development, which Gitflow has. It would cover the features I code for the project. For example, I have coded a parallel verion of cellfun, which allows me to easily map different fuctions over the fixed data set (functional programming).
Now for the idea part. I have many ideas I want to explore Should I add an extra branch for 'ideas' to the Gitflow model? Though I don't have to produce software release, it seems nice to keep the release branch for tracking project progresses.
I am a newbie for Git. Any feedbacks and suggestions are greatly appreciated.

Accepted Answer

Jatin
Jatin on 2 Sep 2024
Hi @Simon,
Looks like you are on right track as you have started using a software for version control, but Gitflow can be a little complex for a project like yours where you don’t have a large team or regular releases.
I recommend a slightly simpler branching strategy that includes the following branches:
  1. Base Branch: This branch is always in the working and ready to use state, consider this as your baseline of your project.
  2. Develop Branch: This branch is for continuous development, works as integration branch for features which are tested and are ready to merge with the base branch.
  3. Feature Branch: You can create different branches for all features that you want to create in your project. This branched can be later merged to develop branch once feature is implemented.
  4. Test Branch: This branch can be used to test and experiment with any new ideas that you may have.
You can follow this link if you want more information on “Using Git with MATLAB.
Hope this helps!

More Answers (0)

Categories

Find more on Source Control in Help Center and File Exchange

Products


Release

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!