私はそれを使用していますgit-annex
version 7.20190129
マイコンピュータに提供されているように、大容量Debian Stable (Buster)
ファイルをバージョン管理下に置き、複数のコンピュータとドライブに展開できます。少なくとも1つの「実際の」リポジトリがgit-annex
ある限り(そうではありません)。special remote
)。
git annex
私のローカルコンピュータで追加のストレージを1つだけ使用したいです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リモートを使用してデータのコピーを添付するだけで、設定が面倒で最も重要であり、とにかくデータを復元するには1つが必要です。