我在version 7.20190129中使用D1,因为它是在我的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或git annex get myawesomefile时也无法获得任何数据。
有什么想法吗?我遗漏了什么?
发布于 2021-01-13 07:52:11
一个特殊的遥控器只是存储文件数据,而不是git存储库。把它想象成一个图书馆的地窖:一个图书馆可能会在那里建一个额外的房间来存放它的书,但是如果你想从地窖里建一个图书馆,你就没有任何索引,不知道哪本书在哪个目录里,你也没有一个图书管理员能帮你找到你的书。
因此,在实践中,您将需要另一个git存储库来复制主分支,其中包含了所有关于发生什么的信息。
在像您这样的情况下(您自己托管存储空间),您不需要任何特殊的远程设备--您使用的常规(通常但不一定是裸的) git存储库也可以存储大型文件,并且可以供以后的签出使用。
$ git clone ssh://host/path/repo
$ cd repo
$ git annex init
$ git annex get --from origin( --from origin更多地用于说明;如果您不使用它,git附件也会知道该做什么)。
在许多情况下,您甚至不需要特殊的遥控器;使用特殊遥控器的原因如下:
在大多数情况下(比如,似乎是你的),只要使用常规的git远程和附件复制数据,就会有同样好的、更少的麻烦设置,而且最重要的是,您需要一个来恢复您的数据。
https://unix.stackexchange.com/questions/627737
复制相似问题