Dengan akses git dan rsync ke server yang sama Anda dapat menggunakan server itu untuk menyimpan riwayat (melalui akses git) dan toko nilai kunci tambahan (melalui akses rsync). Ini juga dapat dipisahkan dan disimpan pada sejumlah server yang berbeda.
Sepertinya Anda sudah membaca semua alat yang Anda butuhkan. Pada dasarnya, Anda akan berakhir dengan 2 remote terpisah, keduanya menunjuk ke lokasi yang berbeda di server-c. Remote pertama (server-c) adalah remote git biasa untuk menyinkronkan riwayat Anda dan apa pun yang diperiksa langsung ke repo git. Remote kedua adalah lampiran khusus tambahan.
[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 = ...
Anda harus dapat mengatur ini dengan sesuatu seperti:
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
Ini akan memberi Anda fungsionalitas dasar yang Anda cari. Satu-satunya downside adalah bahwa Anda memiliki 2 nama jarak jauh yang berbeda yang benar-benar menunjuk ke server yang sama. Khususnya Anda hanya perlu ingat untuk menggunakan remote khusus (server-c-rsync) saat menggunakan --to = atau --from = argumen get, copy, dan move.
Dimungkinkan untuk mengarahkan remote tunggal ke kedua lokasi, namun saya tidak yakin apakah ini benar-benar didukung. Perintah berikut muncul untuk membuat .git / config yang masuk akal.
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
Bagi saya ini menghasilkan sebuah remote tunggal di .git / config dengan kedua url = (untuk operasi git normal) dan lampiran-rsyncurl =. Namun, saya belum mengujinya lebih jauh untuk memastikan bahwa git annex mengabaikan url dan hanya menggunakan entri annex-rsyncurl ketika beroperasi dengan file yang dilampirkan.