Как Subversion обрабатывает права доступа к файлу и файл .htaccess? - PullRequest
6 голосов
/ 01 августа 2009

Я использую Subversion для одного из моих PHP-проектов. У меня есть два вопроса / проблемы:

  1. Как обрабатываются права доступа к файлам в Subversion? Если у меня есть файл, который я CHMOD для 755, и я проверяю этот файл в хранилище, будут ли у него те же разрешения, когда он извлекается в другие рабочие копии? Если он не копируется, нужно ли мне менять разрешения при каждой проверке?
  2. У меня есть файл .htaccess, который я не хочу проверять в хранилище. Если я обновлю рабочую копию, содержащую файл .htaccess (но в хранилище его нет), удалится ли этот файл или обновление оставит его в покое?

Ответы [ 5 ]

11 голосов
/ 01 августа 2009
  1. Единственное разрешение, о котором знает Subversion, - это исполняемый бит, который хранится в виде специального свойства "svn: executeable". Если это свойство определено, файл извлекается с установленным битом exec. Для флагов rw это зависит от вашего umask. Если ваш umask, например, 0022, файл без бита svn: исполняемый будет извлечен с разрешением 0644. Если ваш umask 0002, разрешение будет 0664. Если установлен svn: исполняемый файл, бит exec установлен для владелец, группа и все остальные.
  2. Если вы не отметите .htaccess для добавления (svn add), svn оставит файл в покое. Он не войдет в репо при фиксации и не будет удален при запуске svn update. Вы увидите "?" перед ним при запуске «svn status».
1 голос
/ 01 августа 2009
  1. Как уже упоминалось, SVN не будет хранить разрешения.

    Причина проста:

    Пользователь, который сделал оформление заказа, будет владельцем всех файлов в своей рабочей копии, поэтому не имеет смысла давать разрешения, поскольку у него уже есть разрешения на чтение / запись для всех файлов в его рабочей копии (в зависимости от его маски) .

    Для e x установленный флаг svn-свойство svn: исполняемый.

  2. .htaccess файл

    Вы должны добавить .htaccess в родительские каталоги свойство svn: ignore.

    Однако SVN никогда не изменит и не перезапишет ваши изменения, не спросив сначала . Поэтому, если некоторые из ваших друзей сохранят файл .accessfile в хранилище, SVN остановит обновление и сообщит, что ваш собственный файл .htaccess должен быть удален, чтобы продолжить.

1 голос
/ 01 августа 2009

Для # 2 вы можете просто добавить .htaccess к свойству svn: ignore. Вот хороший взгляд на то, что это делает и как это работает http://blog.bogojoker.com/2008/07/command-line-svnignore-a-file/ В отношении прав доступа, если вы извлекаете файл, он получает разрешения на чтение / запись, если только он не является исполняемым файлом, который должен иметь разрешения svn: исполняемый файл и будет извлечен таким образом. Этот файл также можно явно пометить с помощью svn: needs-lock, который затем делает его доступным только для чтения при извлечении

0 голосов
/ 16 октября 2012

Пример того, как сделать файл исполняемым:

svn propset svn:executable ON filename
0 голосов
/ 01 августа 2009

1) ... разрешения не передаются.

2) ... обновление оставит его в покое, если оно не находится под контролем версии.

Тем не менее, дважды проверьте эти идеи. Пожалуйста. * * 1005

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...