Answers:
使用git和rsync访问同一服务器,您可以使用该服务器存储历史记录(通过git访问)和附件键值存储(通过rsync访问)。这些也可以解耦并存储在任意数量的不同服务器上。
看起来您已经阅读了所有需要的工具。基本上,你最终会得到两个独立的遥控器,它们都指向server-c上的不同位置。第一个远程(server-c)是一个常规的git远程,用于同步你的历史记录和直接检查到git仓库的任何东西。第二个遥控器是附件特殊遥控器。
[remote "server-c"]
url = git@example.com:/path/to/repo.git
fetch = +refs/heads/*:refs/remotes/server-c/*
[remote "server-c-rsync"]
annex-rsyncurl = example.com:/home/user/annex-rsync
annex-uuid = ...
您应该可以通过以下方式设置:
git remote add server-c git@example.com:/path/to/repo.git
git annex initremote server-c-rsync type=rsync rsyncurl=example.com:/home/user/annex-rsync encryption=none
这应该为您提供您正在寻找的基本功能。唯一的缺点是你有两个不同的远程名称真正指向同一台服务器。特别是在使用get,copy和move的--to =或--from =参数时,您必须记住使用特殊的远程(server-c-rsync)。
可以将单个遥控器指向两个位置,但是我不确定这是否实际上是支持的。以下命令似乎创建了一个合理的.git / config。
git init
git annex init "test"
git remote add server-c git@example.com:/path/to/repo.git
git annex initremote server-c type=rsync rsyncurl=example.com:/rsync/user encryption=none
对我来说,这导致.git / config中的单个远程同时具有url =(对于正常的git操作)和annex-rsyncurl =。但是,我没有进一步测试这个以确保git附件忽略url并且在使用附件文件时仅使用annex-rsyncurl条目。