小编vim*_*ude的帖子

GlusterFS 和 Mercurial 互不喜欢

我确实设置了 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)
  1. 当我转到 none Glusterfs 目录然后克隆时,hg 工作正常。
  2. 我将代码检出到不同的目录,然后将其移动到挂载的 GlusterFS 目录,它工作正常。

所以一定是Mercurial 或者GlusterFS 有一个bug 但不知道是否有替代方案。否则,我将不得不使用非挂载目录中的 rsync。知道这里发生了什么吗?

版本

GlusterFS 3.2.6
Mercurial 2.1.1
Run Code Online (Sandbox Code Playgroud)

mercurial

5
推荐指数
1
解决办法
255
查看次数

TAR 不喜欢哪些字符?

我保留了一张刻录到 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 不喜欢或用于其他用途的任何字符列表?

tar special-characters escape-characters

2
推荐指数
1
解决办法
1453
查看次数