Name | ypp JSON |
Version |
0.3.1
JSON |
| download |
home_page | None |
Summary | 多分支 worktree 管理工具 |
upload_time | 2025-08-23 02:33:40 |
maintainer | None |
docs_url | None |
author | ypp |
requires_python | >=3.8 |
license | None |
keywords |
git
worktree
krepo-ng
cli
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# ypp
多分支 worktree 管理工具(支持 `krepo-ng` 与 `git`)。
## 安装
```bash
pip install ypp
```
## 使用
- 创建 worktree:
```bash
ypp add <path> <branch>
```
这会在 `~/<path>/wpsmain` 和 `~/<path>/wpsweb` 下分别创建或切换到 `<branch>`。
- 列出 worktree:
```bash
ypp list
```
- 移除 worktree:
```bash
ypp remove <path>
```
这会移除 `~/<path>/wpsmain` 和 `~/<path>/wpsweb` 的 worktree,并删除整个 `<path>` 目录。
- 配置管理:
```bash
ypp set work_dir=~/workspace # 设置工作目录
ypp config # 显示当前配置
```
- 修改配置和生成构建脚本(仅限 Linux):
```bash
ypp modify # 修改 wpsweb/server/Makefile 和生成 build_server.sh
ypp modify --force # 强制在非 Linux 系统上运行(不推荐)
```
这会自动查找 wpsweb 目录,并执行以下操作:
1. **修改 `server/Makefile`**:
- 去掉 `-Wl,-s` 参数
- 将 `-O2` 修改为 `-g`
2. **生成 `build_server.sh`**:
- 清空文件内容并写入构建脚本
- 动态替换路径变量(基于当前执行路径)
- 自动设置执行权限
> **注意**: `modify` 命令仅在 Linux 系统上支持,因为它需要修改 Makefile 和生成 shell 脚本。
- 初始化仓库:
```bash
ypp init wpsmain # 初始化 wpsmain 仓库
ypp init wpsweb # 初始化 wpsweb 仓库
ypp init # 依次初始化 wpsmain 和 wpsweb 仓库
```
这会执行以下操作:
1. **wpsmain 初始化**:在当前目录执行 `krepo-ng init -b master_kso_v12 --bundle all`
2. **wpsweb 初始化**:在当前目录执行 `git clone git@ksogit.kingsoft.net:wow/wpsweb.git`
- 自动编译 wpsmain:
```bash
ypp build # 自动编译 wpsmain
```
这会自动查找 wpsmain 目录,并在 Docker 中执行以下操作:
1. **配置 weboffice**:执行 `krepo-ng config --new -x weboffice`
2. **检查目录**:验证 `debug_weboffice` 目录是否创建成功
3. **编译项目**:在 `debug_weboffice` 目录中执行 `krepo-ng build`
4. **执行构建脚本**:查找并执行 `wpsweb/build_server.sh` 脚本
> **注意**: `build` 命令需要在 Docker 环境中执行,使用 `kdocker -r qt5` 命令。
## 依赖
- 需要本机已安装并在 PATH 中可用:`krepo-ng`、`git`。
- 配置文件位置:`~/.ypp.json`
## 许可
MIT
Raw data
{
"_id": null,
"home_page": null,
"name": "ypp",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "git, worktree, krepo-ng, cli",
"author": "ypp",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/d5/fb/05efda45b998b3db42d87f56bd41854fb9be4afa6e76ec0c6cd130bf892b/ypp-0.3.1.tar.gz",
"platform": null,
"description": "# ypp\n\n\u591a\u5206\u652f worktree \u7ba1\u7406\u5de5\u5177\uff08\u652f\u6301 `krepo-ng` \u4e0e `git`\uff09\u3002\n\n## \u5b89\u88c5\n\n```bash\npip install ypp\n```\n\n## \u4f7f\u7528\n\n- \u521b\u5efa worktree\uff1a\n\n```bash\nypp add <path> <branch>\n```\n\n\u8fd9\u4f1a\u5728 `~/<path>/wpsmain` \u548c `~/<path>/wpsweb` \u4e0b\u5206\u522b\u521b\u5efa\u6216\u5207\u6362\u5230 `<branch>`\u3002\n\n- \u5217\u51fa worktree\uff1a\n\n```bash\nypp list\n```\n\n- \u79fb\u9664 worktree\uff1a\n\n```bash\nypp remove <path>\n```\n\n\u8fd9\u4f1a\u79fb\u9664 `~/<path>/wpsmain` \u548c `~/<path>/wpsweb` \u7684 worktree\uff0c\u5e76\u5220\u9664\u6574\u4e2a `<path>` \u76ee\u5f55\u3002\n\n- \u914d\u7f6e\u7ba1\u7406\uff1a\n\n```bash\nypp set work_dir=~/workspace # \u8bbe\u7f6e\u5de5\u4f5c\u76ee\u5f55\nypp config # \u663e\u793a\u5f53\u524d\u914d\u7f6e\n```\n\n- \u4fee\u6539\u914d\u7f6e\u548c\u751f\u6210\u6784\u5efa\u811a\u672c\uff08\u4ec5\u9650 Linux\uff09\uff1a\n\n```bash\nypp modify # \u4fee\u6539 wpsweb/server/Makefile \u548c\u751f\u6210 build_server.sh\nypp modify --force # \u5f3a\u5236\u5728\u975e Linux \u7cfb\u7edf\u4e0a\u8fd0\u884c\uff08\u4e0d\u63a8\u8350\uff09\n```\n\n\u8fd9\u4f1a\u81ea\u52a8\u67e5\u627e wpsweb \u76ee\u5f55\uff0c\u5e76\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff1a\n1. **\u4fee\u6539 `server/Makefile`**\uff1a\n - \u53bb\u6389 `-Wl,-s` \u53c2\u6570\n - \u5c06 `-O2` \u4fee\u6539\u4e3a `-g`\n2. **\u751f\u6210 `build_server.sh`**\uff1a\n - \u6e05\u7a7a\u6587\u4ef6\u5185\u5bb9\u5e76\u5199\u5165\u6784\u5efa\u811a\u672c\n - \u52a8\u6001\u66ff\u6362\u8def\u5f84\u53d8\u91cf\uff08\u57fa\u4e8e\u5f53\u524d\u6267\u884c\u8def\u5f84\uff09\n - \u81ea\u52a8\u8bbe\u7f6e\u6267\u884c\u6743\u9650\n\n> **\u6ce8\u610f**: `modify` \u547d\u4ee4\u4ec5\u5728 Linux \u7cfb\u7edf\u4e0a\u652f\u6301\uff0c\u56e0\u4e3a\u5b83\u9700\u8981\u4fee\u6539 Makefile \u548c\u751f\u6210 shell \u811a\u672c\u3002\n\n- \u521d\u59cb\u5316\u4ed3\u5e93\uff1a\n\n```bash\nypp init wpsmain # \u521d\u59cb\u5316 wpsmain \u4ed3\u5e93\nypp init wpsweb # \u521d\u59cb\u5316 wpsweb \u4ed3\u5e93\nypp init # \u4f9d\u6b21\u521d\u59cb\u5316 wpsmain \u548c wpsweb \u4ed3\u5e93\n```\n\n\u8fd9\u4f1a\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff1a\n1. **wpsmain \u521d\u59cb\u5316**\uff1a\u5728\u5f53\u524d\u76ee\u5f55\u6267\u884c `krepo-ng init -b master_kso_v12 --bundle all`\n2. **wpsweb \u521d\u59cb\u5316**\uff1a\u5728\u5f53\u524d\u76ee\u5f55\u6267\u884c `git clone git@ksogit.kingsoft.net:wow/wpsweb.git`\n\n- \u81ea\u52a8\u7f16\u8bd1 wpsmain\uff1a\n\n```bash\nypp build # \u81ea\u52a8\u7f16\u8bd1 wpsmain\n```\n\n\u8fd9\u4f1a\u81ea\u52a8\u67e5\u627e wpsmain \u76ee\u5f55\uff0c\u5e76\u5728 Docker \u4e2d\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff1a\n1. **\u914d\u7f6e weboffice**\uff1a\u6267\u884c `krepo-ng config --new -x weboffice`\n2. **\u68c0\u67e5\u76ee\u5f55**\uff1a\u9a8c\u8bc1 `debug_weboffice` \u76ee\u5f55\u662f\u5426\u521b\u5efa\u6210\u529f\n3. **\u7f16\u8bd1\u9879\u76ee**\uff1a\u5728 `debug_weboffice` \u76ee\u5f55\u4e2d\u6267\u884c `krepo-ng build`\n4. **\u6267\u884c\u6784\u5efa\u811a\u672c**\uff1a\u67e5\u627e\u5e76\u6267\u884c `wpsweb/build_server.sh` \u811a\u672c\n\n> **\u6ce8\u610f**: `build` \u547d\u4ee4\u9700\u8981\u5728 Docker \u73af\u5883\u4e2d\u6267\u884c\uff0c\u4f7f\u7528 `kdocker -r qt5` \u547d\u4ee4\u3002\n\n## \u4f9d\u8d56\n\n- \u9700\u8981\u672c\u673a\u5df2\u5b89\u88c5\u5e76\u5728 PATH \u4e2d\u53ef\u7528\uff1a`krepo-ng`\u3001`git`\u3002\n- \u914d\u7f6e\u6587\u4ef6\u4f4d\u7f6e\uff1a`~/.ypp.json`\n\n## \u8bb8\u53ef\n\nMIT\n",
"bugtrack_url": null,
"license": null,
"summary": "\u591a\u5206\u652f worktree \u7ba1\u7406\u5de5\u5177",
"version": "0.3.1",
"project_urls": null,
"split_keywords": [
"git",
" worktree",
" krepo-ng",
" cli"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "244d67b144f6b6e66f9d6fcf86dd4a3d089b8be75e6a4a0eef8df549499e2d9a",
"md5": "69484e94b0975181b816d0ff6b3e3c51",
"sha256": "75c082c72e746a71f93144ef92864cb693286f045a03198bc96c1c0e8d60977e"
},
"downloads": -1,
"filename": "ypp-0.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "69484e94b0975181b816d0ff6b3e3c51",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 11949,
"upload_time": "2025-08-23T02:33:38",
"upload_time_iso_8601": "2025-08-23T02:33:38.668024Z",
"url": "https://files.pythonhosted.org/packages/24/4d/67b144f6b6e66f9d6fcf86dd4a3d089b8be75e6a4a0eef8df549499e2d9a/ypp-0.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d5fb05efda45b998b3db42d87f56bd41854fb9be4afa6e76ec0c6cd130bf892b",
"md5": "b03ab0a7d9edfb03e6373c61a02af1b8",
"sha256": "2cf9e7b42d8e0c8ae0d99758a77d2c6714065861389f09ecf7fd503a86b3eb6e"
},
"downloads": -1,
"filename": "ypp-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "b03ab0a7d9edfb03e6373c61a02af1b8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 10488,
"upload_time": "2025-08-23T02:33:40",
"upload_time_iso_8601": "2025-08-23T02:33:40.051057Z",
"url": "https://files.pythonhosted.org/packages/d5/fb/05efda45b998b3db42d87f56bd41854fb9be4afa6e76ec0c6cd130bf892b/ypp-0.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-23 02:33:40",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "ypp"
}