我想使用 FTP 服务器作为 git repo。我知道这样做的唯一方法是使用 curlftpfs 安装 ftp。
但是使用 curlftpfs 是不可能执行任何 git 命令的。
有没有另一种解决方案?
我不能使用 rsync,因为我在删除文件和新文件时遇到问题。如果我在源上创建或删除文件,这也应该在目标上发生。为此,我可以使用 --delete 和更新选项。但是,如果目标上的新文件在源上不存在,则不应删除该文件。我认为这对于 rsync 是不可能的,因为它没有保存任何历史记录。
至少可以在 cutftpfs 或其他 FUSE 挂载文件系统上创建本地单用户 git 存储库。git--separate-git-dir
选项可以方便地将 git 存储库放回物理文件系统。
% cd /home/xxx
% mkdir myproj
% curlftpfs ftp://mysite.com/myproj myproj
% chdir myproj
% git init --separate-git-dir ../myproj-git
% cat .git
gitdir: /home/xxx/myproj-git
这样做的好处是可以轻松地在 FUSE 挂载的文件系统和本地目录之间进行镜像。
% git clone . ../myproj-local
我认为问题在于 FTP 文件系统与常规的 unix 文件系统相比是有限的。我正在尝试构建能够推送到 FTP 的东西,所以您至少可以拉取并推送到 FTP。