git-annex가 설치되지 않은 서버에서 Git Annex 호스팅


9

머신 A와 B는 공통 git annex 저장소를 호스팅 합니다. 둘 다 git-annex 프로그램이 설치되어 있으며 두 컴퓨터에서 수동으로 편집 / 커밋 / 등을합니다. A & B는 동시에 인터넷에 연결되어 있지 않으므로 서로 동기화 할 수 없습니다.

서버 C는 항상 켜져 있고 연결되어 있으며 무료이며 매우 안전합니다. git이 설치되었지만 관리자 권한이 없으므로 git-annex를 설치할 수 없습니다.

내 질문 : 서버 C를 중앙 허브로 사용하여 git-annex 및 전체 haskell ghc 종속성을 C에 설치하지 않고도 A와 B 모두에서 git-annex 업데이트를 푸시하고 가져올 수 있습니까?

"directory"또는 "rsync" 특수 리모컨 과 함께 C를 사용해 보았지만 푸시 / 풀 후 A 및 B를 업데이트하는 데 필요한 나머지 부분이 아닌 파일 만 보유하는 것으로 보입니다.

어떤 힌트라도 대단히 감사하겠습니다!

답변:


6

동일한 서버에 대한 git 및 rsync 액세스를 사용하면 해당 서버를 사용하여 히스토리 (git access를 통해)와 부속 키-값 저장소 (rsync access를 통해)를 모두 저장할 수 있습니다. 또한 여러 서버에서 분리하여 저장할 수 있습니다.

필요한 모든 도구를 이미 읽은 것 같습니다. 기본적으로 server-c의 서로 다른 위치를 가리키는 두 개의 별도 원격 장치가 생깁니다. 첫 번째 리모컨 (server-c)은 히스토리와 git repo에 직접 체크인 된 모든 것을 동기화하기위한 일반 git remote입니다. 두 번째 리모컨은 별관 특수 리모컨입니다.

[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

나를 위해 이것은 url = (일반 git 작업의 경우)와 annex-rsyncurl =이 모두있는 .git / config의 단일 리모컨이됩니다. 그러나 git annex가 URL을 무시하고 부속 파일로 작업 할 때 annex-rsyncurl 항목 만 사용하는지 확인하기 위해 더 이상 테스트하지 않았습니다.


큰! 몇 가지 테스트를 수행하지만 실행 가능한 솔루션에 매우 가깝습니다. 시간과 답변 주셔서 감사합니다!
Vincent

기꺼이 도와 드리겠습니다. 방금 휴가 시간 동안 git annex를 사용하기 시작했으며 지금까지는 매우 행복합니다!
저스틴 게이 벨

마지막 예제가 제대로 작동해야한다고 생각합니다. 사실, 나는 그것이 단지 git repo 일지라도 파일을
재 동기화
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.