无需安装服务器即可进行版本控制

无需安装服务器即可进行版本控制

我可以通过 ssh 访问许多服务器,但我没有 root 权限。您是否知道任何版本控制实用程序可以与远程 ssh 存储库配合使用,而无需在远程服务器上安装任何东西?

我尝试过一个裸 git 存储库文件夹,但它似乎需要服务器上的一些脚本/二进制文件/安装。我也不喜欢 git,因为它不太便携。便携版本由太多文件组成

答案1

化石是一个分布式源代码控制系统,可在 Linux、Windows 或 Mac OS X 上编译为单个二进制文件。存储库自动附带集成的错误跟踪器和 wiki,单个可执行文件可用作托管服务器,以便可以远程访问存储库。

Fossil 是 D. Richard Hipp 发起的第二个项目,他是SQLite(Fossil 使用 SQLite 作为其后备存储,因此整个存储库位于单个可移植文件中)。

答案2

看起来像市场可以使用基于 SFTP 的“愚蠢的服务器”(服务器端不需要 Bazaar)用于读写访问。

注意:我从未使用过 Bazaar,只是在它的文档中稍微了解了一下。

答案3

正如 Chris Johnsen 指出的那样,Bazaar 可以使用不同的协议将存储库数据上传到服务器,其中包括 SFTP。

实际上,其工作方式如下:您在本地计算机上创建一个存储库/分支,并使用 Bazaar 跟踪所有更改。Bazaar 将其所有信息存储在该分支根目录中名为“.bzr”的目录中。您必须使用 SSH 访问权限将存储库/分支上传到您的服务器。然后,提交到该分支的任何后续更改都会自动上传到服务器。

为此,您必须遵循以下步骤:

  1. 在您想要跟踪其更改的文件的目录中,创建一个新的分支。

    bzr init
    
  2. 将您想要跟踪的文件添加到当前分支,以便它们由 Bazaar 进行“版本控制”。

    bzr add file1 file2 directory1 directory2 ...
    
  3. 对分支进行首次提交。在将分支上传到服务器之前,必须进行首次提交。您应该阅读文档或使用 Bazaar 的帮助来了解如何使用“提交”命令(以及如何输入提交消息)。

    bzr commit
    
  4. 使用 SSH 访问权限将分支上传到您的服务器。Bazaar 将自动提示您输入密码。或者,您可以设置一个公共 RSA 密钥,以避免每次都输入密码。

    bzr push sftp://user@domain:port/branch_location_on_server
    

    如果 SSH 服务器正在监听端口 21(默认端口),则可以省略端口。如果希望分支位于主目录中,则应指定服务器上的分支位置以“~/”开头。

您后续所做的任何提交都将自动上传到服务器上的该位置。

此外,当你的机器没有连接到服务器时,你也可以通过将“--local”选项传递给“commit”命令来执行“提交”,或者通过解除和绑定分支(bzr 解除绑定/bzr绑定

如果您想下载该分支,您可以执行“checkout”:

bzr co sftp://user@domain:port/branch_location_on_server

答案4

使用 rsync(哦,等等,您还需要服务器上的 rsync :))将 mercurial / git / bzr 存储库从本地机器存储到服务器上。然后,您必须下载工作副本旁边的整个存储库,然后才能进行合并。

为了获得一些有用的东西,我建议在你家里的服务器上安装 mercurial,也许本地安装比 git 安装(顺便说一下,你也可以在家里安装)不那么“复杂”。

相关内容