Cygwin SVN check-out проблема ACL - PullRequest
0 голосов
/ 19 марта 2012

Мой клиент Cygwin SVN изменил поведение в отношении Windows ACL между версиями 1.6.17 и 1.7.4.

[ОБНОВЛЕНИЕ: SVN 1.7.4 и 1.6.17 на самом деле ведут себя одинаково,Проблема лежит в другом месте.Чего я не понял, так это того, что он перестал работать, вероятно, обновление Cygwin.]

[ОБНОВЛЕНИЕ: Собственный Cygwin-клиент SVN фактически учитывает ключевое слово svn:executable, устанавливая исполняемый бит ACL для текущего пользователя.Упоминание «не действует под Windows» в книге SVN следует воспринимать с осторожностью.]

Запуск проверки с 1.7.4 устанавливает все извлеченные файлы только для чтения для текущего пользователя.Например, и это то, что раздражает в моем конкретном случае, он не устанавливает флаг выполнения для пакетов.В свойствах файла на вкладке «Безопасность» установлен флажок Read для Everyone и Read / Write для текущего пользователя.

Запуск проверки с 1.6.17 не показывает это поведение,Файлы извлекаются с удобными правами, и пакеты могут быть выполнены.В свойствах файла на вкладке «Безопасность» установлен флажок Read & execute / Read для Everyone и Modify / Read & execute / Read / Write для текущего пользователя, чего я и ожидал отпроверка.Эта проверка является частью сценариев, поэтому среда одинакова в обоих тестовых сценариях.

Я не нашел упоминания об этом поведении в svn tickets, и поиск не увенчался успехом.Большинство результатов относятся к конфигурации на стороне сервера.

Я не эксперт по ACL / NTFS, я прочитал статью о Cygwin posix / windows в http://cygwin.com/cygwin-ug-net/ntsec.html,, но это не прояснило разницу.

  • Я попробовал ключевое слово svn: исполняемый файл, но, как и ожидалось, это не действует в Windows.
  • Такая же разница наблюдается в Windows 7 или в XP.
  • Я заметил, что TortoiseSVN 1.7.6 (построенный на «родном» SVN 1.7.4) правильно запускает проверку.
  • У меня есть свежая установка по умолчанию /etc/fstab, которая пуста, и нет /etc/fstab.d config.

Не то, чтобы я был недоволен 1.6.17, но некоторые функции в 1.7.4 интересны.

Как мне решить эти странные права доступавопрос

Ответы [ 2 ]

0 голосов
/ 29 мая 2012

В конечном счете, это было решено путем поиска и chmod'ing файлов, которые считаются исполняемыми:

sh - c "find %MYDIR% -name '*.bat *.sh *.exe *.com *.cmd' -exec chmod u+x {} \;"

Что я, безусловно, упустил из-за нехватки времени для исследования, так это то, что *На самом деле 1006 * должен обрабатываться SVN, построенным Cygwin, чтобы добавить правильный флаг разрешения.Мне нужно будет это проверить в ближайшее время.

[ОБНОВЛЕНИЕ: Клиент SVN, построенный на Cygwin, чтит svn:executable, так что это способ решить эту проблему.]

0 голосов
/ 20 марта 2012

Что ж, решением было перестроить /etc/passwd и /etc/group с использованием mkpasswd и mkgroup.

Однако откат изменений в этих файлах не возвращает конфигурацию в состояние, котороевызывает проблему.Возможно, их восстановление и повторная проверка снова повлияли на сам инструмент SVN, но я понятия не имею, почему и как.

РЕДАКТИРОВАТЬ Нет, проблема не решена.

...