我的工作目录位于 TrueCrypt NTFS 卷上,umask 为 000。因此,我可以毫无问题地读取/写入任何文件。
但我无法在其上执行 svn 命令,例如“svn update”显示错误:
svn: Can't set permissions on '.svn/tempfile.8.tmp':
strace svn up 给出:
...
chmod("sbin/.svn/tempfile.2.tmp", 0770) = -1 EPERM (Operation not permitted)
fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
write(3, "( failure ( ( 1 76:Can't set per"..., 172) = 172
fcntl64(3, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK)
fcntl64(3, F_SETFL, O_RDWR) = 0
read(3, "( abort-edit ( ) ) ( failure ( ("..., 4096) = 191
gettimeofday({1276661368, 382789}, NULL) = 0
lstat64("sbin", {st_mode=S_IFDIR|0770, st_size=0, ...}) = 0
select(0, NULL, NULL, NULL, {0, 1000}) = 0 (Timeout)
write(2, "svn: Can't set permissions on 's"..., 82svn: Can't set permissions on 'sbin/.svn/tempfile.2.tmp': Operation not permitted) = 82
close(3) = 0
因此,当 svn chmod 某些 tmp 文件时会发生错误。但 TrueCrypt 卷不允许这样做,而且没有必要。
在 TrueCrypt 卷上启动 svn 时我可以绕过 chmod lib 调用吗?