git-cvsserver pserver распространение имени пользователя - PullRequest
1 голос
/ 16 марта 2011

Для некоторых специфических проблем рабочего процесса в моей компании мне нужно разрешить некоторым пользователям работать с CVS, в то время как основной репозиторий находится под git.

Я выбрал git-cvsserver в качестве реализации для этой задачи.

Я установил git-репозиторий, включил его для gitcvs и настроил симуляцию pserver на Xinetd. Все отлично работает, я могу работать с этим хранилищем из клиента cvs, проверка подлинности с помощью файла passwd, который я создал с помощью эмуляции pserver.

Моя проблема в том, что коммиты, которые я делаю через CVS, отображаются под пользователем, который запускает xinetd, не под пользователем, я аутентифицируюсь против passwd.

т.е. Я фиксирую CVS как пользователя 'foo', я успешно аутентифицируюсь через pserver, но когда я смотрю на git историю коммитов для этого репо, я вижу, что коммит имеет был сделан пользователем 'root'.

Я посмотрел источник git-cvsserver (http://git.kernel.org/?p=git/git.git;a=blob;f=git-cvsserver.perl) и похоже, что используется CVS-логин только для аутентификации, а не для фактической фиксации. Записи в базе данных SQLite также содержат имя пользователя root, а не foo

Есть ли у вас какие-либо идеи, как я могу распространять CVS логин для git username?

xref в списке рассылки git: http://thread.gmane.org/gmane.comp.version-control.git/169182

1 Ответ

1 голос
/ 16 марта 2011

У меня нет особого опыта с этим, но git-cvsserver почти наверняка вызывает git-commit для выполнения реальной работы. Вы можете заставить git-commit использовать все, что вы хотите для автора и коммиттера, установив переменные окружения, такие как GIT_COMMITTER_EMAIL и GIT_AUTHOR_EMAIL (также ..._NAME и ..._DATE и ..._IDENT). Если у вас есть информация об аутентификации, вы можете просто установить ее в $ENV до фактической фиксации. Если git-cvsserver не очищает его среду, вы можете установить ее из информации аутентификации в оболочке, прежде чем вызывать ее (просто в случае любого коммита).

...