-
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Configuration version control on a modified machine. #1
Comments
For sure... Git offers good solutions if you know a lot about Git. My Git skills are pretty weak. So... I just have a big hard disk. And I keep a folder with each machine's name. I put a complete copy of every version of firmware in the proper folder with a name that has the title formatted as: date-Marlin_version-Title. And then... rather than use Git to do comparisons and move code blocks around, I use ExamDiff Pro. When I need to find a particular code block or merge things... ExamDiff Pro lets me easily move things around. (AstroGrep is a big help doing searches for particular things across many versions of the firmware.) |
The methodology here is still under development, but it shouldn't affect how you maintain your Marlin configurations. The way that I keep my configs in order is by keeping a separate branch in my Marlin fork for each machine. The only thing that differs in each one is the contents of the configuration files. Then when I want to update one of those branches to the newest Marlin I just merge in the changes from This repo is meant to make it easy to see the options that have been altered from the defaults, and with the diffs clearly in hand, we will also be experimenting with alternative layouts. |
Sry for the lengthy necro-bump post, but not sry enough to not post it :) I'm not ready to contribute, so I clone to my local machine (not GitHub) and branch using git directly in VSCode's terminal git (which does everything I need more or less, so I don't use GitHub Desktop, tortoise, etc). Separate clone for Marlin/Configurations, which I don't modify at all. On both clones I set a bogus In VSCode I make a Marlin "Workspace", I add the Marlin FW repo project, and the Marlin Configurations repos dir, which allows me to diff/cmp/merge the examples configs with my current Marlin configs across the repos. In local Marlin repo I create a branch per machine (which will NOT pull/push/track from origin or the local by default, more on that later). I don't ever push/merge back into the original local Marlin repo, I pull into it from origin/upstream (actual Marlin GitHub repo) then Then I switch to my personal machine branch in Marlin repo, diff/merge my-configuration.h and my-configuration_adv.h (actual file names I added with comment annotations for why I changed a setting; unique names so they don't get clobbered from upstream while I experiment with local branch tracking) with In the config files, I use the I In spite of various IntarWebs advice, I have not gotten a local branch to properly track another local branch yet. I did mange to convolute/pollute my git .config to within epsilon of pristine chaos though . This would only benefit me by giving me status info on my feature/custom branchs' drift from the local at whatever commit I've left the local sync'd to without having to switch branches, which is exactly the behavior I want. No biggie, I just switch to the local branch set to origin/upstream (which is the Marlin Github repo) and type Which brings me to... GIT WORKTREE, which has actually been around for some years. This is supposed to allow some optimization (at some cost of course) of sync, non clobbering/merge-able branches, and disk space but I haven't quite got my head wrapped around the significance of the workflow benefit/caveat/perils of it yet. Of course local branch tracking has been touted to work since something like 2011 or so and although the settings took, none of the options actually worked for me, they always went to origin/upstream even if set to a local I'll have to rework my workflow, like actually pushing to a GitHub clone of Marlin, if I ever get the chutzpah to actually submit code, use the marlin scripts, and issue a PR, but as a non-contributing user for now, I'd like to get more examples of git workflows, especially with enough detail to help anyone jump in quickly and get involved. Any advice on setting up tracking a local branch (not the tracked local branchs' origin/upstream urls, but to it itself only) from a local branch of that branch, or info on the workflows or benefits of using Again, I apologize for length. |
This Issue Queue is for Marlin bug reports and development-related issues, and we prefer not to handle user-support questions here. (As noted on this page.) For best results getting help with configuration and troubleshooting, please use the following resources:
|
My hard disk is cluttered with Marlin versions with my corresponding configuration files. Now I know enough git to be dangerous, I'm thing of trying to version control this.
To be concrete, I have a modified Rigidbot and that to derive my configuration from the Marlin example requires maybe a dozen changes.
Should I fork this repo and add a my_Rigidbot branch? I would need to make a script to build Marlin with the configuration pulled from here - easy enough for the current code, but I'm not sure how I would wind back both Marlin and Configurations to a common point in the past if I wanted to build an older version.
Alternatively, I could make a my_Rigidbot branch in my Marlin repo, but then it's not clear to me how I would pull in upstream changes to configuration.h. Are those changes totally reflected in the Marlin default configuration.h, so I could attempt to apply the diff in that file to my custom configuration.h? Or are the changes made to the files in this repo machine dependent?
This is an obvious enough problem that I'm sure others have come up with good solutions.
The text was updated successfully, but these errors were encountered: