Могу ли я использовать репозиторий gitolite на порте, отличном от порта по умолчанию из Windows? - PullRequest
1 голос
/ 31 декабря 2011

Я пытаюсь настроить некоторые git-репозитории на моем linux-сервере, чтобы поделиться ими с друзьями, работающими над проектом Java.Я немного обнюхал и обнаружил, что гитолит должен был быть хорошим административным слоем, поэтому, взглянув на их документы, я решил следовать этому уроку:

http://sites.google.com/site/senawario/home/gitolite-tutorial

Все прошло хорошо до шага6. Там синтаксис, используемый для пути к хранилищу, не работал, потому что sshd на сервере не прослушивает порт по умолчанию, и этот синтаксис не любит порты не по умолчанию, поэтому после некоторых исследований я быстро обнаружил, что git поддерживаетSSH: // и т.д..Единственная проблема заключается в том, что для этого требуется, чтобы в URL был включен полный путь к хранилищу.

Когда я достиг шага 7, а хранилище администратора не удалось отправить, я обнаружил, что гитолиту не нравятся полные пути.В разделе устранения неполадок мне посоветовали создать псевдоним хоста, например, так:

http://sitaramc.github.com/gitolite/sshhostaliases.html

Это позволило бы мне использовать hostalias: reponame в качестве пути.Несмотря на досадную потребность в том, чтобы каждый пользователь делал это, мы использовали этот метод только для того, чтобы выяснить, что он вообще не работает.Наши пользователи используют windows и msysgit.

Подводя итог:

  • Сервер sshd прослушивает порт не по умолчанию;это нельзя изменить.
  • Гитолит, кажется, требует относительных путей.Относительные пути доступны только на порте по умолчанию или с использованием псевдонимов хоста.
  • Наши пользователи используют Windows 7 (неизменяемые) и msysgit (изменяемые, если есть что-нибудь лучше?).Нашим установкам, похоже, не нравятся псевдонимы хостов.

Есть ли решение для этого или мы должны отбросить гитолит и найти что-то еще?

1 Ответ

0 голосов
/ 31 декабря 2011

Посмотрите, работает ли редактирование ~/.ssh/config (из msysgit) для каждого пользователя.Добавьте в файл ~/.ssh/config что-то вроде следующего:

Host gitserver
Port 9999

Файл ~/.ssh/config является необязательным и используется ssh, если он существует.Кроме того, каталог ~/.ssh не должен быть доступен для чтения другим пользователям (chmod 700 ~/.ssh).

При доступе к git repo serverd с использованием gitolite вы фактически используете транспорт ssh.Чтобы убедиться, что ssh (и косвенно, git) использует файл ~/.ssh/config, вы можете попробовать следующий диагноз:

$ ssh -v gitserver

Первые несколько строк, начинающиеся с префикса debug1:, сообщат вам, если sshиспользует файл ~/.ssh/config - он покажет вам полный путь к используемому файлу конфигурации.

...