我正在寻找一些我可以使用的版本控制方法或系统——但 SVN 或 Git 不起作用。
我写代码,一个人,没有团队
我使用几台不同的电脑,一些是私人的,一些来自我的雇主
大多数 PC 运行 Win 10,一些 Linux(Debian 衍生)
我希望我的代码在这台电脑上同步
我正在寻找一个自我管理的解决方案,我不想使用 Github 或类似的
在我雇主的电脑上,我无法使用 WebDav 或 SSH 连接
我的第一次尝试是在我的 NAS 上设置一个小型 git 服务器,当我使用自己的硬件时它可以正常工作。摆弄,我发现我不能在我的工作场所硬件上使用它,禁用 SSH(和 WebDav,afaik)连接。而且我无法获得使用它的许可。
一般来说,版本控制对我来说是新的。真可惜,但如果我想更改某些内容,我实际上曾经手动复制我的代码文件。计算机之间的同步是使用该 NAS 作为数据云在我的私有硬件上完成的。在工作场所硬件上,我可以使用网络浏览器访问我的云存储并从那里下载相关文件。我使用私人的同步客户端也不能在我的雇主电脑上运行。
由于编码不是我的全职工作,所以这并不是看起来那么大的问题。但这仍然不是一个好的工作流程,所以我正在寻找可以帮助我以更好的方式完成工作的东西。
有什么想法可以在我的情况下使用什么方法或系统?
大多数 Git 托管服务实际上并不使用 WebDAV——它们使用 Git 的“智能”HTTP 传输,客户端向 CGI 后端发出普通的 HTTPS GET 和 POST 请求。这意味着它几乎可以与所有代理和防火墙一起使用,并且与 SSH 一样高效(比 WebDAV 高得多)。
所有自托管的 Git 平台(例如 Gitea 和 Gogs)都支持“智能”HTTP 传输。
如果您更喜欢手动操作,请参阅git http-backend(1)和相关的Git Book 章节,了解有关在您自己的服务器上进行配置的说明。(请注意,这只是Git 协议服务,不包括 Web UI,但如有必要,它可以与 Gitweb/Cgit 位于相同的 URL 上。)
同样的想法也适用于 Mercurial (hg),其hgweb WSGI webapp 通过常规 HTTPS 提供 Web UI 和克隆/推送服务。