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

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

머신 A와 B는 공통 호스트입니다.자식 별관저장소. 둘 다자식-별관프로그램이 설치되어 있고 두 컴퓨터 모두에서 수동으로 편집/커밋/등등을 수행합니다. A와 B는 동시에 인터넷에 연결되어 있지 않아 직접 동기화할 수 없습니다.

서버 C는 항상 켜져 있고 연결되어 있습니다(무료이며 꽤 안전합니다). git이 설치되어 있는데 관리자 권한이 없어서 git-annex를 설치할 수 없습니다.

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

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

어떤 힌트라도 주시면 감사하겠습니다!

답변1

동일한 서버에 대한 git 및 rsync 액세스를 사용하면 해당 서버를 사용하여 기록(git 액세스를 통해)과 부록 키-값 저장소(rsync 액세스를 통해)를 모두 저장할 수 있습니다. 이들은 또한 여러 다른 서버에 분리되어 저장될 수도 있습니다.

필요한 모든 도구를 이미 읽어보셨을 것 같습니다. 기본적으로 2개의 별도 리모컨이 있게 되며 둘 다 server-c의 서로 다른 위치를 가리킵니다. 첫 번째 원격(server-c)은 기록과 git 저장소에 직접 체크인된 모든 항목을 동기화하기 위한 일반 git 원격입니다. 두 번째 리모컨은 별관 특수 리모컨입니다.

[remote "server-c"]
    url = [email protected]:/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 [email protected]:/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)을 사용하는 것을 기억하면 됩니다.

단일 리모컨으로 두 위치를 모두 가리키는 것이 가능할 수도 있지만 이것이 실제로 지원되는지는 확실하지 않습니다. 합리적인 .git/config를 생성하기 위해 다음 명령이 나타납니다.

git init
git annex init "test"
git remote add server-c [email protected]:/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 항목만 사용하는지 확인하기 위해 이것을 더 이상 테스트하지 않았습니다.

관련 정보