Как работать с несколькими пользовательскими файлами Linux в Git - PullRequest
1 голос
/ 07 февраля 2012

У меня есть проект Git, который немного особенный, потому что файлы в дереве генерируются двумя разными пользователями.Пример:

# ls -la

drwxr-xr-x 13 ivan ivan  4096 2012-02-02 16:52 .
drwxrwxrwx 32 root root  4096 2012-01-28 21:37 ..
drwxr-xr-x  2 ivan ivan  4096 2012-02-07 20:41 system
drwxr-xr-x  2 ivan ivan  4096 2012-02-07 20:41 compatibility
drwxr-xr-x 33 ivan ivan  4096 2011-12-08 18:13 resources
drwxr-xr-x  8 ivan ivan  4096 2012-02-07 20:41 .git
-rw-r--r--  1 ivan ivan   307 2012-02-02 16:52 .gitignore
-rw-r--r--  1 bulk bulk   700 2011-11-01 20:10 base.log
.....

Git управляется только одним пользователем (ivan), но демон создает файлы, назначенные bulk пользователю.Все было хорошо, пока демон добавил новые файлы, но когда демон изменил файл, git перестал работать, сказав:

error: unable to unlink old 'base.log' (Permission denied)

Я знаю, что лучший вариант - запустить демон как ivan пользователь, но это технически сложно.Вопрос: есть ли способ справиться с подобными ситуациями в Git?Я имею в виду, я просто хочу сделать «ветку git checkout» без проблем с правами пользователя.

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

Добавьте пользователя git (ivan) в группу массовых рассылок.

Debian:

sudo adduser ivan bulk   # and relogin

Другие (FC, Redhat и аналогичные?):

usermod -a -G bulk ivan

Все должно быть хорошо. Чтобы иметь доступ на запись (т. Е. Вы можете извлекать, объединять и т. Д. Ваше рабочее дерево), измените разрешения, чтобы разрешить доступ на запись в группу:

sudo chmod g+rw bulk.log

Альтернативы:

1 голос
/ 08 февраля 2012

Это на самом деле не вопрос Git, но ради того, чтобы дать вам ответ ...

Вы создаете файлы в своем хранилище, а затем запускаете инструмент от имени пользователя, у которого нет полных прав для них. Вы должны решить одну или другую проблему: запустите Git как bulk или создайте файлы, которые ivan может читать и записывать. Обратите внимание, что это не обязательно означает принадлежность ivan - они могут иметь права 664 с соответствующей группой.

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

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

...