Привет,
У меня есть общий ресурс CIFS, установленный на моей машине с Linux (Fedora 11). Этот общий ресурс содержит рабочую копию Subversion, с которой я работаю локально на удаленном компьютере. Удаленная машина представляет собой Linux-систему с Samba.
Теперь я хочу работать с репозиторием на моей машине, поэтому мне не нужно входить на удаленную машину, чтобы выполнять проверки и обновления. Тем не менее, svn
кажется, сталкивается с проблемами разрешений при попытке выполнить файловые операции на общем ресурсе.
например (на моей машине)
$ svn update
svn: Can't open file '.svn/tempfile.tmp': Permission denied
Однако, когда я пытаюсь отредактировать тот же файл в командной строке (например, с помощью vi
), он работает нормально, и у меня, кажется, есть полные права на чтение / запись для этого файла.
Я также попытался сделать новую проверку на моей машине на общем ресурсе:
$ svn co svn://10.212.52.226/project/trunk project
svn: Can't create directory 'project/.svn': Permission denied
Но я могу сделать это вручную:
$ mkdir project/.svn
... и это работает.
Я монтирую общий ресурс так:
mount.cifs //10.212.52.240/myname /mnt/mdev -o "uid=myname,gid=myname,password=mypass
Так что я владелец всех файлов на смонтированном общем ресурсе.
В настоящее время я могу продолжать использовать Subversion в удаленной системе, которая продолжает работать нормально. Но я бы хотел, чтобы это работало. Я ценю любые ваши идеи.
Спасибо
редактировать
Спасибо JohnnyLambada за предложение использовать strace
. Вот соответствующий бит вывода strace
для попытки извлечения Subversion:
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
Это все еще сбивает с толку, так как я могу создавать каталоги (с теми же режимами) в командной строке.
Однако я заметил, что использование touch
для создания временного файла вызывает ошибку:
$ touch foo
touch: setting times of `foo': Permission denied
Хотя он не смог сбросить метку времени, он создал файл.