#git-repository #git #协作 #mob #本地git #黑客空间

app git-hackme

自发地创建本地git仓库以进行协作,与mob配合使用

6个版本

1.0.0-beta.82024年6月29日
1.0.0-beta.72024年6月26日
1.0.0-beta.32024年5月31日

#83 in 开发工具

44 每月下载量

EUPL-1.2

66KB
1.5K SLoC

Git Hackme旨在与mob¹进行自发协作。

它将本地仓库转换为协作服务器,允许通过公共SSH证书从当前本地网络登录。它的主要用例是在某个项目由可信的小组工作,而这些小组没有或不需要访问权威代码仓库的制造商会议活动。

贡献快速入门

查看托管人员共享的网页。相当于以下命令

# Only once and for updates:
cargo install git-hackme@1.0.0-beta.8

# Adjust as listed on the hosting person's web page:
git hackme clone "http://[email protected]:8000/flip-fix-blade-fantasy"

共享快速入门

# Only once and for updates:
cargo install git-hackme@1.0.0-beta.8
git hackme init

# Then, assuming you're in a git repository:
git hackme share

然后启动一个网络服务器,例如python -m http.server到指定的路径,并查看其加入说明。可以使用init随时重新生成HTML索引页等。

¹注意,mob程序创建一个临时分支,该分支是从其创建的分支的父分支派生的。这有效地解决了共享本地仓库的问题,即不能向非裸git远程的检出分支推送。只需确保托管人员运行了mob stop即可。

已知和已修复问题(beta.8)

  • 共享现有项目并不总是更新记忆文件夹。这是一个优化,但可能会导致密钥文件过时或其签名无效。我们应该以某种方式验证其新鲜度。

  • 共享命令应检查SSH是否正在运行并可访问,而不仅仅是HTTP服务器。这可以检测CA是否已更改或sshd守护进程已关闭。

  • 原始仓库名称可以用作目标目录名称,避免在查看以前的仓库时产生混淆。

  • 索引页应复制仓库名称。

  • 索引页应获得更好的用户体验,针对共享进行了优化。当选择文本时,颜色方案应保持可读性,因为这是最基本的工作流程。应该有一个“复制”按钮。

  • 壳程序不会诊断缺少的目录。如果远程删除或取消共享存储库,应该提示您使用 reset 命令。

  • 不支持 OS-X。

  • unshare 命令尚未实现,作为替代方案,在运行时目录中删除记忆目录。(略有问题,无法验证其重复使用)。

不支持的问题(请贡献)

  • 不支持 Windows 目标,即使是贡献者。我无法确定如何以编程方式写入具有正确权限的密钥并配置其使用。也许只需使用 WSL 解决这个问题。

要求

您需要

  • Linux 或 OS X
  • opensshssh-keygen
  • git

依赖项

~4–36MB
~547K SLoC