drupal-operations / git-split
Adds composer git:split composer command for easy splitting of a git repository into many others.
Fund package maintenance!
jonpugh
Patreon
Open Collective
thinkdrop.net
Installs: 1
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Type:composer-plugin
Requires
- php: ^7.1||^8.0
- composer-plugin-api: ^1.0 || ^2.0
Requires (Dev)
- symfony/console: ^4.4|^5.0
- 2.x-dev
- 2.1.0
- 2.1.0-beta4
- 2.1.0-beta3
- 2.1.0-beta2
- 2.1.0-beta1
- 2.0.0-beta15
- 2.0.0-beta14
- 2.0.0-beta13
- 2.0.0-beta12
- 2.0.0-beta11
- 2.0.0-beta10
- 2.0.0-beta9
- 2.0.0-beta8
- 2.0.0-beta7
- 2.0.0-beta6
- 2.0.0-beta5
- 2.0.0-beta4
- 2.0.0-beta3
- 2.0.0-beta2
- 2.0.0-beta1
- 1.x-dev
- 1.10.0-alpha11
- 1.10.0-alpha10
- 1.10.0-alpha9
- 1.10.0-alpha8
- 1.10.0-alpha7
- 1.10.0-alpha6
- 1.10.0-alpha5
- 1.10.0-alpha4
- 1.10.0-alpha3
- 1.10.0-alpha2
- 1.10.0-alpha1
- 1.1.0-beta4
- 1.1.0-beta2
- 1.1.0-beta1
- 1.0.x-dev
- 1.0.0-alpha1
- dev-feature/pantheon-settings
- dev-feature/scripts
- dev-feature/tasks
- dev-main
This package is auto-updated.
Last update: 2024-10-11 16:34:43 UTC
README
The GitSplit component provides commands to split a monorepo using the splitsh-lite script and other tools.
Usage
The first implementation of GitSplit is DevShop itself. Look to OpenDevShop's code for a usage example:
-
Add the package to your project's
composer.json
:composer require devshop/git-split --dev
See https://github.com/opendevshop/devshop/blob/1.x/composer.json#L72
-
Import a legacy repo into a subfolder:
If a component repo already exists, you can merge it in with the git subtree command:
git subtree add --prefix=$PATH_IN_REPO $GIT_URL $BRANCH
For example, when we merged in the "devmaster" install profile from Drupal.org:
git subtree add --prefix=devmaster https://git.drupalcode.org/project/devmaster.git 7.x-1.x
See https://github.com/opendevshop/devshop/tree/1.x/devmaster
-
Add
extra.git-splits
Add the Secondary Repository information to the config.git-split.repos section of the main devshop/composer.json file.
"extra": { "git-split": { "repos": { "devmaster": "git@github.com:opendevshop/devmaster.git" } } }
-
Run the command
composer git:split
every time there is new code.See the DevShop GitHub Action "git.yml" file for an example on running
composer git:split
to push code to multiple remotes, including different github organizations and drupal.org using SSH keys:https://github.com/opendevshop/devshop/blob/1.x/.github/workflows/git.yml#L64
Resources
Credits
splitsh-lite is a third party shell script installed when this component is used.
Find sources and license at https://github.com/splitsh/lite.