Подтвердить что ты не робот

Хостинг Частные репозитории Git на моем собственном сервере?

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

Может ли кто-нибудь предложить мне, на какой script я должен использовать для этой цели.
Однако Trac не то, что я ищу. Я хочу что-то, что есть, предпочтительно PHP-решение (просто необязательно) и esp. то, что имеет более легкий интерфейс.

Любая помощь здесь ценится.

4b9b3361

Ответ 1

Что ж, для не-гитоз/gitorious setup у вас есть два варианта:

  • Предоставьте пользователям учетные записи linux с полными оболочками (паролями и/или ssh-ключами) для доступа к репозиторию git.
  • Дайте людям доступ к учетной записи linux через их ключ ssh в /home/ac/.ssh/authorized_keys2, чья оболочка установлена ​​в /usr/bin/git-shell. Это означает, что они не смогут войти в систему как пользователь linux с оболочкой и сделать что-либо, кроме использования git на вашем компьютере.

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

Это может иметь смысл для вас иметь каталог / git/project, а затем иметь пользовательские репозитории там, так как наличие нескольких людей, нажавших в один и тот же репозиторий, обычно плохой идеей (люди слишком легко ломают вещи в моем опыте). Например, у вас может быть /srv/git/proj/proj-ninefingers.git и иметь "освобождение" репо '/srv/git/proj/project.git`. Вероятно, что бы я сделал, если вы выполняете групповое усилие. Разрешения, оболочки и т.д. Должны быть установлены соответствующим образом.

Обратите внимание, что если вы хотите разрешить экспорт через протокол git только для чтения, вам необходимо убедиться, что настроенный пользователь git имеет доступ на чтение и что git-daemon-export-ok существует в вашем голом репозитории. git update-server-info также должен быть запущен до того, как gitweb подберет репозиторий, если вы хотите его использовать.

Как говорили другие, git gc оптимизирует репозиторий, и это хорошая идея делать это регулярно. Cron?

Наконец, существует множество фреймворков, чтобы упростить это (гитоз, величественный,...). Я не думаю, что это становится проще, чем обеспечить доступ к папке с помощью различных механизмов, но потом я.

В качестве примера моей установки, это только я, у меня есть:

$ cat /etc/passwd | grep git
git:x:1002:1002:Antony Vennard,,,:/home/git:/usr/bin/git-shell
gitdaemon:x:112:65534::/nonexistent:/bin/false
$ cat /etc/group | grep git
git:x:1002:
$ ls -l /srv/git
drwxr-xr-x 7 git  git 4096 2010-09-12 23:31 bsdnt.git
drwxr-xr-x 7 git  git 4096 2010-06-16 22:32 vforth.git
$ cat /home/git/.ssh/authorized_keys2
ssh-rsa somehex user1
ssh-rsa somehex user2

Это означает, что любой пользователь с закрытым ключом user1 может войти в систему и зафиксировать любой из этих репозиториев.

Ответ 3

Gitorious основывается на собственной базе кода. На этой странице вы можете найти git -repo. проекта.

Gitalist очень легко использовать веб-интерфейс git.

Ответ 4

Если вам нужен только репозиторий кода и нет веб-страниц, просто поместите каталог ".git" где-нибудь доступным, чего достаточно для клонирования через HTTP (обратите внимание, что вам понадобится ssh или аналогичный, чтобы нажать на этот репозиторий).

Например, мой проект размещен таким образом в http://psi5.com/~geier/mutextrace.git.

Рекомендуется периодически запускать "git gc" в этом репозитории, чтобы объединять объекты вместе, поэтому клиентам не нужно делать тысячи обращений.

Если вам нужны веб-страницы, то gitorious действительно способ пойти.