开源项目推荐:josh
josh Just One Single History 项目地址: https://gitcode.com/gh_mirrors/jo/josh
项目基础介绍和主要编程语言
josh 是一个开源项目,旨在结合单一代码库(monorepo)和多代码库(multirepo)的优势。该项目主要使用 Rust 语言进行开发,同时也涉及 Go、TypeScript、Shell 和 SCSS 等多种编程语言。
项目核心功能
josh 的核心功能是通过快速、增量和可逆的 Git 历史过滤实现,将单一代码库的优势与多代码库的设置相结合。具体功能包括:
-
部分克隆:通过将单一代码库的子目录视为独立仓库,减少克隆的范围和大小。这不仅提高了客户端的性能,还支持与其他方的协作,利用 Git 的正常分布式开发功能。
-
项目组合/工作区:简化代码共享和依赖管理。josh 支持从单一代码库中过滤、重新映射和组合任意虚拟仓库。映射本身也存储在仓库中,因此与代码一起进行版本控制。
-
简化的 CI/CD:通过将所有内容存储在一个仓库中,CI/CD 系统只需查看一个源即可。josh 通过树过滤确保每个构建都是完全沙盒化的,只看到实际映射的单一代码库部分。
-
GraphQL API:提供一个 GraphQL API,用于在不克隆仓库的情况下访问 Git 存储的内容。这对于 CI/CD 系统或 Web 前端(如仪表板)非常有用。
项目最近更新的功能
根据最新的更新记录,josh 项目最近更新的功能包括:
-
容器选项:增加了对 Docker 容器的支持,用户可以通过环境变量配置 josh-proxy。
-
缓存代理:即使不使用部分克隆或工作区等高级功能,josh-proxy 也可以作为缓存代理,减少位置之间的流量,并减少 CI 对主 Git 主机的请求。
-
GraphQL API 增强:进一步增强了 GraphQL API 的功能,使其能够更灵活地查询和访问 Git 存储的内容。
-
性能优化:对项目的性能进行了优化,特别是在处理大型单一代码库时,提高了处理速度和效率。
通过这些更新,josh 项目在结合单一代码库和多代码库的优势方面更加完善,为用户提供了更高效、更灵活的开发体验。
josh Just One Single History 项目地址: https://gitcode.com/gh_mirrors/jo/josh
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考