Почему я не могу добавить новые репозитории с помощью gitosis?

Я настроил gitosis, но даже когда я могу клонировать, извлекать и отправлять в репозиторий gitosis-admin, я не могу создавать новые.

Согласно каждому документу, который я читал, для создания нового репо необходимо:

  • Дайте пользователю доступ на запись к репозиторию (внутри группы введите: writable = repo-name)
  • Пользователь создает репо локально, добавляет удаленный, затем делает push
  • Репо создается на сервере

Но я всегда получаю ошибку fatal: 'repo-name.git' does not appear to be a git repository

Но если войти на сервер (как пользователь git) и создать репозиторий вручную, используя mkdir repo-name.git && cd repo-name.git && git --bare init, то я могу перейти из своего локального репо в удаленное.


person Cesar    schedule 27.10.2009    source источник
comment
Когда вы говорите, что я всегда получаю сообщение об ошибке fatal: 'repo' does not appear to be a git repository, когда возникает эта ошибка? При локальном создании репо или при отправке локального репо на сервер gitosis? Что это точная ошибка?   -  person Tim Henigan    schedule 29.10.2009
comment
При нажатии локального репо на gitosis. Ошибка (что-то вроде): «repo-name.git» не является репозиторием git. Удаленный конец завис. Но я подозреваю, что это установка с повреждением, потому что в Ubuntu 9.04 она работает хорошо. А в OS X 10.5.8 и ubuntu 8.10 нет   -  person Cesar    schedule 29.10.2009
comment
Гитоз больше не поддерживается. Вам следует подумать о переходе на гитолит.   -  person wadesworld    schedule 14.06.2012


Ответы (3)


У меня была эта проблема, и я обнаружил, что если я изменю способ доступа к репозиторию, это сработает. После того, как вы создали группу, доступную для записи.

# Go to the directory you want to start your project in.
git init; git add .
git commit -m 'initial commit'
git remote add origin gitosis@[server]:gitosis-test.git
git push --all

Итак, подведем итоги до того, как я сделал gitosis@[server]/gitosis-test.git, и это не удалось. Поменял точку с запятой и все заработало.

Реквизит на уровне лога = DEBUG Это очень помогло выяснить, что происходит.

person Atherion    schedule 13.05.2011
comment
Ключевым утверждением здесь является использование / вместо :. Git, вероятно, должен принять и то, и другое. - person Phil Miller; 10.11.2011

ОБНОВЛЕНИЕ:
В репозитории gitosis-admin попробуйте добавить loglevel = DEBUG под [gitosis] в свой gitosis.conf. Отправьте это изменение на свой сервер и повторите попытку. Это создаст много полезной информации, которая поможет отладить проблему.

Эти инструкции от Dreamhost — лучшее, что я нашел.

Вы нажимаете репозиторий gitosis-admin после обновления разрешений?

person Tim Henigan    schedule 28.10.2009
comment
Да, и он обновляет конфиг на сервере gitosis, я также убедился, что хук после обновления был исполняемым... - person Cesar; 29.10.2009
comment
Чего я не знаю, так это того, должен ли gitosis создавать новое репо при обновлении его конфигурации, я имею в виду, что я обновляю конфигурацию и нажимаю, я вижу, что конфигурация обновляется на сервере, НО я не вижу созданного нового голого репо , но я не знаю, должен ли это работать? - person Cesar; 29.10.2009
comment
@Cesar: простое обновление конфигурации в gitosis.conf не создает репозиторий на сервере. Для этого вы должны создать репозиторий локально, а затем отправить его на сервер с помощью git push origin master:refs/heads/master. - person Tim Henigan; 29.10.2009
comment
но на самом деле git push origin master:refs/heads/master вообще не работал. - person xiao 啸; 03.12.2010

Здравствуйте, у меня была точно такая же проблема только сегодня.

я проверил

$ ssh git@yourserver echo если вы видите это, это не gitosis

и обнаружил, что gitosis не обслуживает сеансы ssh.

Я не мог понять, почему.

В качестве решения я удалил пользователя git (которого я использовал для целей gitosis) с его домашней папкой и воссоздал его с нуля.

И это помогло.

README.rst из gitosis.git говорит

".. предупреждение::

    For now, ``gitosis`` uses the ``HOME`` environment variable to
    locate where to write its files. If you use ``sudo -u``
    without ``-H``, ``sudo`` will leave the old value of ``HOME``
    in place, and this will cause trouble. There will be a
    workaround for that later on, but for now, always remember to
    use ``-H`` if you're sudoing to the account.

Вы всегда должны редактировать файл конфигурации через git. Файл, связанный с ~/.gitosis.conf на сервере, будет перезаписан при отправке изменений в репозиторий gitosis-admin.git. "Я предполагаю, что это может быть причиной ..

person Alex    schedule 15.10.2017