同じサーバーへのgitとrsyncのアクセスにより、そのサーバーを使用して履歴(gitアクセス経由)と別館のキーと値のストア(rsyncアクセス経由)の両方を保存できます。これらを分離して、任意の数の異なるサーバーに保存することもできます。
必要なすべてのツールをすでに読んでいるようです。基本的に、2つのリモートがあり、どちらもserver-cの異なる場所を指します。最初のリモート(server-c)は、履歴と、gitリポジトリに直接チェックインされるすべてのものを同期するための通常のgitリモートです。2番目のリモートは、別館の特別なリモートです。
[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
これにより、探している基本的な機能が得られます。唯一の欠点は、実際には同じサーバーを指す2つの異なるリモート名があることです。特に、get、copy、およびmoveの--to =または--from =引数を使用する場合は、特別なリモート(server-c-rsync)を使用することを忘れないでください。
1つのリモートを両方の場所に向けることができる場合がありますが、これが実際にサポートされているかどうかはわかりません。次のコマンドは、賢い.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 annexがURLを無視し、付属ファイルを操作するときにannex-rsyncurlエントリのみを使用することを確認しました。