游戏内 Git 集成

由 helpme 贡献于 2022 年

这是一个模块,用于在游戏中集成精简版的 git,允许开发者查看 git 状态、更改分支,以及拉取本地 mygame 仓库和 Evennia 核心的更新代码。在成功拉取或检出后,git 命令将重载游戏:某些更改可能需要手动重启,以影响持久化脚本等。

一旦设置好此模块,集成远程更改只需在游戏中输入以下命令:

git pull

要使用的仓库,无论是本地 mygame 仓库、Evennia 核心,还是两者都需要是 git 目录,命令才能生效。如果您只对获取上游 Evennia 更改感兴趣,则只需要 Evennia 仓库是一个 git 仓库。在这里开始使用版本控制。

依赖

此包需要依赖 “gitpython”,一个用于与 git 仓库交互的 Python 库。安装它最简单的方法是安装 Evennia 的额外需求:

pip install evennia[extra]

如果您使用 git 安装,您也可以这样做:

  • cd 到 Evennia 仓库的根目录。

  • pip install --upgrade -e .[extra]

安装

此工具添加了一组简单的 ‘git’ 命令。将模块导入到您的命令中,并将其添加到您的命令集以使其可用。

具体来说,在 mygame/commands/default_cmdsets.py 中:

...
from evennia.contrib.utils.git_integration import GitCmdSet   # <---

class CharacterCmdset(default_cmds.Character_CmdSet):
    ...
    def at_cmdset_creation(self):
        ...
        self.add(GitCmdSet)  # <---

然后 reload 以使 git 命令可用。

用法

此工具仅在您要操作的目录是 git 目录时有效。如果不是,您将被提示使用以下命令在终端中将目录初始化为 git 仓库:

git init
git remote add origin 'link to your repository'

默认情况下,git 命令仅对具有开发者权限及以上的用户可用。您可以通过重写命令并将其锁定从 “cmd:pperm(Developer)” 更改为您选择的锁定来更改此设置。

支持的命令有:

  • git status: 查看您的 git 仓库概况、本地更改的文件以及当前提交。

  • git branch: 查看可供检出的分支。

  • git checkout ‘branch’: 检出一个分支。

  • git pull: 从当前分支拉取最新代码。

  • 所有这些命令也可以用于 ‘evennia’,以实现与您的 Evennia 目录相关的相同功能。所以:

  • git evennia status

  • git evennia branch

  • git evennia checkout ‘branch’

  • git evennia pull: 拉取最新的 Evennia 代码。

使用的设置

该工具使用 settings.py 中现有的 GAME_DIR 和 EVENNIA_DIR 设置。如果您有标准的目录设置,您不需要更改这些设置,它们应该已经存在,无需您进行任何设置。


此文档页面并非由 evennia/contrib/utils/git_integration/README.md自动生成。如想阅读最新文档,请参阅原始README.md文件。