我确实设置了 GlusterFS,但是当我在客户端hg clone myrepo myrepo
上安装目录并在该安装目录中安装时,它给出了以下错误:
requesting all changes
adding changesets
transaction abort!
rollback completed
abort: integrity check failed on 00changelog.i:6!
Run Code Online (Sandbox Code Playgroud)
所以一定是Mercurial 或者GlusterFS 有一个bug 但不知道是否有替代方案。否则,我将不得不使用非挂载目录中的 rsync。知道这里发生了什么吗?
版本
GlusterFS 3.2.6
Mercurial 2.1.1
Run Code Online (Sandbox Code Playgroud) 我保留了一张刻录到 dvd 的照片列表以进行增量备份,但我遇到了一个奇怪的情况,文件已经刻录到 dvd 中,但 tar 一直说不是。这里重现的步骤:
mkdir tarbug && cd tarbug
mkdir -p photos/{1,2,3}
touch "photos/1/P06-23-08_15.21[1].jpg"
touch "photos/2/P06.jpg"
touch "photos/3/P01.jpg"
Run Code Online (Sandbox Code Playgroud)
创建所有文件的列表(通常我会在刻录 DVD 后附加到列表中):
find photos -type f > list
Run Code Online (Sandbox Code Playgroud)
现在给我新文件,不包括列表中的文件并且不显示目录:
tar cf - photos -X list | tar tf - | grep -v '/$'
Run Code Online (Sandbox Code Playgroud)
结果:
photos/1/P06-23-08_15.21[1].jpg
Run Code Online (Sandbox Code Playgroud)
这不应该显示在文件列表中。我发现它的括号需要用反斜杠转义?但我怎么知道呢?tar 不喜欢或用于其他用途的任何字符列表?