почему для bzr push отказано в разрешении?

user2 хочет, чтобы bzr отправлял изменения в каталог /home/user1/project/dev. user2 имеет разрешения group + rwx в этом каталоге, но не в моем домашнем каталоге /home/user1/

Это приводит к ошибке:

bzr: ERROR: Permission denied: "h2i9usf1l6ieofpuul87.pack": [Errno 13] Permission denied: '/home/user1/.bzr/repository/upload/h2i9usf1l6ieofpuul87.pack'

Мне непонятно, зачем пользователю 2 нужно разрешение на доступ к моему дому /home/user1/.bzr/, когда /home/user1/project/dev ветка от /home/usr1/project/trunk.

Я относительно новичок в использовании VCS и не уверен, как я попал в это затруднительное положение. Есть ли способ разорвать зависимость от /home/user1/.bzr или создать ветвь от /home/user1/project/trunk/, не имеющую этой зависимости?


person David LeBauer    schedule 02.12.2011    source источник


Ответы (3)


Кажется, у вас есть общий репозиторий в /home/user1/, а ветка в /home/user1/project/dev использует этот репозиторий. Поэтому ему нужен доступ к репозиторию для хранения новых ревизий.

Как проверить: запустите команду bzr info и проверьте ее вывод на предмет определения этой ветви. Если вы увидите «Дерево репозитория» или «Ветвь репозитория», то эта ветка определенно использует общий репозиторий. Вы должны увидеть путь к репозиторию в выводе bzr info.

Как исправить: проинструктируйте bzr прекратить использование общего репозитория, выполнив команду bzr reconfigure --standalone в ветке по адресу /home/user1/project/dev. Еще раз проверьте вывод bzr info. Теперь оно должно называться «Автономное дерево» или «Автономная ветвь». После этого user2 сможет успешно перейти на эту ветку.

person bialix    schedule 02.12.2011
comment
Спасибо за ваш ответ. В этом есть смысл, но ошибка изменилась только на: ERROR: Permission denied:'/home/user1/project/dev/.bzr/repository/upload/h2i9usf1l6ieofpuul87.pack'bzr: [Errno 13] Permission denied Я опубликовал альтернативное решение, все еще ожидая услышать, сработает ли оно. - person David LeBauer; 02.12.2011

(предоставлено пользователем 3) Это можно исправить с помощью следующих команд (имя группы project_dev):

chgrp -R project_dev /home/user1/project/dev
find /home/user1/project/dev -type d -exec chmod g+s {} \;
  1. сделать все файлы принадлежащими группе cheas_dev,
  2. добавьте липкий бит ко всем папкам, чтобы все файлы / папки, созданные в нем, также принадлежали группе project_dev.
person David LeBauer    schedule 02.12.2011
comment
Это не липкий бит (1777 или т). Это бит setgid (2777 или s). - person kubanczyk; 27.10.2012

Я думаю, что все родительские каталоги должны иметь разрешения o + x.

person Anonymous    schedule 20.04.2012