PHPackages                             alexpott/config-sync-merge - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. alexpott/config-sync-merge

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

alexpott/config-sync-merge
==========================

Merge multiple Drupal config directories into a single sync storage

04.9k3[2 issues](https://github.com/alexpott/config-sync-merge/issues)[1 PRs](https://github.com/alexpott/config-sync-merge/pulls)PHP

Since May 17Pushed 8y ago1 watchersCompare

[ Source](https://github.com/alexpott/config-sync-merge)[ Packagist](https://packagist.org/packages/alexpott/config-sync-merge)[ RSS](/packages/alexpott-config-sync-merge/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Config sync merge
=================

[](#config-sync-merge)

About
-----

[](#about)

This library allows you to merge configuration from other directories with your Drupal site's configuration sync directory. The additional directories are treated as read-only. If configuration exists in multiple locations, your configuration sync directory is read first and then the other directories in the order that they are defined in settings.php.

If you export configuration using `drush config-export` it will only make changes to your configuration sync directory. The other directories will not be changed. If configuration being saved is an exact match for configuration in an other directory it will not be written to your config sync directory. If the configuration is different, it will be written.

**IMPORTANT:** Configuration in the deepest directory should represent a complete site. This will make it easier to manage configuration removals.

Installation
------------

[](#installation)

Get the code:

```
composer require alexpott/config-sync-merge
```

Add the following lines to your settings.php:

```
$settings['container_yamls'][] = $app_root . '/vendor/alexpott/config-sync-merge/drupal.services.yml';
$settings['config_sync_merge_directories'] = [
  'PATH/TO/ADDITIONAL/CONFIG'
];
```

NB: If you have changed the vendor location you will need to alter the first line.

Suggested workflows
-------------------

[](#suggested-workflows)

@todo

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/769634?v=4)[alexpott](/maintainers/alexpott)[@alexpott](https://github.com/alexpott)

---

Top Contributors

[![alexpott](https://avatars.githubusercontent.com/u/769634?v=4)](https://github.com/alexpott "alexpott (13 commits)")

### Embed Badge

![Health badge](/badges/alexpott-config-sync-merge/health.svg)

```
[![Health](https://phpackages.com/badges/alexpott-config-sync-merge/health.svg)](https://phpackages.com/packages/alexpott-config-sync-merge)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
