It's very common to have at least one configuration file in any project. Every time I share project with git
, I have the same problem with:
Obviously, configs have to be ignored somehow to prevent developer specific data to flood main repository. Now there are several ways I used to use, each with some flaws:
.gitignore
the config files .git/info/exclude
or set git update-index --assume-unchanged ...
to the file .gitignore
)_original
while having the real files in .gitignore
. Each developer then renames files to real names Are there any other, possibly, better ways to handle this? I suspect I'm missing something, some plugin at least.
Project configuration files are the most complex and most expansive files used to configure Substance 3D Designer. They are special in that you can use multiple Project Configuration files, where each next "Child" Project expands or overrides the previous "parent".
Show activity on this post. The short answer to your question is Yes. I wouldn't hesitate to recommend Git (or any other version control software) to keep track of configuration files.
Simple configuration languages, such as JSON, work for many applications, but when you need proper validation, schema, and namespace support, XML is often best.
Centralized configuration file management enables you to maintain multiple versions of your device configuration files in Junos Space Platform. This helps you recover device configuration files in case of a system failure and maintain consistent configuration across multiple devices.
Filter drivers are the "automatic" way of implementing option 3, as detailed in "when you have secret key in your project, how can pushing to GitHub be possible?":
The smudge
script will, on checkout:
From there the developers can make any kind of modification they want to those config files.
It won't matter, because the clean
script will, on commit, restore the content of that file to its original (template) value. No accidental push there.
The way we did it on the last project i worked on was to have a master config file that loaded a users local config file if it was present which could overwrite the defaults set in the master if specified and declared its own config info if not present in master. The local file was added to gitignore. That way all common stuff could all be shared and some config always present and each developer can modify their local.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With