ด้วยการเข้าถึง git และ rsync ไปยังเซิร์ฟเวอร์เดียวกันคุณสามารถใช้เซิร์ฟเวอร์นั้นเพื่อเก็บประวัติ (ผ่านการเข้าถึง git) และที่เก็บคีย์ - ค่าภาคผนวก (ผ่านการเข้าถึง rsync) สิ่งเหล่านี้อาจถูกแยกออกและเก็บไว้ในเซิร์ฟเวอร์ต่าง ๆ จำนวนเท่าใดก็ได้
ดูเหมือนว่าคุณได้อ่านเครื่องมือทั้งหมดที่คุณต้องการแล้ว โดยพื้นฐานแล้วคุณจะจบด้วยรีโมท 2 ตัวแยกกันซึ่งทั้งคู่ชี้ไปยังตำแหน่งต่างๆบนเซิร์ฟเวอร์ -c รีโมตแรก (เซิร์ฟเวอร์ - c) เป็นรีโมต git ปกติสำหรับการซิงโครไนซ์ประวัติของคุณและทุกสิ่งที่ถูกตรวจสอบโดยตรงไปยัง repo 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
สิ่งนี้จะช่วยให้คุณได้รับฟังก์ชั่นพื้นฐานที่คุณต้องการ ข้อเสียเพียงอย่างเดียวคือคุณมีชื่อระยะไกล 2 ชื่อที่ชี้ไปยังเซิร์ฟเวอร์เดียวกัน โดยเฉพาะอย่างยิ่งคุณต้องจำไว้ว่าให้ใช้รีโมตพิเศษ (เซิร์ฟเวอร์ -c-rsync) เมื่อใช้ --to = หรือ - from = อาร์กิวเมนต์ของการรับคัดลอกและย้าย
อาจเป็นไปได้ที่จะชี้รีโมตเดียวไปยังที่ตั้งทั้งสองแห่งอย่างไรก็ตามฉันไม่แน่ใจว่าได้รับการสนับสนุนจริงหรือไม่ คำสั่งต่อไปนี้ปรากฏขึ้นเพื่อสร้าง. 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 เมื่อใช้งานกับไฟล์ที่ผนวก