Исправьте разрешения с помощью git post-merge - PullRequest
7 голосов
/ 09 июня 2011

На одном сервере, на котором я работаю, мы должны войти в систему как пользователь root (по причинам, которые я здесь не расскажу).У нас есть настроенный репозиторий git, который используется для веб-сервера, но поскольку файлы создаются как root, файлы, измененные git, имеют неправильные разрешения.

Я создал невероятно простой хук после слияния, который, как мне показалось,решит проблему.

#!/bin/bash
. git-sh-setup
chown -R www-data:www-data $GIT_DIR

Я поместил это в .git/hooks/post-merge с разрешениями на выполнение, но файл никогда не запускается.Это первый раз, когда я пытался настроить хук, поэтому, возможно, я упускаю что-то очевидное.

Одна вещь, которую я заметил, это то, что у большинства хуков был файл .sample, а после слиянияне.(git version 1.7.4)

Заранее спасибо!

Ответы [ 4 ]

2 голосов
/ 27 июня 2011

Возможно, вы уже знали, но вы можете проверить наличие символов EOL (CR) в вашем хуке после слияния.Это может объяснить, почему ваш хук не выполняется (как уже упоминалось в этом другом вопросе git-hook-post-merge-error-not-run .

Если это не решениеВы также можете рассмотреть другой подход к вашей проблеме. Вы можете создать задачу для изменения владельца вашего каталога, когда файл в вашем хранилище изменяется на сервере. Задачи Cron сами по себе не реагируют на изменения файловой системы, ноВы можете попытаться использовать что-то вроде inotify , чтобы реагировать на изменения в git-репозитории сервера при любых изменениях.

Я надеюсь, что эти два фрагмента информации либо решат вашу проблему, либо, по крайней мере,ставит вас ближе. Удачи.

0 голосов
/ 27 июня 2011

Взгляните на то, как работает "git достижения". Было бы проще обернуть git в скрипт и делать то, что вам нужно в любой команде. Крючки предназначены скорее для удаленного репо, а не локального. Слияние - это то, что вы делаете локально, поэтому вы не найдете большой помощи от подключаемых механизмов.

Ссылка:

http://benjamin -meyer.blogspot.com / 2010/03 / git-достижений.html

Надеюсь, это поможет

0 голосов
/ 10 июня 2011

Возможно, вы ищете хук пост-получения , если вы хотите, чтобы скрипт работал, удаленный репозиторий помещался в.

0 голосов
/ 10 июня 2011

Убедитесь, что вы добавили скрипт в группу суперпользователей.

...