GitRoot
GitRoot 是一个小巧而强大的 Git 代码托管平台。下载一个二进制文件,启动它,你就拥有一个可以执行以下操作的代码托管平台:
- 创建 Git 仓库
- 管理谁可以访问哪些仓库
仅此而已。
安装插件后,你将能够:
- 创建问题、路线图、冲刺、里程碑等
- 在看板中展示它们
- 审查/合并分支(在 GitRoot 中称为 grafts)
- 在 Web 界面中展示所有内容及更多
所有这些插件都是完全独立的。是的,你可以在没有 Web 界面的情况下使用看板。如何操作?查看原始 GitRoot 问题看板,亲自尝试后你会喜欢上它的。
想要更多?构建你自己的插件!
我为什么要这样做?
我构建 GitRoot 是因为我没有找到任何工具能让我按照自己想要的方式管理项目。但同时,你可能也想为自己的项目做一些不同的事情,与我对完美项目的想法不同。
每个项目都是独特的,所以为什么我们不能自由地修改我们的代码托管平台以适应自己的项目呢?
因此,我在开发我的代码托管平台时遵循以下规则:
作为开发者,我想要:
- 一个包含我所有数据的仓库:代码、问题、
(pull|merge)-request、看板 - 推广我的项目所需的一切:落地页、翻译、工单、论坛
- 将我的项目迁移到新服务器代码托管平台的能力:无需脚本迁移、无数据丢失、无归属权丢失
作为开发者,我想要拥有一个为我的独特项目量身定制的代码托管平台。
作为开发者,我不想要:
- 打开浏览器来管理我的数据:
(pull|merge)-request、问题 - 我的项目首先以文件和目录列表的形式呈现
- 我的代码托管平台选择我的工作流问题:什么是冲刺、里程碑、史诗、用户故事?
- 有 100 个菜单来配置谁可以做什么
作为开发者,我不想要一个复杂的代码托管平台来管理我的项目。
作为管理员,我想要:
- 一个易于部署的代码托管平台:无依赖、无数据库
- 配置我的用户可以做什么
- 用户可以请求他们想要的东西:无需通过邮件/聊天来创建或访问项目或功能
作为管理员,我想要一个易于安装和维护的代码托管平台。
作为管理员,我不想要:
- 升级我的代码托管平台时遇到麻烦
- 将我的数据(或用户数据)交给其他人
- 依赖那些可能随时改变其代码托管平台的大型玩家
作为管理员,我不想依赖任何其他人。
如果你和我一样,你会喜欢 GitRoot。
它还没有准备好,但它会准备好的,尤其是如果你能帮我一把。
它是如何工作的?
在 GitRoot 中,所有内容都存储在 git 中,而不是数据库中,也不是隐藏在 git 树中的 blob 中。所有内容都以普通文件的形式存储在你的代码旁边。
你如何确保没有人写入他们不应该写入的文件?通过分支限制。每个 GitRoot 仓库都带有一个 .gitroot/users.yml 文件。该文件指示 GitRoot 谁可以在哪里写入。
最初,只有你可以访问你的 默认分支。如果其他人尝试推送到此分支,GitRoot 将拒绝其修改。
但是,任何人都可以创建分支。创建并推送分支时,GitRoot 将为此用户添加对该分支的权限。这意味着其他人将无法修改它。
如果你通过编辑 .gitroot/users.yml 或合并一个用户已自行添加的分支来添加用户,该用户将能够推送到 默认分支。
GitRoot 的所有功能都围绕这个概念展开。这意味着每个人都可以读取文件并修改它们,无论是在本地还是在新分支中。但只有所有者可以将它们合并到代表你仓库当前状态的 默认分支 中。
由于你的代码托管平台由根仓库管理,这个概念允许你完全自主地管理你的代码托管平台:当你在根仓库的 默认分支 中添加(或合并).gitroot/repositories.yml 的更改时,就会创建一个仓库。
更多详情请参阅 文档。
它何时可用?
GitRoot 目前处于 alpha 版本。欢迎尝试使用,但 请勿用于生产环境。
GitRoot 可以:
- 创建/删除仓库
- 通过 SSH 接受 git 命令
- 管理用户(在仓库/分支级别谁可以在哪里写入)
- 安装插件
- 为仓库激活插件
- 在安装时在工作树上运行插件
- 在安装后的每次提交中对 diff 运行插件
- 通过 HTTP 可视化仓库
我在 1.0 版本前想要完成:
- 更新 GitRoot 和插件
- 管理用户(在文件级别谁可以在哪里写入)
- 通过 HTTP 接受 git 命令
- 在组和子组中管理仓库
- 稳定插件 API
项目在哪里?
实际上,你现在就在项目中。是的,这就是 GitRoot!
你现在正在 GitRoot 的实例上,该实例托管 GitRoot 的代码。不幸的是,这个实例仅供 GitRoot 本身使用。
如果你想为自己的项目尝试 GitRoot,请阅读 文档。
如何贡献?
你可以在 文档 中找到你需要知道的一切。由于 GitRoot 本身就是一个 GitRoot 仓库,你应该能够为其做出贡献。
在这个实例中,我们使用了一些插件。例如,grafter 插件管理如何将部分代码合并到默认分支。因此,请务必阅读 贡献指南 以了解其工作原理。
是的,由于 GitRoot 将所有数据存储在 git 中,你需要知道如何使用 git 才能为此项目做出贡献(代码、问题、翻译等)。未来我希望能够允许直接从浏览器执行 git commit 和 git push 命令,这样任何人都可以参与。
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.