https://github.com/operations-project/git-split
Composer package for simple git splitting.
https://github.com/operations-project/git-split
Last synced: 5 months ago
JSON representation
Composer package for simple git splitting.
- Host: GitHub
- URL: https://github.com/operations-project/git-split
- Owner: operations-project
- License: mit
- Created: 2023-06-22T11:30:25.000Z (about 3 years ago)
- Default Branch: 2.x
- Last Pushed: 2024-09-11T16:17:53.000Z (almost 2 years ago)
- Last Synced: 2025-05-30T12:49:13.218Z (about 1 year ago)
- Language: PHP
- Size: 15.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
GitSplit Component
==================
The GitSplit component provides commands to split a monorepo using the [splitsh-lite](https://github.com/splitsh/lite)
script and other tools.
Usage
-----
The first implementation of GitSplit is DevShop itself. Look to OpenDevShop's code for a usage example:
1. 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
2. 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
3. Add `extra.git-splits`
Add the Secondary Repository information to the config.git-split.repos section of the main devshop/composer.json file.
```json
"extra": {
"git-split": {
"repos": {
"devmaster": "git@github.com:opendevshop/devmaster.git"
}
}
}
```
4. 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
---------
* [Documentation](https://github.com/devshop-packages/git-split/blob/develop/README.md)
* [Contributing](https://github.com/opendevshop/devshop/blob/develop/docs/DEVELOPING.md)
* [Report issues](https://github.com/opendevshop/devshop/issues) and
[send Pull Requests](https://github.com/opendevshop/devshop/pulls)
in the [main DevShop repository](https://github.com/opendevshop/devshop)
Credits
-------
[splitsh-lite](https://github.com/splitsh/lite) is a third party shell script installed when this component is used.
Find sources and license at https://github.com/splitsh/lite.