Saudações
Eu tenho um compartilhamento CIFS montado em minha máquina Linux (Fedora 11). Este compartilhamento contém uma cópia de trabalho do Subversion com a qual eu trabalho localmente na máquina remota. A máquina remota é uma caixa do Linux rodando o Samba.
Agora quero trabalhar com o repositório na minha máquina, portanto, não preciso fazer login na máquina remota para fazer checkins e atualizações. No entanto, svn
parece ter problemas de permissões ao tentar executar operações de arquivo no compartilhamento.
por exemplo. (na minha máquina)
$ svn update
svn: Can't open file '.svn/tempfile.tmp': Permission denied
No entanto, quando tento editar o mesmo arquivo na linha de comando (por exemplo, com vi
), ele funciona bem e parece que tenho permissões de leitura / gravação completas para esse arquivo.
Eu também tentei fazer um novo checkout na minha máquina no compartilhamento:
$ svn co svn://10.212.52.226/project/trunk project
svn: Can't create directory 'project/.svn': Permission denied
Mas eu posso fazer isso manualmente:
$ mkdir project/.svn
... e funciona.
Eu montei o compartilhamento assim:
mount.cifs //10.212.52.240/myname /mnt/mdev -o "uid=myname,gid=myname,password=mypass
Então, eu sou o proprietário de todos os arquivos no compartilhamento montado.
Por enquanto, posso continuar usando o subversion no sistema remoto, que continua funcionando bem. Mas eu gostaria de fazer isso funcionar. Eu aprecio todas as idéias que você possa ter.
Obrigado
Editar
Obrigado ao JohnnyLambada pela sugestão de usar strace
. Aqui está o bit relevante da saída strace
para tentar uma verificação de subversão:
open("test/.svn/entries", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
lstat64("test", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
mkdir("test/.svn", 0777) = -1 EACCES (Permission denied)
write(2, "svn: Can't create directory 'test"..., 59svn: Can't create directory 'test/.svn': Permission denied
Ainda é confuso, pois eu posso criar os diretórios (com os mesmos modos) na linha de comando.
No entanto, observei que usar touch
para criar um arquivo temporário causa um erro:
$ touch foo
touch: setting times of 'foo': Permission denied
Embora não tenha sido possível redefinir o registro de data e hora, ele criou o arquivo.