Override Drupal features with the features_override module
With the development of the Drupal ERP distribution ERPAL, which provides all sitebuilding components as features, our customers often times enthusiastically realize that ERPAL already has a lot of features built-in that they need. But since every company, although in the same business, is distinct in terms of data recording and workflows, customization is an important topic to consider. Once ERPAL is installed (which applies for Drupal as well) all components like views, content types, taxonomies, panels and so on, can basically be easily changed from the backend user interface. With the drawback of the features being overridden.
One problem arises when an update of ERPAL features is delivered which would update the components being changed. To apply all updates it's necessary to revert all or parts of the features. This will set back components that comes via features in form of code and will be imported into database to the state of the code. This also means that own customizations will be lost. But that doesn't have to be, if using the features_override module as described as follows:
If one has customized a component that came with a feature, one can create a ew feature (or re-create an existing one). In that feature a dependency to the features_override module is to be set and all components are to be chosen that the existing feature shall change (override).
The module that originally came with the overriden features will be selected automatically as dependency, since it is needed as base. Now one can export the feature and put it into the modules folder (often times /sites/all/modules) and activite it as usual.
Now the features can be reverted (for instance quickly via "drush fra -y") and one doesn't need to worry that the own customizations will be overriden by the update. After the cache is cleared (with Drush via "drush cc all") all features are on default and therefor not overriden.