tbureck / splitphp
SplitPHP 使用 splitsh-lite 将单体仓库拆分为多个仓库。
Requires
- php: ^5.6.0|^7.0
- ext-json: *
- symfony/console: ^3.4|^4.0
This package is not auto-updated.
Last update: 2024-09-14 19:47:48 UTC
README
SplitPHP 是一个小程序,可以从 Git 仓库中拆分子树并将其推送到单独的仓库。实际的拆分使用 Fabien Potencier 的 splitsh-lite 工具 完成。
入门指南
SplitPHP 很可能用于 Travis、Jenkins 或 TeamCity 等持续集成环境中。工具正常运行需要满足以下 3 个主要要求
- PHP 7(推荐)或 5.6
- Git
- splitsh-lite
请确保 splitsh-lite
命令可通过在 PATH 环境变量中放置其路径来可用,这样 SplitPHP 就可以找到它。显然,这也适用于 Git。
安装
使用 Composer 安装最简单。将 tbureck/splitphp
添加到您的 require-dev
配置中。然后 splitphp
程序将位于您配置的 bin
目录中。
使用方法
为了使用 SplitPHP,您需要创建一个配置文件,默认为 splitsh.json
。它定义了应提取到其他仓库的子树。
配置
示例
{ "common-library": { "prefixes": [ {"key": "src/Library/Common", "value": ""} ], "target": "git@bitbucket.org:my-organization/my-repository.git", "branches": ["master", "dev-1.x"] } }
对象的关键字是一个简单的名称,易于识别。该对象定义了 3 个属性
prefixes 是一个键值对列表,将单体路径映射到独立仓库路径(空路径表示根目录)
target 指定目标独立仓库。请确保您的 CI 服务器有对这个仓库的写入权限。
branches 是需要拆分的分支列表。
您可以指定任意数量的子树,它们将按该顺序处理。
运行拆分
要运行拆分,只需调用二进制文件并传递当前分支
bin/splitphp master
在 TeamCity 中,您可以通过使用特定变量动态传递当前分支。如果您使用的是不同系统,请查阅 CI 服务器文档了解如何进行此操作
bin/splitphp %vcsroot.branch%
SplitPHP 将默认在当前工作目录中查找配置文件 splitsh.json
。您可以使用 -c
选项指定不同的路径
bin/splitphp -c my/path/to/splitconfiguration.json