나는 그것을 사용하고 있다git-annex
version 7.20190129
내 컴퓨터에 제공된 대로 Debian Stable (Buster)
대용량 파일을 버전 제어하에 두고 여러 컴퓨터와 드라이브에 배포할 수 있습니다. 적어도 하나의 "실제" git-annex
저장소가 있는 한(아닙니다.special remote
).
git annex
내 로컬 컴퓨터에서 추가로 하나의 저장소만 사용하고 싶습니다 special remotes
(예:bup
special remote
또는rsync
special remote
Debian Stable
아니면 일단 착지 하면borg
special remote
).
내 작업 흐름은 다음과 같습니다.
cd /path/to/my/local/folder
git init
git annex init
git annex add myawesomefile
git commit -m 'this works on my local repository'
git annex initremote mybupbackuprepo type=bup encryption=none buprepo=/path/to/my/special/remote/location
git annex sync
git annex copy files --to mybupbackuprepo
bup
special remote
그러면 연결된 저장소처럼 내 저장소를 사용할 수 있습니다.
하지만 이제 첫 번째 로컬 저장소를 사용하지 않고 내 저장소에 액세스하고 싶습니다 bup
(예: 로컬 컴퓨터가 충돌하는 경우). 내가 아는 한 (다음에서)official guide
, 다음이 작동해야 합니다.
cd /path/to/new/folder/to/extract/the/backup
git init
git annex init
git annex initremote mybupbackuprepo type=bup encryption=none buprepo=/path/to/my/special/remote
git annex enableremote mybupbackuprepo
git annex sync
하지만 여전히 어떤 파일도 볼 수 없으며(일부 손상된 심볼릭 링크도 포함) git annex sync --content
or 를 사용할 때 데이터를 얻을 수 없는 것 같습니다 git annex get myawesomefile
.
어떤 아이디어가 있나요? 내가 무엇을 놓치고 있나요?
답변1
특수 리모콘은 git 저장소가 아닌 파일 데이터만 저장합니다. 도서관 지하실처럼 생각해보세요. 도서관은 책을 보관할 추가 공간을 만들 수 있지만 지하실 뒤에 도서관을 짓고 싶다면 색인이 없고 어떤 책이 어떤 카탈로그에 있는지 알 수 없습니다. 그리고 책이 없습니다. 관리자가 책을 찾는 데 도움을 줄 수 있습니다.
따라서 실제로 콘텐츠에 대한 모든 정보가 포함된 마스터 브랜치를 복사하려면 또 다른 git 저장소가 필요합니다.
저장소를 직접 호스팅하는 상황에서는 특별한 원격 장치가 필요하지 않습니다. 소스로 사용하는 일반(일반적으로 베어일 필요는 없음) git 저장소도 대용량 파일을 저장할 수 있으며 나중에 사용할 수 있습니다. 결제 등
$ git clone ssh://host/path/repo
$ cd repo
$ git annex init
$ git annex get --from origin
(이것은 --from origin
설명을 위한 것입니다. 작성하지 않으면 gitannex도 무엇을 해야할지 알게 될 것입니다.)
대부분의 경우 특수 리모컨이 필요하지 않습니다. 특수 리모컨을 사용하는 이유는 다음과 같습니다.
- (작지만 자주 필요한) git 액세스를 데이터 액세스(많은 데이터)와 분리하고 싶고 데이터 호스트는 전체 쉘 액세스가 아닌 rsync(또는 webdav 또는 s3 또는 기타 프로토콜) 액세스만 제공합니다.
- git 호스트는 기본 git만 제공하고 git-annex가 설치되어 있지 않습니다(예: GitLab). 그러면 추가 데이터 호스트가 필요합니다.
- 백엔드에서 필요한 특수 속성(예: 암호화를 사용하지 않는 경우에만 작동하는 저장소 간 중복 제거)
대부분의 경우(귀하와 마찬가지로) 일반 git 원격을 사용하고 데이터 복사본을 첨부하는 것만으로도 설정이 덜 번거롭고 가장 중요하며, 어쨌든 데이터를 복원하려면 하나가 필요합니다.